Implementation of the Rendezvous or Highest Random Weight (HRW) hashing algorithm in the Elixir Programming Language (elixir-lang.org)
Add rendezvous as a dependency in your mix.exs file:
defp deps do
[
rendezvous: "~> 0.0.1"
]
end
and run mix deps.get
.
Use Rendezvous.get to obtain for an object the corresponding bucket from a list of buckets. The first parameter defines the hashing algorithm to use.
object = "Some object to put in bucket"
buckets = ["bucket A", "bucket B", "bucket C"]
Rendezvous.get(:sha, object, buckets)
or use Rendezvous.get_node to obtain a nodename from the nodes in an elixir cluster:
Rendezvous.get_node object # returns name of elixir node
Check LICENSE file for more information.