farmfilter
v1.1.0
Published
Yet another Bloom filter implementation, this one with farmhash
Downloads
18
Readme
Yet another Bloom filter implementation for node.js. Everybody has to write one, as you know. Backed by FarmHash.
To install: npm install farmfilter
Usage
To create a filter, pass an options hash to the constructor:
const Filter = require('farmfilter');
const options =
{
bits: 1024,
hashes: 7,
seeds: [1, 2, 3, 4, 5, 6, 7]
};
const filter = new BloomFilter(options);
You can pass in seeds for the hash functions if you like, or they'll be randomly generated. Seeds must be integers.
You may also pass in a buffer as generated by filter.toBuffer()
.
createOptimal()
To create a filter optimized for the number of items you'll be storing and a desired error rate:
filter = Filter.createOptimal(estimatedItemCount, errorRate);
The error rate parameter is optional. It defaults to 0.005, or a 0.5% rate. This is probably the constructor you want to use.
add()
filter.add('cat');
Adds the given item to the filter. Can also accept buffers and arrays containing strings or buffers:
filter.add(['cat', 'dog', 'coati', 'red panda']);
has()
To test for membership:
filter.has('dog');
clear()
To clear the filter:
filter.clear();
toBuffer()
Returns a buffer with seeds and filter data.
fromBuffer()
Reconstitutes a filter from a freeze-dried buffer.
Licence
ISC.