hash_ring
Version, currently master branch1 version
- master branchlatestJun 23, 2018
github.com/tobyapi/hash_ring
Implementation of Consistent Hash Ring for Crystal
11 stars
0 dependents
License: MIT
Installation
# Add this to your shard.yml
dependencies:
hash_ring:
github: tobyapi/hash_ring
branch: mastermaster is a branch, not a release, so this tracks it rather than pinning a version.
Then run:
shards installshard.yml
- Crystal
0.25.0- License
- MIT
- Author
- TobiasGSmollett <landofscala@gmail.com>
Dependencies
This version declares no dependencies.
README
[](https://travis-ci.org/TobiasGSmollett/hash_ring)
# hash_ring
The Consistent Hash Ring is a useful data structure when you operate the distributed servers. This library is implementation of Consistent Hash Ring based on the excellent [Elixir hash ring lib](https://github.com/discordapp/ex_hash_ring).
## Installation
Add this to your application's `shard.yml`:
```yaml
dependencies:
hash_ring:
github: TobiasGSmollett/hash_ring
```
## Usage
```crystal
require "hash_ring"
# Register 3 servers
hash_ring = HashRing::HashRing.new(["one", "two", "three"])
# Every user is assigned a server by consistent hash ring.
hash_ring.get("user1") # => "three"
hash_ring.get("user2") # => "three"
hash_ring.get("user3") # => "one"
hash_ring.get("user4") # => "two"
# Removes the "two" server
hash_ring.remove("two")
# Exists two servers which are "one" and "three".
hash_ring.get("user1") # => "three"
hash_ring.get("user2") # => "three"
hash_ring.get("user3") # => "one"
hash_ring.get("user4") # => "three"
```
## Contributing
1. Fork it ( https://github.com/TobiasGSmollett/hash_ring/fork )
2. Create your feature branch (git checkout -b my-new-feature)
3. Commit your changes (git commit -am 'Add some feature')
4. Push to the branch (git push origin my-new-feature)
5. Create a new Pull Request
## Contributors
- [tobias](https://github.com/TobiasGSmollett) TobiasGSmollett - creator, maintainer
Documentation
Built from the current release. The first visit to a release nobody has asked for starts its build.
Links
This branch
- Branch
master- Seen
- Jun 23, 2018
- Crystal
0.25.0- Indexed
- yes
Dependents
No indexed shard depends on this one yet.
Repository
github.com/tobyapi/hash_ring
Metadata
- Created
- Aug 12, 2026
- Updated
- Aug 12, 2026
- Synced
- Aug 12, 2026
- Versions
- 1