BloomFilter

BloomFilter is a ruby library that implements an in-memory Bloom Filter

Dependencies

  • ruby 1.9.1 or later

Installation

gem install bloom-filter

API

``` BloomFilter .new .load #dump #insert #include? #bits #binary

```

Usage

```ruby 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 ```

See Also

https://github.com/igrigorik/bloomfilter-rb

Home Page

https://github.com/deepfryed/bloom-filter

License

MIT