tagged-rendezvous

Crates.iotagged-rendezvous
lib.rstagged-rendezvous
version0.1.1
sourcesrc
created_at2021-08-04 17:08:48.844348
updated_at2022-08-19 05:09:17.202381
descriptionRendezvous hashing with support for tag-based exclusions
homepage
repositoryhttps://github.com/edward-shen/tagged-rendezvous
max_upload_size
id431600
size73,277
Edward Shen (edward-shen)

documentation

README

Tagged Rendezvous

unsafe forbidden codecov docs.rs

tagged-rendezvous is a toy crate for implementing rendezvous hashing with the ability to exclude certain nodes based on a generic discriminant. This crate utilizes the algorithm described in Schindelhauer and Schomaker "Weighted Distributed Hash Tables" to provide perfect stability and weight precision in the presence of mutations.

The intended use case of this crate is to provide an ergonomic way to load-balance to potentially weighted nodes for some arbitrary input, while allowing large networks to respect geopolitical issues that often occur with global networks. In other words, it allows for nodes to provide a discriminant to exclude themselves from being selected given the need to load balance some content that may be ethically, morally, or legally impermissible.

This is useful in multiple contexts. For example, a basic CDN architecture may use this to distribute multiple nodes across multiple countries and ensure that some content will not appear in nodes where the content is considered illegal. Another example would be in scenarios of volunteer nodes for some CDN to support some network as a whole but refuse to serve certain content that is illegal in their country or content they morally object to.

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

SPDX-License-Identifier: MIT OR Apache-2.0

Commit count: 24

cargo fmt