ts-xxhash
TypeScript icon, indicating that this package has built-in type declarations

1.0.6 • Public • Published

ts-xxhash

xxHash is a very fast hashing algorithm (see the details here). 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.

Build Status

code style: prettier

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(<data>, <seed>) 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(<seed>) or XXH.h32() The seed can be set later on with the init method

    * add data to the hash calculation:
    

    H.update(<data>)

    * finish the calculations:
    

    H.digest()

The object returned can be converted to a string with toString(<radix>) 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(<seed>).

Methods

  • XXH.h32() _ .init(<seed>) Initialize the XXH object with the given seed. The seed can either be a number or a UINT32 object. _ .update(<data>) 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(<seed>) Initialize the XXH object with the given seed. The seed can either be a number or a UINT64 object. _ .update(<data>) 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().

Setup (in ./)

Install NodeJS

Download

Fetch dependencies

npm install

Dev (in ./)

Typescript builds are automatic and watch for file changes:

npm run build

or run this to build only once:

npm run buildOnce

Building, Linting, Formatting, Testing:

npm test

Contribution

  • use git pull --rebase in favor of regular pull, i recommend configuring it globally via:
    git config --global pull.rebase true

License

MIT

Readme

Keywords

none

Package Sidebar

Install

npm i ts-xxhash

Weekly Downloads

767

Version

1.0.6

License

All rights reserved.

Unpacked Size

32.9 kB

Total Files

21

Last publish

Collaborators

  • ltetzlaff