Gloomex
GSupports murmur_x64_128.
It has the same false-positives as present in the bloom filter from the Guava library.
Installation
def deps do
[
{:gloomex, "~> 0.1.0"}
]
endUsage
file = "top_passwords.txt"
false_positive_ratio = 0.01
# creates bloom filter from file
bloom_filter = Gloomex.plain_from_file(file, false_positive_ratio)
# returns true if present or false positive
Gloomex.might_contain?(bloom_filter, "123456789")You can also create the bloom filter manually
file = "top_passwords.txt"
expected_insertions = file
|> File.stream!()
|> Enum.count()
false_positive_ratio = 0.01
# creates bloom filter from file
bloom_filter = Gloomex.plain(expected_insertions, false_positive_ratio)
file
|> File.stream!()
|> Enum.each(fn word ->
Gloomex.put!(bloom_filter, String.trim(word))
end)
# returns true if present or false positive
Gloomex.might_contain?(bloom_filter, "123456789")