https://github.com/pierrec/js-xxhash
Javascript implementation of xxHash
https://github.com/pierrec/js-xxhash
javascript js xxhash
Last synced: 6 months ago
JSON representation
Javascript implementation of xxHash
- Host: GitHub
- URL: https://github.com/pierrec/js-xxhash
- Owner: pierrec
- License: mit
- Archived: true
- Created: 2013-12-31T14:58:51.000Z (almost 12 years ago)
- Default Branch: master
- Last Pushed: 2022-10-28T13:44:02.000Z (almost 3 years ago)
- Last Synced: 2024-10-28T03:35:01.072Z (11 months ago)
- Topics: javascript, js, xxhash
- Language: JavaScript
- Size: 3.81 MB
- Stars: 289
- Watchers: 8
- Forks: 34
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- Changelog: History.md
- License: LICENSE
Awesome Lists containing this project
README
# Javascript implementation of xxHash
## Synopsis
xxHash is a very fast hashing algorithm (see the details [here](https://github.com/Cyan4973/xxHash)). xxhashjs is a Javascript implementation of it, written in 100% Javascript. Although not as fast as the C version, it does perform pretty well given the current Javascript limitations in handling unsigned 32 bits integers.
## Installation
In nodejs:
npm install xxhashjs
In the browser, include the following, and access the constructor with _XXH_:
```javascript
```
## Examples
* In one step:
```javascript
var h = XXH.h32( 'abcd', 0xABCD ).toString(16) // seed = 0xABCD
```
> 0xCDA8FAE4* In several steps (useful in conjunction of NodeJS streams):
```javascript
var H = XXH.h32( 0xABCD ) // seed = 0xABCD
var h = H.update( 'abcd' ).digest().toString(16)
```
> 0xCDA8FAE4* More examples in the examples directory:
* Compute xxHash from a file data
* Use xxHashjs in the browser## Usage
* XXH makes 2 functions available for 32 bits XXH and 64 bits XXH respectively, with the same signature:
* XXH.h32
* XXH.h64* In one step:
`XXH.h32(, )`
The data can either be a string, an ArrayBuffer or a NodeJS Buffer object.
The seed can either be a number or a UINT32 object.* In several steps:
* instantiate a new XXH object H:
`XXH.h32()` or `XXH.h32()`
The seed can be set later on with the `init` method* add data to the hash calculation:
`H.update()`* finish the calculations:
`H.digest()`The object returned can be converted to a string with `toString()` or a number `toNumber()`.
Once `digest()` has been called, the object can be reused. The same seed will be used or it can be changed with `init()`.## Methods
* `XXH.h32()`
* `.init()`
Initialize the XXH object with the given seed. The seed can either be a number or a UINT32 object.
* `.update()`
Add data for hashing. The data can either be a string, an ArrayBuffer or a NodeJS Buffer object.
* `digest()` (_UINT32_)
Finalize the hash calculations and returns an UINT32 object. The hash value can be retrieved with toString().* `XXH.h64()`
* `.init()`
Initialize the XXH object with the given seed. The seed can either be a number or a UINT64 object.
* `.update()`
Add data for hashing. The data can either be a string, an ArrayBuffer or a NodeJS Buffer object.
* `.digest()` (_UINT64_)
Finalize the hash calculations and returns an UINT64 object. The hash value can be retrieved with toString().## License
MIT