farmfilter

1.1.0 • Public • Published

Yet another Bloom filter implementation for node.js. Everybody has to write one, as you know. Backed by FarmHash.

To install: npm install farmfilter

on npm Build Status Coverage Status

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.

Package Sidebar

Install

npm i farmfilter

Weekly Downloads

10

Version

1.1.0

License

ISC

Unpacked Size

14.2 kB

Total Files

8

Last publish

Collaborators

  • ceejbot