Neverending Plethora of Modules

    @sindresorhus/fnv1a
    TypeScript icon, indicating that this package has built-in type declarations

    3.0.0 • Public • Published

    fnv1a

    FNV-1a non-cryptographic hash function

    FNV-1a has outstanding distribution and collisions are rare.

    FNV hashes are designed to be fast while maintaining a low collision rate. The FNV speed allows one to quickly hash lots of data while maintaining a reasonable collision rate. The high dispersion of the FNV hashes makes them well suited for hashing nearly identical strings such as URLs, hostnames, filenames, text, IP addresses, etc.

    Install

    $ npm install @sindresorhus/fnv1a
    

    Usage

    import fnv1a from '@sindresorhus/fnv1a';
    
    fnv1a('🦄🌈', {size: 32});
    //=> 2868248295n
    
    fnv1a('🦄🌈', {size: 128});
    //=> 13487074350300261116944693128525960095n
    
    Number(fnv1a('🦄🌈', {size: 32}));
    //=> 2868248295

    API

    fnv1a(string, options?)

    Returns the hash as a positive BigInt.

    If you need it as a number, use 32 as size and wrap the return value in Number(…).

    options

    Type: object

    size

    Type: number
    Values: 32 | 64 | 128 | 256 | 512 | 1024
    Default: 32

    The bit size of the hash.

    Related

    • djb2a - DJB2a non-cryptographic hash function
    • sdbm - SDBM non-cryptographic hash function

    Install

    npm i @sindresorhus/fnv1a

    DownloadsWeekly Downloads

    134,917

    Version

    3.0.0

    License

    MIT

    Unpacked Size

    6.35 kB

    Total Files

    5

    Last publish

    Collaborators

    • sindresorhus