Description
An xxhash binding for node.js.
Requirements
Install
npm install xxhash
Examples
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()
.