--- id: py-multihash version: "3.0.0" license: MIT license_treatment: permissive maintenance: aging --- # py-multihash — Multihash implementation in Python License: permissive · Maintenance: aging · Downloads: 162.4K/mo ## What it is and what it does py-multihash is a Python implementation of the multihash specification, a self-describing hash digest format that encodes both the hash function used and the digest itself. It wraps support for 125+ hash functions—including cryptographic algorithms (SHA-1, SHA-2, SHA-3, BLAKE2, BLAKE3), variable-length hashes (SHAKE-128/256), and non-cryptographic options (MurmurHash3)—behind a unified interface. The package provides streaming computation for large files, hash truncation, JSON serialization, and a Go-compatible API (sum, digest, verify methods). Typical use cases include content-addressed storage systems, distributed systems that need portable hash identification, and applications requiring interoperability with Go-based multihash implementations. The package depends on six runtime libraries: varint, six, morphys, base58, blake3, and mmh3. It is maintained as a Pre-Alpha project but has been in development since 2018 and remains actively used. Use it for: - Content-addressed storage or IPFS-like systems where hash function identity must be encoded alongside the digest. - Distributed systems needing portable, self-describing hash formats for cross-language compatibility. - Applications requiring fast non-cryptographic hashing via MurmurHash3 or cryptographic hashing via BLAKE3. - Systems that need to serialize and deserialize hashes in JSON or hex format with function metadata preserved. - Streaming hash computation over large files without loading entire contents into memory. ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. Encodes and decodes multihash digests, supporting 125+ hash functions including SHA-2, SHA-3, BLAKE2, BLAKE3, and MurmurHash3, with streaming computation and JSON serialization. Yes, with conditions. The package is permissively licensed, has low install friction, and supports current Python versions. However, its Pre-Alpha status and aging maintenance (240 days since last release, last commit 2026-01-05) mean it is not actively developed. Install if you need multihash interoperability or Go-compatible hash APIs; avoid if you require active maintenance or stability guarantees. ## Install pip install py-multihash uv add py-multihash poetry add py-multihash ## Installing py-multihash Before you install: Low install friction with six runtime dependencies delivered as a pure-Python wheel. Maintenance status is aging—last commit was 2026-01-05 and the latest release 240 days old—but the repository remains active and unarchived with 945 stars. License in practice: MIT license is permissive and poses no restrictions on use, modification, or redistribution in commercial or private projects. Quickstart: pip install py-multihash from multihash import digest, sum, Func mh = digest(b"hello world", "blake3") mh = sum(b"hello world", Func.sha2_256) print(mh.encode('hex')) Requires Python 3.10 or later (supports up to 3.14). Verify before relying: - Whether the 125+ hash functions claim includes all variants (e.g., BLAKE2b digest sizes 8-512 bits) or counts them separately. - Performance characteristics of streaming hash computation for large files relative to standard library hashlib. - Compatibility guarantees with the Go multihash reference implementation beyond the API surface. ## Package facts - License: MIT (permissive) - Python support: supports_current - Install friction: low - Maintenance: aging - Downloads: 162.4K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags multihash encoding decoding, hash function wrapper, blake3 sha256 hashing, cryptographic hash library, multihash digest python, hash serialization format, streaming hash computation, multihash, content-addressing, hash-serialization [View on SkillFed](https://skillfed.io/packages/py-multihash) · [View on PyPI](https://pypi.org/project/py-multihash/)