xxhash
Python binding for xxHash
Decision gist · record as of 2026-08-14
Yes. xxhash is actively maintained, widely used (top 1000 on PyPI), has no known vulnerabilities, and offers a permissive license. Install it if you need fast non-cryptographic hashing; avoid it only if you require cryptographic security or have no hashing performance constraints.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.9 or later; C compiler and development headers needed only if installing from source.
- Medium install friction due to compiled C extension wheels; prebuilt binaries available for common platforms (macOS, Linux, Windows across multiple architectures).
- Actively maintained with recent release.
License · maintenance · safety
BSD-2-Clause (permissive) — BSD-2-Clause permissive license allows commercial and private use with minimal restrictions; suitable for most projects.
last release 2026-08-12 (2 days) · last repo commit 2026-08-13 · 465 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 177,383,915 downloads/mo, #235 on PyPI
Alternatives
Verify before relying
pip install xxhash
import xxhash
# One-shot hashing
digest = xxhash.xxh64_hexdigest(b'data')
# Streaming
h = xxhash.xxh64()
h.update(b'data')
result = h.hexdigest()- Performance characteristics compared to built-in hashlib for typical use cases
- Memory overhead of streaming hash objects versus one-shot functions in production workloads
What it is and what it does
xxhash is a Python binding to the xxHash C library, a non-cryptographic hashing algorithm optimized for speed and data integrity checking rather than security. It provides xxh32, xxh64, and xxh3 hash functions in both streaming (stateful) and one-shot (stateless) forms, with a hashlib-compatible interface. The package includes thread-safe streaming objects with per-object locking and offers methods like update(), digest(), hexdigest(), and intdigest() for flexible output formats.
The library is designed for use cases where you need fast hashing for checksums, deduplication, or hash tables—not for cryptographic purposes. It supports optional seeds for predictable variation and is available as precompiled wheels for most platforms, though it can also be built from source to link against a system xxHash library.
Use it for
- Computing fast checksums for data integrity verification in pipelines or file transfers
- Deduplication systems that need to hash large files or data streams efficiently
- Hash-based caching or memoization where speed matters more than cryptographic strength
- Building hash tables or bloom filters that require non-cryptographic hashing
- Benchmarking or profiling code where hashing overhead should be minimal
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
xxhash is actively maintained, widely used (top 1000 on PyPI), has no known vulnerabilities, and offers a permissive license. Install it if you need fast non-cryptographic hashing; avoid it only if you require cryptographic security or have no hashing performance constraints.
Install
xxhash on PyPI
Before you install
Medium install friction due to compiled C extension wheels; prebuilt binaries available for common platforms (macOS, Linux, Windows across multiple architectures). Actively maintained with recent release.
Requires Python 3.9 or later; C compiler and development headers needed only if installing from source.
License in practice
BSD-2-Clause permissive license allows commercial and private use with minimal restrictions; suitable for most projects.
Quickstart
pip install xxhash
import xxhash
# One-shot hashing
digest = xxhash.xxh64_hexdigest(b'data')
# Streaming
h = xxhash.xxh64()
h.update(b'data')
result = h.hexdigest()
Verify before relying
- Performance characteristics compared to built-in hashlib for typical use cases
- Memory overhead of streaming hash objects versus one-shot functions in production workloads
Package facts
| License | BSD-2-Clause permissive |
| Python support | Supports the current Python release >=3.9 |
| Install friction | Medium. Platform-specific wheel |
| Runtime dependencies | None |
| Maintenance | Actively maintained 2 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 177,383,915 / month, #235 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: DevelopersProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.15Programming Language :: Python :: 3.9Programming Language :: Python :: Free Threading :: 1 - UnstableProgramming Language :: Python :: Implementation :: CPython |
Evidence: xxhash-4.0.0-cp310-cp310-macosx_10_9_x86_64.whl; xxhash-4.0.0-cp310-cp310-macosx_11_0_arm64.whl; xxhash-4.0.0-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl; xxhash-4.0.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; xxhash-4.0.0-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl; xxhash-4.0.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl; xxhash-4.0.0-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl; xxhash-4.0.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; xxhash-4.0.0-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl; xxhash-4.0.0-cp310-cp310-musllinux_1_2_aarch64.whl; xxhash-4.0.0-cp310-cp310-musllinux_1_2_armv7l.whl; xxhash-4.0.0-cp310-cp310-musllinux_1_2_i686.whl; xxhash-4.0.0-cp310-cp310-musllinux_1_2_ppc64le.whl; xxhash-4.0.0-cp310-cp310-musllinux_1_2_riscv64.whl; xxhash-4.0.0-cp310-cp310-musllinux_1_2_s390x.whl; xxhash-4.0.0-cp310-cp310-musllinux_1_2_x86_64.whl; xxhash-4.0.0-cp310-cp310-win32.whl; xxhash-4.0.0-cp310-cp310-win_amd64.whl; xxhash-4.0.0-cp310-cp310-win_arm64.whl; xxhash-4.0.0-cp311-cp311-macosx_10_9_x86_64.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “xxhash python binding”
- xxhashxxhash provides fast non-cryptographic hashing via Python bindings to…
- uproot3Reads and writes ROOT files (the data format used in high-energy…
- substrate-interfaceInterfaces with Substrate blockchain nodes to query storage, compose…
Give your agent the search over MCP, or paste the wish link into any chat.
Similar packages
mmh3 is a Python binding to MurmurHash3, a fast non-cryptographic hash function that returns 32-bit or 128-bit hash values for bytes and strings, with optional seeding.
Provides fast 32-, 64-, and 128-bit hashing via Bob Jenkins' SpookyHash algorithm, with both one-shot and incremental hash modes and support for memoryview-compatible types like NumPy arrays.
mmhash3 is a Python wrapper for MurmurHash3, providing fast non-cryptographic hash functions for strings and byte data with configurable output sizes (32-bit, 64-bit, or 128-bit) and seed values.
However, the package is abandoned—no updates since 3.0.1—so consider it stable and feature-complete rather than actively maintained.
Provides a Python implementation of SipHash, a keyed hash function optimized for speed on short messages, following the hashlib API.
Provides a C-based SipHash-1-3 and SipHash-2-4 implementation with a hashlib-compatible interface and streaming support, returning digests as bytes or 64-bit signed integers.
However, the aging maintenance status (346 days since last release) and unclear license metadata warrant a quick review of your licensing requirements before committing.
Encodes and decodes multihash digests, supporting 125+ hash functions including SHA-2, SHA-3, BLAKE2, BLAKE3, and MurmurHash3, with streaming computation and JSON serialization.
However, its Pre-Alpha status and aging maintenance (240 days since last release, last commit 2026-01-05) mean it is not actively developed.
See also blake3 · pyfarmhash · bbhash · murmurhash2