xxhash.jsx

    0.2.1 • Public • Published

    xxhash.jsx

    Synopsis

    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.

    Code Example

    Use from JSX

    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();
        }
    }

    Use from node.js

    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 from require.js

    // use xxhash.amd.js
    define(['xxhash'], function (xxhash) {
        var hash = xxhash.XXH.digest('input string', 0x1111);
    });

    Use via global variables

    <script src="xxhash.global.js" type="text/javascript"></script>
    <script type="text/javascript">
    window.onload = function () {
        alert(XXH.digestHex('content', 0xabcd));
    });
    </script> 

    Installation

    $ 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

    API Reference for JS

    For JavaScript environment, it provides entrypoint "XXH". It provides static methods to calculate XXHASH.

    XXH.digest(input : string/ArrayBuffer/Uint8Array, seed : number) : number

    It returns calculated hash value as number.

    XXH.digestHex(input : string/ArrayBufferUint8Array, seed : number) : string

    It returns calculated hash value as hex string.

    API Reference for JSX

    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.

    static function digest(input : inputtype, seed : number) : number

    It returns calculated hash value as number.

    static function digestHex(input : inputtype, seed : number) : string

    It returns calculated hash value as hex string.

    function constructor(seed : number)

    Initialize hash calculator object.

    function update(input : inputtype) : self

    Add input. This method can be called multipul times.

    function digest() : number

    It returns calculated hash as number.

    function digestHex() : string

    It returns calculated hash as string.

    function init(seed : number) : void

    Initialize object content.

    Development

    JSX

    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.

    Setup

    To create development environment, call following command:

    $ npm install

    Repository

    Run Test

    $ grunt test

    Build

    $ grunt build

    Generate API reference

    $ grunt doc

    Author

    License

    The MIT License (MIT)

    Complete license is written in LICENSE.md.

    Install

    npm i xxhash.jsx

    DownloadsWeekly Downloads

    6

    Version

    0.2.1

    License

    The MIT License (MIT)

    Last publish

    Collaborators

    • shibu