mmhash3
Python wrapper for MurmurHash (MurmurHash3), a set of fast and robust hash functions.
Decision gist · record as of 2026-08-14
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.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- 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.
- 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 · maintenance · safety
permissive license (permissive) — Licensed under CC0-1.0 (public domain dedication), placing the package in the public domain with no restrictions on use, modification, or distribution.
last release 2022-10-29 (1385 days)
0 known vulnerabilities (OSV.dev, 2026-08-14) · 357,424 downloads/mo, #7,268 on PyPI
Alternatives
Verify before relying
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- 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.
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 on it.
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
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.
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.
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
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 | permissive license 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 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: DevelopersLicense :: CC0 1.0 Universal (CC0 1.0) Public Domain DedicationProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.6Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Topic :: Software Development :: LibrariesTopic :: Utilities |
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
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 › “feature hashing library”
- mmhash3mmhash3 is a Python wrapper for MurmurHash3, providing fast…
- mmh3mmh3 is a Python binding to MurmurHash3, a fast non-cryptographic…
- murmurhashProvides fast MurmurHash2 hashing through Cython bindings, enabling…
Give your agent the search over MCP, or paste the wish link into any chat.
More Libraries packages
urllib3 is an HTTP client library that provides thread-safe connection pooling, SSL/TLS verification, multipart file uploads, request retries, compression support, and proxy handling for Python applications.
Requests is a Python HTTP library that simplifies sending HTTP/1.1 requests with automatic handling of headers, authentication, cookies, and response parsing.
Pluggy provides a plugin system that lets you define hook specifications and register implementations to be called in sequence, enabling extensible Python applications without tight coupling.
Install it if you're building an extensible application or framework.
Provides parsing, arithmetic, and recurrence rule computation for dates and times, with timezone support and iCalendar RFC compliance.
Install it if you need to parse flexible date strings, compute relative dates, handle timezones, or work with recurrence rules—it's the de facto choice for these tasks.
Six provides utility functions to write Python code that runs on both Python 2.7 and Python 3.3+, smoothing over language differences between the two versions.
pytest is a testing framework that lets you write test functions using plain assert statements and automatically discovers and runs them, with detailed failure reporting.
See also bbhash · mmh3 · murmurhash2 · py-multihash · xxhash · murmurhash · cityhash · clickhouse-cityhash · pyfarmhash · spookyhash