skillfed

mmhash3

Python wrapper for MurmurHash (MurmurHash3), a set of fast and robust hash functions.

mmhash3 v3.0.1 357.4K downloads/30d#7,268 on PyPI
Permissive license License :: CC0 1.0 Universal (CC0 1.0) Public Domain Dedication Abandoned released

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 mmhash3

uv

uv add mmhash3

poetry

poetry add mmhash3

Installing 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

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

Tags

murmur hash pythonfast non-cryptographic hashingbloom filter hash functionfeature hashing libraryminhash implementationhash function for data mining32-bit 64-bit 128-bit hash
hashingdata-structuresperformance

More Libraries packages