Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mscdex/node-xxhash
An xxhash binding for node.js
https://github.com/mscdex/node-xxhash
Last synced: 6 days ago
JSON representation
An xxhash binding for node.js
- Host: GitHub
- URL: https://github.com/mscdex/node-xxhash
- Owner: mscdex
- License: other
- Created: 2012-05-30T21:43:20.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2020-08-05T06:59:23.000Z (over 4 years ago)
- Last Synced: 2024-10-14T12:07:32.149Z (3 months ago)
- Language: C++
- Size: 142 KB
- Stars: 193
- Watchers: 9
- Forks: 28
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Description
===========An [xxhash](https://github.com/Cyan4973/xxHash) binding for [node.js](http://nodejs.org/).
[![Build Status](https://travis-ci.org/mscdex/node-xxhash.svg?branch=master)](https://travis-ci.org/mscdex/node-xxhash)
[![Build status](https://ci.appveyor.com/api/projects/status/y2f8pisjshf4g181)](https://ci.appveyor.com/project/mscdex/node-xxhash)Requirements
============* [node.js](http://nodejs.org/) -- v4.0.0 or newer
Install
============npm install xxhash
Examples
========* Hash a file in one step:
```javascript
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:
```javascript
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:
```javascript
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()`.