Skip to main content

bithuman

๐Ÿ“ Repo status (2026-07 monorepo cutover). This essence-1 engine + its SDK bindings now live in the bithuman-models monorepo at models/essence-1/. The bithuman CLI and bithuman-serve launcher are in bithuman-cli; the public multi-language SDK + Flutter/Apple plugin are in homebrew-bithuman; serving/generation stay in platform. The former bithuman-sdk-internal, bithuman-apps, and standalone essence-2 repos are ARCHIVED (read-only) โ€” references to them below are historical.

This is the Python flavor of L2: a platform-specific SDK for app developers. It wraps the L1 libessence engine. For the CLI tool โ€” an L3 app โ€” see the CLI docs.

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ L3: Apps (bithuman-cli + homebrew-bithuman)                 โ”‚
โ”‚   - bithuman CLI       brew / pip install bithuman-cli      โ”‚
โ”‚   - Flutter plugin ยท Mac/iPad reference apps                โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                          โ–ผ consumes
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ L2: Platform SDKs (app developers)                          โ”‚
โ”‚   - Python wheel       pip install bithuman    โ—„โ”€โ”€โ”€โ”€ you are here
โ”‚   - Swift package      SwiftPM Bithuman                     โ”‚
โ”‚   - Kotlin AAR         ai.bithuman:sdk                      โ”‚
โ”‚   - Rust crate (in-tree)                                    โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                          โ–ผ wraps
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ L1: libessence engine (cross-platform C++ core)             โ”‚
โ”‚   - portable C ABI, same source on every target             โ”‚
โ”‚   - macOS ยท iOS ยท Android ยท Linux ยท Windows                 โ”‚
โ”‚   - never imported directly by app developers               โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Library only โ€” the CLI moved out

This wheel ships the library only. The bithuman command-line tool (bithuman run model.imx, bithuman render, bithuman doctor) lives in the sibling bithuman-cli PyPI wheel (an L3 app); bithuman-cli depends on this bithuman wheel for the in-process avatar runtime, and both share the same libessence native engine.

# Library โ€” embed the runtime in your own app
from bithuman import AsyncBithuman
avatar = await AsyncBithuman.create(model_path="model.imx", api_secret="bh-...")
# CLI โ€” separate wheel
pip install bithuman-cli
bithuman run model.imx

Python bindings for the bitHuman SDK โ€” the portable C++ avatar engine (libessence) that powers our cross-platform lipsync pipeline. The wheel ships a native pybind11 module that talks directly to libessence, so you get the same per-frame cost as our Swift and Kotlin clients with none of the GIL noise.

On an Apple M5 with 24 GB unified memory we measure ~640 FPS sustained compose (1.56 ms/frame mean, 2.03 ms p99) for a 1248ร—704 avatar, with ~206 MB peak RSS end-to-end. Cold load is ~14 ms for the fixture and ~400 ms for the first compose tick (lazy ONNX init).

This package is namespace-isolated from the v0 bithuman SDK; you can install both side-by-side.

Install

pip install bithuman                 # the library (slim wheel โ€” no CLI, no brain)

Status. As of 2.3, the PyPI bithuman wheel is a slim library-only wheel. The bundled Rust CLI and conversation brain that 2.0โ€“2.2.x shipped have been extracted into the sibling bithuman-cli wheel (pip install bithuman-cli, with bithuman-cli[local] for the on-device brain). This wheel exports the avatar runtime only: AsyncBithuman (streaming) and Bithuman (sync single-shot).

Compatibility

  • Platforms: macOS arm64, Linux x86_64, Linux arm64 โ€” all ship as wheels. Windows is tracked for a follow-up.
  • Python: 3.10 โ€“ 3.14 (cp310 through cp314). CPython only.
  • ABI: wraps the libessence engine core (2.3.6, ABI v7) via pybind11.
  • Auth: ships with live heartbeat against api.bithuman.ai baked into libessence. Bithuman.load(api_secret=...) / AsyncBithuman.create(api_secret=...) is the entry point; BITHUMAN_API_SECRET env var works too.

What you get

The package exposes three API tiers (all importable from bithuman):

Tier Types Use whenโ€ฆ
Async AsyncBithuman (alias AsyncAvatar), AudioChunk, VideoControl, VideoFrame Streaming a live conversation / hosting a service
Sync facade Bithuman (alias Avatar), ComposedFrame, EP Offline / batch single-shot rendering
Low-level Fixture, Runtime, EP_CPU/EP_AUTO/EP_COREML/EP_NNAPI/EP_QNN Direct C ABI access, custom audio pipeline

Error types: BithumanError (base), TokenError / TokenExpiredError / TokenValidationError / TokenRequestError / AccountStatusError (auth), ModelError / ModelNotFoundError / ModelLoadError / ModelSecurityError / ExpressionModelNotSupported (fixture), RuntimeNotReadyError.

Version info: bithuman.__version__ (Python package), bithuman.__core_version__ (linked libessence), bithuman.__abi_version__.

Quickstart (async streaming โ€” AsyncBithuman)

Build the runtime with AsyncBithuman.create(...), feed PCM with push_audio, mark end-of-speech with flush(), and drain composed frames from the run() async iterator.

import asyncio
from bithuman import AsyncBithuman

async def main():
    avatar = await AsyncBithuman.create(
        model_path="model.imx",
        api_secret="bh-...",  # or BITHUMAN_API_SECRET env var
    )

    await avatar.push_audio(pcm_16k_mono_int16_bytes,
                            sample_rate=16000, last_chunk=True)
    await avatar.flush()      # end-of-speech marker

    async for frame in avatar.run():
        # frame.bgr_image is (H, W, 3) uint8 in BGR order
        ...

    await avatar.stop()

asyncio.run(main())

PCM accepted is int16 little-endian bytes; sample_rate is resampled to 16 kHz mono internally. WAV / MP3 / FLAC / OGG decoding is the caller's responsibility (use soundfile).

Quickstart (sync single-shot โ€” Bithuman)

For offline / batch rendering, Bithuman.load(...) then iterate compose(audio), which yields one ComposedFrame per 40 ms (25 fps) of input:

from bithuman import Bithuman

avatar = Bithuman.load("model.imx", api_secret="bh-...")
for frame in avatar.compose("speech.wav"):   # ndarray or WAV/MP3/FLAC path
    # frame.bgr is (H, W, 3) uint8 BGR; frame.frame_idx / frame.cluster_idx
    ...

Live avatar / CLI โ€” bithuman-cli (separate wheel)

The bithuman run / bithuman render command-line tool and the conversation brain (bithuman-cli[local] for the fully on-device whisper.cpp + llama.cpp + Supertonic stack) are no longer bundled in this wheel. They ship as the sibling bithuman-cli PyPI wheel, which depends on this bithuman runtime:

pip install bithuman-cli            # cloud brain (OpenAI Realtime)
pip install 'bithuman-cli[local]'   # fully on-device brain

bithuman run avatar.imx             # live avatar (browser-to-talk)

See the CLI docs and the bithuman-cli README for the full command surface and brain modes. Both wheels share the same libessence native engine.

Low-level API

If you need finer control or want to swap in a custom audio pipeline, the C ABI is exposed directly:

import numpy as np
from bithuman import Fixture, Runtime, EP_CPU

fx = Fixture("model.imx", preferred_ep=EP_CPU, intra_op_threads=1)
rt = Runtime(fx)
pcm = np.fromfile("speech.f32", dtype=np.float32)  # 16 kHz mono float32
cluster_idx, bgr = rt.tick_compose(pcm, frame_idx_hint=-1)
# bgr.shape == (fx.frame_height, fx.frame_width, 3), dtype uint8

Pass the entire pcm buffer to each tick_compose call; the runtime maintains an internal cursor and advances one tick per call until the audio is exhausted.

Zero-alloc hot path (since 1.12.4)

For tight render loops, pre-allocate the BGR buffer once and pass it via out=. The runtime writes into it in place and returns just the cluster_idx. This drops wrapper overhead to within ~3 % of raw libessence (vs ~8 % for the alloc-per-tick path):

out = np.empty((fx.frame_height, fx.frame_width, 3), dtype=np.uint8)
for _ in range(num_ticks):
    cluster_idx = rt.tick_compose(pcm, -1, out=out)
    # `out` now holds this tick's frame; read it before the next call.

The same out= keyword works on tick_compose_to_size. See docs/ARCHITECTURE.md ยง9 for the cross-wrapper perf table.

Build from source

You need the prebuilt parent C++ archive at engine/essence/build/libessence.a (run the parent CMake build first), plus the runtime deps from Homebrew (onnxruntime, webp, ffmpeg, hdf5, jpeg-turbo).

cd sdk/python
uv pip install -e '.[test]' --no-build-isolation   # only the `test` extra ships

The CMake glue links the prebuilt static archive directly โ€” it does NOT re-run the parent build, so iterate on bindings without paying the C++ rebuild cost.

Performance

Measured with tests/bench.py against the v1 compose path (audio โ†’ composited BGR frame) on Apple M5 24 GB, libessence 1.16.0:

Metric Alloc per tick out= reuse buffer
Steady-state mean 1.53 ms / frame 1.45 ms / frame
p99 1.66 ms 1.53 ms
Sustained throughput 655 FPS 692 FPS
Overhead vs raw libessence +8.3 % +2.6 %
Peak RSS (proc) 192 MB 182 MB

Wrapper overhead is within 5 % of raw libessence on the out= path; see docs/ARCHITECTURE.md ยง9 for the apples-to-apples methodology and the cross-wrapper comparison. Reproduce with:

scripts/bench-wrappers.sh

Linux wheels

Pre-built manylinux_2_28 wheels ship for x86_64 + aarch64 across cp310 through cp314 โ€” 10 wheels in total, all auditwheel-repaired with the full dep tree bundled (ORT, FFmpeg, HDF5, libjpeg-turbo, libwebp, libcurl, OpenSSL).

To rebuild them locally:

# One-time: build the dep-baked Docker images (~10 min each).
docker build --platform linux/amd64 -t libessence/manylinux-x86_64:0.1 \
    -f scripts/Dockerfile.manylinux-x86_64 scripts/
docker build --platform linux/arm64/v8 -t libessence/manylinux-aarch64:0.1 \
    -f scripts/Dockerfile.manylinux-aarch64 scripts/

# Per wheel build (~2 min):
docker run --rm --platform linux/amd64 -v "$REPO":/src \
    -e PYTAG=cp311 -e ARCH_INSIDE=x86_64 \
    libessence/manylinux-x86_64:0.1 \
    bash /src/sdk/python/scripts/build-wheel-in-container.sh

Limitations

  • Windows wheels not yet built โ€” tracked for a follow-up.
  • compose() emits a fixed 25 fps frame stream to match the model's internal rate; resample downstream if you need a different cadence.
  • preferred_ep=COREML/NNAPI/QNN is accepted but currently no-ops to CPU in the current build.

License

Commercial. Contact hello@bithuman.ai.

See also

  • docs.bithuman.ai โ€” full product + SDK docs
  • docs.bithuman.ai/cli โ€” bithuman CLI reference
  • homebrew-bithuman โ€” examples (Python, Swift, CLI, REST) + Swift package
  • bithuman-cli on PyPI โ€” the sibling CLI wheel
  • In-repo (private monorepo): engine/essence/README.md (engine internals), sdk/swift/README.md, sdk/kotlin/README.md, docs/BUILD_AND_RELEASE.md

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

bithuman-2.8.1-cp314-cp314-manylinux_2_28_x86_64.whl (21.2 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

bithuman-2.8.1-cp314-cp314-manylinux_2_28_aarch64.whl (19.9 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ ARM64

bithuman-2.8.1-cp314-cp314-macosx_14_0_arm64.whl (27.2 MB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

bithuman-2.8.1-cp313-cp313-manylinux_2_28_x86_64.whl (21.2 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

bithuman-2.8.1-cp313-cp313-manylinux_2_28_aarch64.whl (19.9 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

bithuman-2.8.1-cp313-cp313-macosx_14_0_arm64.whl (27.2 MB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

bithuman-2.8.1-cp312-cp312-manylinux_2_28_x86_64.whl (21.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

bithuman-2.8.1-cp312-cp312-manylinux_2_28_aarch64.whl (19.9 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

bithuman-2.8.1-cp312-cp312-macosx_14_0_arm64.whl (27.2 MB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

bithuman-2.8.1-cp311-cp311-manylinux_2_28_x86_64.whl (21.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

bithuman-2.8.1-cp311-cp311-manylinux_2_28_aarch64.whl (19.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

bithuman-2.8.1-cp311-cp311-macosx_14_0_arm64.whl (27.2 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

bithuman-2.8.1-cp310-cp310-manylinux_2_28_x86_64.whl (21.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

bithuman-2.8.1-cp310-cp310-manylinux_2_28_aarch64.whl (19.9 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

bithuman-2.8.1-cp310-cp310-macosx_14_0_arm64.whl (27.2 MB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

File details

Details for the file bithuman-2.8.1-cp314-cp314-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for bithuman-2.8.1-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1a7d48e441342b010d341ed8253434a13f417e9f8ca2d8c19ea5f361f8fe213a
MD5 eb9a9e71367ba00a6d7cc440ab0f788e
BLAKE2b-256 2db1ae7c916bd722c77649379f993ce220583f3f1572df94be3b87c1ac50387d

See more details on using hashes here.

File details

Details for the file bithuman-2.8.1-cp314-cp314-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for bithuman-2.8.1-cp314-cp314-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 48fdf6b3b1defff9bcd396a994e56652464ae9ea12e70198d0da69b4217799d9
MD5 e43ba4db620738486ce291ada44fc82d
BLAKE2b-256 dffe99f4e10cba1115186a2c1e732e55edea948749a88bc354f71fc47ed8ffb5

See more details on using hashes here.

File details

Details for the file bithuman-2.8.1-cp314-cp314-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for bithuman-2.8.1-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 ffb356de23bc867e24d947792a0b596546397813f63489af9216db64c658a558
MD5 0c9c6e599547b001a92f42e91a5f6388
BLAKE2b-256 de8d8613e6fd0096659ef2b6ea91965aa4febdba171d6f2ccbbac32dced9c2d1

See more details on using hashes here.

File details

Details for the file bithuman-2.8.1-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for bithuman-2.8.1-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0d8e65107fd6ceed1f005bcac0230d1c3ce0a80b830d0dff1d710bb07554e416
MD5 d2cbe3eeee0630bc9b880b96524f5ee5
BLAKE2b-256 e3e74a2cad357eb22224b2bac470ccedbe2fefa8fb68a67ef00974c785856506

See more details on using hashes here.

File details

Details for the file bithuman-2.8.1-cp313-cp313-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for bithuman-2.8.1-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 44a9288a9fda5cec67959aa37eb2ea42921b27a56fbe673a0405f208f8cd461c
MD5 3b548400257c2bafc026283f6a6ce4eb
BLAKE2b-256 a62d9656b5439012ad459b67804240d67fcd0f7517c073dbf21c41505367deca

See more details on using hashes here.

File details

Details for the file bithuman-2.8.1-cp313-cp313-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for bithuman-2.8.1-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 a55bf4bf8d0b5eb6bbf284afbc3ca6da8ab07e896362d7f436d6f00e76e36e5b
MD5 7a784885c4e5e2da1091f7a0638a3540
BLAKE2b-256 63b52f5b38fb61b9d84d4172681131d22d3bbcf37c322646b8a0759e9454da3d

See more details on using hashes here.

File details

Details for the file bithuman-2.8.1-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for bithuman-2.8.1-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0906ae6f508313f9e20ae651a4392cbe20ee122729a5b56f99e145f9ffa60fd2
MD5 b9c3a8dcf54390b6853f4afcd4a79f02
BLAKE2b-256 a604251044097b6f9423421dba8eed146d3be537c9122795a7c7b58318b5e891

See more details on using hashes here.

File details

Details for the file bithuman-2.8.1-cp312-cp312-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for bithuman-2.8.1-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 6fade758c41c7591d653b402f5eb7ba99447abe9d2031e3d8435fe333512fb9c
MD5 25d73ec74167f1f996f63574113a6c8e
BLAKE2b-256 129c89eca1a758b273904ccee5ad9c5502ed44fa6fb136616ab23634bc82b8d1

See more details on using hashes here.

File details

Details for the file bithuman-2.8.1-cp312-cp312-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for bithuman-2.8.1-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 f103b011ac3506c554dc8f539041538e3513694d2db27259416c26a2e7e48e7a
MD5 86e90a0579a3a2f41e6ca784a8e95d38
BLAKE2b-256 073f6aab0e0a28fa9dff9b6f3561ca91e12f8b1bb60d8f85a2341bc753b8d370

See more details on using hashes here.

File details

Details for the file bithuman-2.8.1-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for bithuman-2.8.1-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c1b6ca53fbf4175a36881b3cef28639f5b8b29a4022efb62d7ed10a7304c9145
MD5 8f04833c6b22fb90c04e2c8f887d563f
BLAKE2b-256 b76137b17b02035eff33e65d806c6752936425234cf03225be1bbdb9be02cce6

See more details on using hashes here.

File details

Details for the file bithuman-2.8.1-cp311-cp311-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for bithuman-2.8.1-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 6a09065fb8b23c749d14ad47e4ccf3d514f2012a002bbb276be88218f93d3aa3
MD5 778971838471d75a1cc8370788c7811f
BLAKE2b-256 c3a6cc9ad1fa68dcd733d41c0aa8f422a6d0dca628edf61bc1b678f9957e118d

See more details on using hashes here.

File details

Details for the file bithuman-2.8.1-cp311-cp311-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for bithuman-2.8.1-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 8266707de660d55dccb7cebcf17824eb3f9c10c2794957d749e4cc58cc68ef0c
MD5 f4510cf3a0a910231457fd797c39d961
BLAKE2b-256 c4f3435668fbf3635b9f27efd22a182ca0f54bb2a7b863a3dd284af8a0871fe0

See more details on using hashes here.

File details

Details for the file bithuman-2.8.1-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for bithuman-2.8.1-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1d5507731469e48d62425885c19c39e41fda2ad7738fd70a903786c21a5e7295
MD5 09db802835e75b878c2b347d16ca9ed8
BLAKE2b-256 98c98243b011011a0dae44c12ce4e19b2108aef4026a5224d282ddc9ee176b93

See more details on using hashes here.

File details

Details for the file bithuman-2.8.1-cp310-cp310-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for bithuman-2.8.1-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b4f4a021965fc388d490ce20ac8d236553c5b30f3a6915713300a0ddca530dee
MD5 d5d5fd86f96637d480473050a888342c
BLAKE2b-256 5257599035ad9ac5fad0508f685bc11688fae4fb3db948f3f92f7300ade22144

See more details on using hashes here.

File details

Details for the file bithuman-2.8.1-cp310-cp310-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for bithuman-2.8.1-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 329ad89834705cd1351bba1d11ecf563e9b773968bc204158c994cc8b248d68d
MD5 2da470ef312335eb7646e2bc9d23c7e7
BLAKE2b-256 e48beeb7c77de6a65f90b78e99d369452eeaeda75e62b8c2460315ed240ae235

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

2.8.1

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page