JSX implementation of very fast hasing algorithm xxHash. It can use from any JavaScript environment (common.js(node.js), AMD, browser, etc).
This code is based on Pierrec's js-xxhash.
import "xxhash.jsx";
class _Main {
static function main(argv : string[]) : void
{
var seed = 0xabcd;
// single line way
var hashStr : string = StringXXH.digestHex('input string', seed);
// flexible way
var hhx = new StringXXH(seed);
hhx.update('first input string');
hhx.update('second input string');
var hashNum : number = hhx.digest();
// or
var hashStr2 : string = hhx.digestHex();
}
}
var xxhash = require('xxhash.common.js');
var fs = require('fs');
var buffer = fs.readFileSync('inputfile.txt');
var hash = xxhash.XXH.digestHex(buffer, 0xabcd);
console.log(hash);
// use xxhash.amd.js
define(['xxhash'], function (xxhash) {
var hash = xxhash.XXH.digest('input string', 0x1111);
});
<script src="xxhash.global.js" type="text/javascript"></script>
<script type="text/javascript">
window.onload = function () {
alert(XXH.digestHex('content', 0xabcd));
});
</script>
$ npm install xxhash.jsx
If you want to use this library from other JSX project, install like the following:
$ npm install xxhash.jsx --save-dev
For JavaScript environment, it provides entrypoint "XXH". It provides static methods to calculate XXHASH.
It returns calculated hash value as number.
It returns calculated hash value as hex string.
In addition to XXH class, there are two classes in this module;
- class StringXXH
- class ArrayBufferXXH
All classes have same methods. ArrayBufferXXH supports Uint8Array as input in addition to ArrayBuffer.
It returns calculated hash value as number.
It returns calculated hash value as hex string.
Initialize hash calculator object.
Add input. This method can be called multipul times.
It returns calculated hash as number.
It returns calculated hash as string.
Initialize object content.
Don't be afraid JSX! If you have an experience of JavaScript, you can learn JSX quickly.
- Static type system and unified class syntax.
- All variables and methods belong to class.
- JSX includes optimizer. You don't have to write tricky unreadalbe code for speed.
- You can use almost all JavaScript API as you know. Some functions become static class functions. See reference.
To create development environment, call following command:
$ npm install
- Repository: git://github.com/shibukawa.yoshiki/xxhash.jsx.git
- Issues: https://github.com/shibukawa.yoshiki/xxhash.jsx/issues
$ grunt test
$ grunt build
$ grunt doc
- shibukawa.yoshiki / shibukawa.yoshiki@gmail.com
The MIT License (MIT)
Complete license is written in LICENSE.md
.