Cuckoo is a pure Elixir implementation of a Cuckoo Filter.
Add Cuckoo as a dependency in your mix.exs file.
def deps do
[{:cuckoo, "~> 1.0"}]
end
iex> cf = Cuckoo.new(1000, 16, 4)
%Cuckoo{...}
iex> {:ok, cf} = Cuckoo.insert(cf, 5)
%Cuckoo{...}
iex> Cuckoo.contains?(cf, 5)
true
iex> {:ok, cf} = Cuckoo.delete(cf, 5)
%Cuckoo{...}
iex> Cuckoo.contains?(cf, 5)
false
The implementation follows the specification as per the paper above.
For hashing we use the x64_128 variant of Murmur3 and the Erlang phash2.