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
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.