Skip to content

Termina1/node-xxhash

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 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'),
    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().

About

An xxhash binding for node.js

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 76.1%
  • JavaScript 21.5%
  • Python 2.4%