hashring
Implements consistent hashing in Python (using md5 as hashing function).
Decision gist · record as of 2026-08-14
Yes, if you need consistent hashing and are comfortable with an unmaintained library. The code is simple and stable, with no known vulnerabilities and low install friction. However, verify that md5 hashing meets your security and collision-tolerance requirements, and test compatibility with your target Python version—the package's classifiers only list support up to Python 3.4, and there is no active maintenance to address issues with newer versions.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Installation is straightforward with no runtime dependencies.
- However, the package is abandoned—last commit was 2021-11-14 and no releases since 2015-04-14.
- It remains marked Production/Stable but receives no maintenance.
License · maintenance · safety
BSD (permissive) — BSD license is permissive, allowing commercial and private use with minimal restrictions, making it safe from a licensing standpoint for most projects.
last release 2015-04-14 (4140 days) · last repo commit 2021-11-14 · 8 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 75,180 downloads/mo, #14,744 on PyPI
Alternatives
Verify before relying
pip install hashring
from hashring import HashRing
hr = HashRing(nodes=['node1', 'node2', 'node3'])
node = hr.get_node('some_key')- Whether md5 hashing is cryptographically sufficient for your use case (md5 is not collision-resistant)
- Compatibility with Python versions beyond 3.4 (classifiers list only up to 3.4)
- Whether the implementation handles virtual nodes or other advanced consistent hashing features
What it is and what it does
Hashring provides a consistent hashing implementation for Python, using md5 as its underlying hash function. It solves the problem of distributing keys across a set of nodes (such as cache servers or database shards) in a way that minimizes the number of keys that need to be remapped when the set of nodes changes. This is particularly useful in distributed systems where you want stable key-to-node assignments despite node additions or removals.
The package has no external runtime dependencies and installs as a pure Python wheel, making it lightweight to add to any project. However, it is no longer actively maintained—the last commit was in November 2021 and the most recent release dates to April 2015. While it is classified as Production/Stable, you should be aware that bugs or compatibility issues with modern Python versions will not receive fixes.
Use it for
- Distributing cache keys across multiple Memcached or Redis nodes with minimal key remapping on node failure or addition.
- Assigning database shard keys in a distributed database cluster to balance load while maintaining consistent routing.
- Load-balancing requests to backend servers in a way that keeps related requests routed to the same server.
- Partitioning data across multiple storage nodes in a distributed system while minimizing data movement on topology changes.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need consistent hashing and are comfortable with an unmaintained library.
The code is simple and stable, with no known vulnerabilities and low install friction. However, verify that md5 hashing meets your security and collision-tolerance requirements, and test compatibility with your target Python version—the package's classifiers only list support up to Python 3.4, and there is no active maintenance to address issues with newer versions.
Install
hashring on PyPI
Before you install
Installation is straightforward with no runtime dependencies. However, the package is abandoned—last commit was 2021-11-14 and no releases since 2015-04-14. It remains marked Production/Stable but receives no maintenance.
License in practice
BSD license is permissive, allowing commercial and private use with minimal restrictions, making it safe from a licensing standpoint for most projects.
Quickstart
pip install hashring
from hashring import HashRing
hr = HashRing(nodes=['node1', 'node2', 'node3'])
node = hr.get_node('some_key')
Verify before relying
- Whether md5 hashing is cryptographically sufficient for your use case (md5 is not collision-resistant)
- Compatibility with Python versions beyond 3.4 (classifiers list only up to 3.4)
- Whether the implementation handles virtual nodes or other advanced consistent hashing features
Package facts
| License | BSD permissive |
| Python support | Not specified |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | None |
| Maintenance | Abandoned 4,140 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 75,180 / month, #14,744 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 :: OSI Approved :: BSD LicenseOperating System :: Microsoft :: WindowsOperating System :: POSIXOperating System :: UnixProgramming Language :: PythonProgramming Language :: Python :: 2.6Programming Language :: Python :: 2.7Programming Language :: Python :: 3Programming Language :: Python :: 3.3Programming Language :: Python :: 3.4Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPyTopic :: Utilities |
Evidence: hashring-1.5.1-py2.py3-none-any.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 › “load balancing hash”
- hashringImplements consistent hashing in Python using md5 as the hashing…
- murmurhash2Provides 32-bit murmurhash2 and murmurhash3 hash functions for…
- pyfarmhashProvides Python bindings to Google's FarmHash, a fast…
Give your agent the search over MCP, or paste the wish link into any chat.
More Utilities packages
Converts domain names between Unicode and ASCII-compatible encoding (Punycode) according to IDNA 2008 and Unicode Technical Standard 46, with security validation and broader script coverage than the standard library.
Install it if you work with internationalized domain names, need to validate domains, or use HTTP clients that depend on it transitively.
Detects and normalizes text encoding from unknown or ambiguous sources, supporting all IANA character sets that Python's core library provides codecs for, with the ability to register custom codecs.
Setuptools is a Python build backend and package management tool that handles building, distributing, and installing Python packages, including support for C/C++ extension modules.
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.
Pygments is a syntax highlighter that colorizes source code and text in over 500 languages and formats, outputting to HTML, LaTeX, RTF, SVG, images, or ANSI terminal sequences.
Install it if you need to display or transform source code.
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.
See also clandestined · uhashring · dict-hash · dirhash · poseidon-py · checksumdir · pwdlib · murmurhash · siphash · ImageHash