ringhash

Crates.io License Build Status

Consistent hashing implementation.

Usage

Add this to your Cargo.toml:

toml [dependencies] ringhash = "0.1"

Example

```rust use ringhash::Consistent;

fn main() { let c = Consistent::new(); c.add("cacheA"); c.add("cacheB"); c.add("cacheC"); let users = vec![ "usermcnulty", "userbunk", "useromar", "userbunny", "user_stringer", ]; println!("initial state [A, B, C]"); for u in users.iter() { let server = c.get(u).unwrap(); println!("{} => {}", u, server); } c.add("cacheD"); c.add("cacheE"); println!("with cacheD, cacheE added [A, B, C, D, E]"); for u in users.iter() { let server = c.get(u).unwrap(); println!("{} => {}", u, server); } c.remove("cacheC"); println!("with cacheC removed [A, B, D, E]"); for u in users.iter() { let server = c.get(u).unwrap(); println!("{} => {}", u, server); } } ```

License

Dual-licensed under the MIT license and the Apache License (Version 2.0).

See LICENSE-MIT and LICENSE-APACHE for details.