BloomFilter is a ruby library that implements an in-memory Bloom Filter
- ruby 1.9.1 or later
gem install bloom-filter
BloomFilter
.new
.load
#dump
#insert
#include?
#bits
#binary
require 'bloom-filter'
filter = BloomFilter.new
# auto-calculate optimum bitmap size based on maximum number of items stored and desired max error rate.
filter = BloomFilter.new size: 100_000, error_rate: 0.01
# specify bitmap size & number of hash functions explicitly.
filter = BloomFilter.new bits: 100_000_0, hashes: 4
filter.insert "foo"
filter.include? "foo" #=> true
filter.include? "bar" #=> false
filter.dump "/tmp/random.bloom"
filter = BloomFilter.load "/tmp/random.bloom"
bits = filter.bits #=> "10010100100111..."
binary = filter.binary #=> "\x83Ö\xAC\xEA\u00..."
filter2 = BloomFilter.new bits: 100_000_0, hashes: 4
filter2.binary = binary
filter2.include? "foo" #=> true
https://github.com/igrigorik/bloomfilter-rb
https://github.com/deepfryed/bloom-filter
MIT