An xxhash binding for node.js.
- node.js -- v0.10.0 or newer
npm install xxhash
- 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());
});-
hash(< Buffer >data, < mixed >seed[, < mixed >encbuf]) - mixed - Performs a single/one-time 32-bit hash of
datawith the givenseed.seedcan 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 ofencbuf. Ifencbufis a string and one of:buffer,hex,base64, orbinary, then the hash value will be encoded in the appropriate format. Ifencbufis a Buffer of at least 4 bytes, then the hash value will be written toencbufandencbufwill be returned. Otherwise, ifencbufis 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
datawith the givenseed.seedcan 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 ofencbuf. Ifencbufis a string and one of:buffer,hex,base64, orbinary, then the hash value will be encoded in the appropriate format. Ifencbufis a Buffer of at least 8 bytes, then the hash value will be written toencbufandencbufwill be returned. The default value forencbufis'buffer'.
-
Stream(< mixed >seed[, < integer >bits][, < mixed >encbuf]) - DuplexStream - A stream constructor that takes in the
seedto use. Write data to the stream and when the stream ends, abits-bit (32 or 64) hash value (format determined byencbuf) is available on the readable side. The values forseedandencbufare described above inhash(). -
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.
-
(constructor)(< mixed >seed) - Creates and returns a new 32-bit Hash instance with the given
seed. The values forseedare described above inhash(). -
update(< Buffer >data) - (void) - Update the hash using
data. -
digest([< mixed >encbuf]) - mixed - The values for
encbufand the resulting hash value format is described inhash().