Skip to content

mscdex/node-xxhash

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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');
var fs = require('fs');

var file = fs.readFileSync('somefile');
var result = XXHash.hash(file, 0xCAFEBABE);
  • Hash a file in multiple steps:
var XXHash = require('xxhash');
var 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;
var 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().