mmhash3
Python wrapper for MurmurHash (MurmurHash3), a set of fast and robust hash functions.
What it is and what it does
mmhash3 wraps the MurmurHash3 algorithm, a family of fast, non-cryptographic hash functions designed for distributed systems and probabilistic data structures. It exposes multiple hash variants: 32-bit and 64-bit signed or unsigned integers, 128-bit integers, and raw byte output. The package supports seeding, architecture-specific optimizations, and direct hashing from memory buffers without copying.
The library is commonly used in data mining, machine learning, and natural language processing to build high-performance systems with Bloom filters, MinHash sketches, and feature hashing. It has no runtime dependencies and is available as pre-compiled wheels for modern Python versions on Linux, macOS, and Windows, making installation straightforward on supported platforms.
Use it for:
- Building Bloom filters for membership testing in memory-constrained environments.
- Implementing MinHash for approximate set similarity and deduplication in large datasets.
- Feature hashing in machine learning pipelines to reduce dimensionality of categorical data.
- Distributing data across hash buckets in partitioned systems or load balancers.
- Generating consistent hash values for caching and distributed storage systems.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
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.
Yes, if you need a fast, dependency-free non-cryptographic hash function for data structures or machine learning. The public domain license and pre-built wheels make it easy to adopt. However, the package is abandoned—no updates since 3.0.1—so consider it stable and feature-complete rather than actively maintained. Use it for established use cases like Bloom filters or MinHash, not as a foundation for new cryptographic or security-critical work.
Install
mmhash3 on PyPI
pip
pip install mmhash3uv
uv add mmhash3poetry
poetry add mmhash3Installing mmhash3
Before you install
Medium install friction due to compiled C extensions; pre-built wheels are available for Python 3.6–3.11 on macOS (x86_64 and ARM64), Windows (32/64-bit), and Linux (x86_64 and aarch64). Package is marked abandoned with no updates since 3.0.1 release.
License in practice
Licensed under CC0-1.0 (public domain dedication), placing the package in the public domain with no restrictions on use, modification, or distribution.
Quickstart
pip install mmhash3
import mmhash3
# 32-bit hash
result = mmhash3.hash("foo")
print(result) # -156908512
# 32-bit unsigned
result_unsigned = mmhash3.hash("foo", signed=False)
print(result_unsigned) # 4138058784
# 64-bit hash (returns two values)
result64 = mmhash3.hash64("foo")
print(result64) # (-2129773440516405919, 9128664383759220103)
# 128-bit hash
result128 = mmhash3.hash128("foo", 42)
print(result128) # 215966891540331383248189432718888555506
Requires a C compiler to build from source on platforms without pre-built wheels; wheels are provided for Python 3.6–3.11 on common platforms.
Verify before relying
- Whether the package receives security updates or bug fixes despite being marked abandoned.
- Performance characteristics compared to pure-Python or alternative hash implementations in real-world scenarios.
Package facts
| License | License :: CC0 1.0 Universal (CC0 1.0) Public Domain Dedication (permissive) |
| Python support | not specified |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | none |
| Maintenance | abandoned — 1,385 days since the last release |
| First released | |
| Downloads | 357,424/month — #7,268 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: mmhash3-3.0.1-cp310-cp310-macosx_10_9_x86_64.whl; mmhash3-3.0.1-cp310-cp310-macosx_11_0_arm64.whl; mmhash3-3.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; mmhash3-3.0.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl; mmhash3-3.0.1-cp310-cp310-win32.whl; mmhash3-3.0.1-cp310-cp310-win_amd64.whl; mmhash3-3.0.1-cp311-cp311-macosx_10_9_x86_64.whl; mmhash3-3.0.1-cp311-cp311-macosx_11_0_arm64.whl; mmhash3-3.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; mmhash3-3.0.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl; mmhash3-3.0.1-cp311-cp311-win32.whl; mmhash3-3.0.1-cp311-cp311-win_amd64.whl; mmhash3-3.0.1-cp36-cp36m-macosx_10_9_x86_64.whl; mmhash3-3.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; mmhash3-3.0.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl; mmhash3-3.0.1-cp36-cp36m-win32.whl; mmhash3-3.0.1-cp36-cp36m-win_amd64.whl; mmhash3-3.0.1-cp37-cp37m-macosx_10_9_x86_64.whl; mmhash3-3.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; mmhash3-3.0.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Keywords: utility, hash, MurmurHash
Tags
More Libraries packages
urllib3 is an HTTP client library that provides…
permissive · top 100 on PyPI
requestsRequests is a Python HTTP library that…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
python-dateutilProvides parsing, arithmetic, and recurrence…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
pytestpytest is a testing framework that lets you…
permissive · top 100 on PyPI
bbhashBuilds minimal perfect hash functions for…
unclear · top 15,000 on PyPI
mmh3mmh3 is a Python binding to MurmurHash3, a fast…
permissive · top 1,000 on PyPI
murmurhash2Provides 32-bit murmurhash2 and murmurhash3…
permissive · top 5,000 on PyPI
py-multihashEncodes and decodes multihash digests,…
permissive · top 15,000 on PyPI
xxhashxxhash provides fast non-cryptographic hashing…
permissive · top 1,000 on PyPI
murmurhashProvides fast MurmurHash2 hashing through…
permissive · top 1,000 on PyPI
cityhashPython wrapper for Google's CityHash and…
permissive · top 15,000 on PyPI
clickhouse-cityhashProvides Python bindings to CityHash, a fast…
permissive · top 15,000 on PyPI
pyfarmhashProvides Python bindings to Google's FarmHash,…
permissive · top 15,000 on PyPI
spookyhashProvides fast 32-, 64-, and 128-bit hashing via…
permissive · top 15,000 on PyPI