0.0.2 • Published 11 years ago

bitcrunch v0.0.2

Weekly downloads
4
License
-
Repository
github
Last release
11 years ago

bitcrunch

Probabilistic counters for node.js, backed by redis.

Note: not ready for production use.

linear counting

Currently the only structure implemented is a linear counter. It hashes and maps input values to an internal linear identifier via redis-identity.

Basic logic

var bitcrunch = require('bitcrunch');

var won = bitcrunch('won');
var lost = bitcrunch('lost');

// winners

won
.add('a+foobar@email.com')
.add('b+foobar@email.com')
.add('c+foobar@email.com');

// losers

lost
.add('c+foobar@email.com')
.add('d+foobar@email.com');


// won AND lost

won
.and(lost)
.count(function(err, total){
  console.log('%s won and lost', total);
});

// won OR lost

won
.or(lost)
.count(function(err, total){
  console.log('%s won or lost', total);
});

Membership

var bitcrunch = require('bitcrunch');

var likes = bitcrunch('likes')
.add('js')
.add('lua')
.add('redis');

likes.includes('js', function(err, result){
  console.log('result = %s', result);
});

todo

  • command-queue / promises for chaining (that works).
  • complex logic (and/or/and), kinda requires the promises.
  • do we really need to hash values (for linear).
  • max-size for linear
  • linear NOT.
  • linear XOR.
  • more counter types (HLL, Bloom, etc).

attribution

License

MIT

0.0.2

11 years ago

0.0.1

11 years ago

0.0.0

11 years ago