SpiritFingers

β€œFast SimHash NIFs written in Rust πŸ‡πŸ’¨ as Erlang/Elixir versions were too slow πŸ’β€

logo

Build

Tested against Rust 1.26.0.

mix compile

Test

mix test

Installation

Add spirit_fingers to your list of dependencies in mix.exs:

def deps do
  [
    {:spirit_fingers, "~> 0.1.1"}
  ]
end

Usage

Generate SimHash:

SimHash.simhash("wow")
{:ok, 17399923637769257768}

Similarity between strings:

SimHash.similarity("Hocus pocus", "Hocus pocus pilatus pas")
{:ok, 0.9375}

Hamming Distance between hashes:

SimHash.hamming_distance(17399923637769257768, 17399923637769257768)
{:ok, 0.0}

Similarity between hashes:

SimHash.hash_similarity(17399923637769257768, 17399923637769257768)
{:ok, 0.0}