Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

bloem

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

bloem

Bloom Filter using the FNV hash function

  • 0.2.3
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
872
decreased by-7.63%
Maintainers
1
Weekly downloads
 
Created
Source

Bloem - Bloom Filter for node.js

Bloem implements three Bloom Filters for node.js. All use the FNV Hash function and the optimization described in [1] by Kirsch and Mitzenmacher.

  • Bloem, a classic bloom filter dimensioned by the size of the bitfield and the number of hash functions
  • SafeBloem, enforces a given false positive error probabilty for a given capacity
  • ScalingBloem, a scaling bloom filter (SBF) as described by Almeida et al. in [2]

Install

npm install bloem

Usage

Bloem
var bloem = require('bloem')
var filter = new bloem.Bloem(16, 2)
filter.has(Buffer("foobar")) // false
filter.add(Buffer("foobar"))
filter.has(Buffer("foobar")) // true
filter.has(Buffer("hello world")) // false
SafeBloem
var bloem = require('bloem')
var filter = new bloem.SafeBloem(2, 0.1)
filter.add(Buffer("1")) // true
filter.add(Buffer("2")) // true
filter.add(Buffer("3")) // false

filter.has(Buffer("3")) // false
filter.has(Buffer("1")) // true

API

Class: Bloem

new Bloem(size, slices)
  • size Number - bits in the bitfield
  • slices Number - how many hashfunctions to use

Create a new Bloem filter object.

filter.add(key)
  • key Buffer - key to add

Add a key to the set

filter.has(key)
  • key Buffer

Test if key is in the set

Class: SafeBloem

new SafeBloem(capacity, error_rate)
  • capacity Number - capacity of the filter
  • error_rate Number

Create a new bloom filter that can hold capacity elements with an error probability of error_rate.

filter.add(key)
  • key Buffer - key to add

Add a key to the set. Returnes true on success and false if the filter is full.

filter.has(key)
  • key Buffer

Test if key is in the set

Class: ScalingBloem

new ScalingBloem(error_rate, options)
  • error_rate Number

Creates an instance of a scaling bloom filter. Accepts a "options" Object that takes the following values:

  • initial_capacity - the capacity of the first filter. Default: 1000
  • scaling - the scaling factor. Use 2 here for less space usage but higher cpu usage or 4 for higher space, but lower cpu usage. Default: 2
  • ratio - tightening ratio with 0 < ratio < 1. Default: 0.9
filter.add(key)
  • key Buffer - key to add

Add a key to the set

filter.has(key)
  • key Buffer

Test if key is in the set

References

Keywords

FAQs

Package last updated on 01 Jun 2013

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc