gmcabrita / cuckoo

:bird: Cuckoo Filters in Elixir

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Cuckoo

Build Status Coverage Status Hex docs Hex Version License

Cuckoo is a pure Elixir implementation of a Cuckoo Filter.

Usage

Add Cuckoo as a dependency in your mix.exs file.

def deps do
  [{:cuckoo, "~> 1.0"}]
end

Examples

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

Implementation Details

The implementation follows the specification as per the paper above.

For hashing we use the x64_128 variant of Murmur3 and the Erlang phash2.

About

:bird: Cuckoo Filters in Elixir

License:MIT License


Languages

Language:Elixir 100.0%