Bloom Filter
This JavaScript bloom filter implementation uses the non-cryptographic
Fowler–Noll–Vo hash function for speed.
Usage
var bloom = new BloomFilter(
32 * 256,
16
);
bloom.add("foo");
bloom.add("bar");
bloom.test("foo");
bloom.test("bar");
bloom.test("blah");
var array = [].slice.call(bloom.buckets),
json = JSON.stringify(array);
var bloom = new BloomFilter(array, 16);
Implementation
Although the bloom filter requires k hash functions, we can simulate this
using only two hash functions. In fact, we can use the same FNV algorithm
for both hash functions, using only different base offsets for the two hashes.
Thanks to Will Fitzgerald for his help and inspiration with the hashing
optimisation.