0.03
No commit activity in last 3 years
No release in over 3 years
A fast Bloom Filter library for Ruby for unices.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
 Dependencies

Development

 Project Readme

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