1. xxhashjs
xxHash in Javascript
xxhashjs
Package: xxhashjs
Created by: pierrec
Last modified: Wed, 29 Jun 2022 06:20:56 GMT
Version: 0.2.2
License: MIT
Downloads: 6,343,652
Repository: https://github.com/pierrec/js-xxhash

Install

npm install xxhashjs
yarn add xxhashjs

Javascript implementation of xxHash

Synopsis

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.

Installation

In nodejs:

npm install xxhashjs

In the browser, include the following, and access the constructor with XXH:

 <script src="/your/path/to/xxhash.js"></script>

Examples

  • In one step:
 var h = XXH.h32( 'abcd', 0xABCD ).toString(16)	// seed = 0xABCD

0xCDA8FAE4

  • In several steps (useful in conjunction of NodeJS streams):
 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(<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().

License

MIT

Dependencies

RELATED POST

Enhancing Vue.js Development: Harnessing the Potential of Vue-Loader

Enhancing Vue.js Development: Harnessing the Potential of Vue-Loader

Simplify Data Validation in Vue.js: A Step-by-Step Guide to Using Regex

Simplify Data Validation in Vue.js: A Step-by-Step Guide to Using Regex

Troubleshooting Made Easy: Common Issues and Solutions with vue-loader Without vue-cli

Troubleshooting Made Easy: Common Issues and Solutions with vue-loader Without vue-cli

Optimizing Webpack 4 with Vue CLI 3: Disabling the Cache-Loader

Optimizing Webpack 4 with Vue CLI 3: Disabling the Cache-Loader

Step-by-Step Guide: How to Add a Function to Your Vuex Plugin

Step-by-Step Guide: How to Add a Function to Your Vuex Plugin