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.9.0-cp314-cp314-manylinux_2_28_x86_64.whl (21.3 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

bithuman-2.9.0-cp314-cp314-manylinux_2_28_aarch64.whl (20.0 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ ARM64

bithuman-2.9.0-cp314-cp314-macosx_14_0_arm64.whl (27.3 MB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

bithuman-2.9.0-cp313-cp313-manylinux_2_28_x86_64.whl (21.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

bithuman-2.9.0-cp313-cp313-manylinux_2_28_aarch64.whl (20.0 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

bithuman-2.9.0-cp313-cp313-macosx_14_0_arm64.whl (27.3 MB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

bithuman-2.9.0-cp312-cp312-manylinux_2_28_x86_64.whl (21.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

bithuman-2.9.0-cp312-cp312-manylinux_2_28_aarch64.whl (20.0 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

bithuman-2.9.0-cp312-cp312-macosx_14_0_arm64.whl (27.3 MB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

bithuman-2.9.0-cp311-cp311-manylinux_2_28_x86_64.whl (21.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

bithuman-2.9.0-cp311-cp311-manylinux_2_28_aarch64.whl (20.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

bithuman-2.9.0-cp311-cp311-macosx_14_0_arm64.whl (27.3 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

bithuman-2.9.0-cp310-cp310-manylinux_2_28_x86_64.whl (21.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

bithuman-2.9.0-cp310-cp310-manylinux_2_28_aarch64.whl (20.0 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

bithuman-2.9.0-cp310-cp310-macosx_14_0_arm64.whl (27.3 MB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

File details

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

File metadata

File hashes

Hashes for bithuman-2.9.0-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 50c34dc5760bcb12121583da1fcc56c69111b841e06d6fe3bf3bf3fedace40d3
MD5 3c51fdbcffa1183e7cb99ab110ffde6c
BLAKE2b-256 1490dec13070970669ae57799e4c0dce80a0bd22178c01592ef9886bf75a5795

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-2.9.0-cp314-cp314-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ebf74ce5abc8bc287cf54e0721c08072bbe688bc63f3f360fb159b17f387b601
MD5 64470301dcd0cb9f186142952f948a17
BLAKE2b-256 e216a366605044b5e937c4d4b89d12c11aacb56481d496090acedc7635f6347b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-2.9.0-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 3ce21dd3e2e2ffc98dd7dcae69d67a274ac5150da9b8d32ab741af0ff3d92a04
MD5 e2322a942ba70082c84069ffbeea82c6
BLAKE2b-256 4b02013058852966e004a854f51fe15c9225e312d61d9a82dce9b5f490368914

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-2.9.0-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b82ed1b0d3ac901e5ca82a9a3575ff7f52253a3e4af92a2459ef4e3b6205cc7b
MD5 fb4d4153567b4b58720e7e4c45fb196e
BLAKE2b-256 f6187c681043db160fbc25f74f0492f3ed4b9893e4a1cf7e3801a88641260bcc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-2.9.0-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 fad0ed29d1b29ca74521a53a71909a2622490164f91f57b70ea7ff18ad51378e
MD5 fb90a8ec388bcfd520bac1cacc34ffa5
BLAKE2b-256 34ab1ae1e433d3bac812285c9ff91ecd447dc3e4819ebcecbf61f679770a3211

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-2.9.0-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 a4f95745d95af8081c85ab08c71ef50433dabd617b79533ec3e12753bfde41f6
MD5 2ce6424d55db3dd98cf8e2f04256ea84
BLAKE2b-256 1bb453fb0031555e22137ac61031ccf142ad50be4cfa304496572ddcdbd46a8b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-2.9.0-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 415fcebf5ef742671a115c361b044b6dd688c21bb74bdaad55e235db346cd004
MD5 8596e2390124a1af953c40fedf65b5a9
BLAKE2b-256 8a0d17059397e3f6c3cbe904ef36ab72ead8023d4d0ead9cd9b506a60c121e63

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-2.9.0-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0ce78d094dd8e7f5b8b7ae7bba6bbb22016f9d4527e8b22cdc352d0a9493cc1d
MD5 b9bff7264c9d18e4952d59a8b1f9eeea
BLAKE2b-256 7468133bdb25afc22777cdc8261cc228a0653f0193c1eea4179a4d14a9086509

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-2.9.0-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 e467ddb3b233a1a2d9ecac82c4c8536260a88482e7739698eb908afacc301b65
MD5 e26235f391f12662db50d47f624479c1
BLAKE2b-256 b9141bf01c706b1fd371feba3bcb05443ac6057ae32372e6599a265e30fb4534

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-2.9.0-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0ccaa889e9ea9be50b51d6ad2a3cdfacc384eea9178491cc27cdb914b12cc17c
MD5 862ef19d66cd3f23332132dbf9dbcf0d
BLAKE2b-256 54ca64c1c53906f8a05c9c924c9496928bfc9519222228375deb683aee64edcf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-2.9.0-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 42ac0a06141f3b68940d2a7d4404ced85fc4d80746f0fc470b74f1e0369e62f1
MD5 56e8dbe121b3feee3d35929ce3788fe0
BLAKE2b-256 cb57dee1d5c75073560f3596e09377236ffac7a2886e60d016aa204944178289

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-2.9.0-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 e25ae0c171ceb510e43880bd7cec7b77ce1d69152f4bfde1f07e221d4900167e
MD5 a7f2d4d21d1cd3c7139178e2e5f2d02a
BLAKE2b-256 b60d6e70e047519d69ffcfcd2dd809cf0ffa7cbdae8558196df7b60c16a12e22

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-2.9.0-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2b40fcfda69368f7aa41ccc7db2b9ecb69ae4814092ba112fd2270d6642dac86
MD5 99030e4c8e060614ea475c9b1b401ba4
BLAKE2b-256 44c5036849d66ad2a8a9eba789784c0b13b91825098ae85cbd64a60f17a239b2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-2.9.0-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b9dfefd7852f86255ce26d7f8d55c2ce561d649fc8b88fc8b54fa9bb92d58115
MD5 a753a750adebbf58d8e7fd050ebcbe6d
BLAKE2b-256 705839a91fed2ea7ee567e358bcd72707dab7e56a7f4c7776dc07f62cda0d8a3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bithuman-2.9.0-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 862db6a6e486f95143ff5046352e533219b44de75b43644f2ca5636e99dfc71d
MD5 cb7dda0140895c24ae9210adf92bdd09
BLAKE2b-256 b20061486ca2d306c1fa7dcecdc07c53590dfd95d83cd92fedf9d8cfd0147325

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

2.9.0

Supported by

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