An xxhash binding for node.js
C++ JavaScript Python
Latest commit a569ede Jul 28, 2016 @mscdex bump version
Permalink
Failed to load latest commit information.
deps/xxhash deps: upgrade xxhash to r42 Sep 13, 2015
lib
src src: switch to Nan::SetMethod to fix v8 warning Jul 28, 2016
test lib,src: add ability to generate 64-bit and encoded hash values Sep 13, 2015
.travis.yml
LICENSE upgrade xxhash to r6 Jan 14, 2013
README.md readme: add CI badges Sep 13, 2015
appveyor.yml ci: add workaround for node's win_delay_load_hook issue Jul 28, 2016
binding.gyp lib,src: add ability to generate 64-bit and encoded hash values Sep 13, 2015
package.json bump version Jul 28, 2016

README.md

Description

An xxhash binding for node.js.

Build Status Build status

Requirements

Install

npm install xxhash

Examples

  • Hash a file in one step:
var XXHash = require('xxhash'),
    fs = require('fs');

var file = fs.readFileSync('somefile'),
    result = XXHash.hash(file, 0xCAFEBABE);
  • Hash a file in multiple steps:
var XXHash = require('xxhash'),
    fs = require('fs');

var hasher = new XXHash(0xCAFEBABE);

fs.createReadStream('somefile')
  .on('data', function(data) {
    hasher.update(data);
  })
  .on('end', function() {
    console.log('Hash value = ' + hasher.digest());
  });
  • Hash a file with a hash stream:
var HashStream = require('xxhash').Stream,
    fs = require('fs');

var hasher = new HashStream(0xCAFEBABE);

fs.createReadStream('somefile')
  .pipe(hasher)
  .on('finish', function() {
    console.log('Hash value = ' + hasher.read());
  });

API

XXHash Static Methods

  • hash(< Buffer >data, < mixed >seed[, < mixed >encbuf]) - mixed - Performs a single/one-time 32-bit hash of data with the given seed. seed can be an unsigned integer or a Buffer containing (1 <= n <= 4) bytes to use for the seed. The resulting hash is returned. The format of the hash depends on the value of encbuf. If encbuf is a string and one of: buffer, hex, base64, or binary, then the hash value will be encoded in the appropriate format. If encbuf is a Buffer of at least 4 bytes, then the hash value will be written to encbuf and encbuf will be returned. Otherwise, if encbuf is not supplied, then the hash will be an unsigned integer.

  • hash64(< Buffer >data, < mixed >seed[, < mixed >encbuf]) - mixed - Performs a single/one-time 64-bit hash of data with the given seed. seed can be an unsigned integer or a Buffer containing (1 <= n <= 8) bytes to use for the seed. The resulting hash is returned. The format of the hash depends on the value of encbuf. If encbuf is a string and one of: buffer, hex, base64, or binary, then the hash value will be encoded in the appropriate format. If encbuf is a Buffer of at least 8 bytes, then the hash value will be written to encbuf and encbuf will be returned. The default value for encbuf is 'buffer'.

XXHash Static Properties

  • Stream(< mixed >seed[, < integer >bits][, < mixed >encbuf]) - DuplexStream - A stream constructor that takes in the seed to use. Write data to the stream and when the stream ends, a bits-bit (32 or 64) hash value (format determined by encbuf) is available on the readable side. The values for seed and encbuf are described above in hash().

  • XXHash64(< mixed >seed) - This is the 64-bit Hash constructor. It is only needed if you want to use the old streaming interface (update()/digest()) instead of the streams2 interface described above.

XXHash Methods

  • (constructor)(< mixed >seed) - Creates and returns a new 32-bit Hash instance with the given seed. The values for seed are described above in hash().

  • update(< Buffer >data) - (void) - Update the hash using data.

  • digest([< mixed >encbuf]) - mixed - The values for encbuf and the resulting hash value format is described in hash().