xxbloom

1.0.1 • Public • Published

Yet another Bloom filter implementation for node.js. Everybody has to write one, as you know. Backed by Xxhash via xxhashjs. Xxhash is a fast general-purpose hash, which is all a bloom filter needs.

To install: npm install xxbloom

on npm Build Status Coverage Status

Usage

BloomFilter

To create a filter, pass an options hash to the constructor:

var options =
{
    bits: 1024,
    hashes: 7,
    seeds: [1, 2, 3, 4, 5, 6, 7]
};
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 = BloomFilter.createOptimal(estimatedItemCount, errorRate);

The error rate parameter is optional. It defaults to 0.005, or a 0.5% rate.

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 xxbloom

Weekly Downloads

0

Version

1.0.1

License

ISC

Last publish

Collaborators

  • ceejbot