Skip to content
in-memory bloom filter in ruby
C Ruby
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
ext
lib
test
.gitignore
CHANGELOG
LICENSE
README.md
Rakefile
bloom-filter.gemspec

README.md

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

  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

You can’t perform that action at this time.