All Projects → lemire → Stronglyuniversalstringhashing

lemire / Stronglyuniversalstringhashing

Licence: apache-2.0
Benchmark showing the we can randomly hash strings very quickly with good universality

Labels

Projects that are alternatives of or similar to Stronglyuniversalstringhashing

Wyhash Rs
wyhash fast portable non-cryptographic hashing algorithm and random number generator in Rust
Stars: ✭ 44 (-63.03%)
Mutual labels:  hashing
Scala Hashing
Fast non-cryptographic hash functions for Scala
Stars: ✭ 66 (-44.54%)
Mutual labels:  hashing
Eternal
A C++14 compile-time/constexpr map and hash map with minimal binary footprint
Stars: ✭ 93 (-21.85%)
Mutual labels:  hashing
Thmap
Concurrent trie-hash map library
Stars: ✭ 51 (-57.14%)
Mutual labels:  hashing
Blake2fast
Optimized BLAKE2 hashing implementations in C#
Stars: ✭ 63 (-47.06%)
Mutual labels:  hashing
Ssri
Standard Subresource Integrity library for Node.js
Stars: ✭ 69 (-42.02%)
Mutual labels:  hashing
Parallel Xxhash
Compute xxHash hash codes for 8 keys in parallel
Stars: ✭ 36 (-69.75%)
Mutual labels:  hashing
Xxhash cpp
Port of the xxhash library to C++17.
Stars: ✭ 106 (-10.92%)
Mutual labels:  hashing
Low Latency Android Ios Linux Windows Tvos Macos Interactive Audio Platform
🇸Superpowered Audio, Networking and Cryptographics SDKs. High performance and cross platform on Android, iOS, macOS, tvOS, Linux, Windows and modern web browsers.
Stars: ✭ 1,121 (+842.02%)
Mutual labels:  hashing
Webcrypto
W3C Web Cryptography API for Node.js
Stars: ✭ 79 (-33.61%)
Mutual labels:  hashing
Farmhash.sharp
Port of Google's farmhash algorithm to .NET
Stars: ✭ 52 (-56.3%)
Mutual labels:  hashing
String Hash
Get the hash of a string
Stars: ✭ 56 (-52.94%)
Mutual labels:  hashing
Md5 Simd
Accelerate aggregated MD5 hashing performance up to 8x for AVX512 and 4x for AVX2. Useful for server applications that need to compute many MD5 sums in parallel.
Stars: ✭ 71 (-40.34%)
Mutual labels:  hashing
Esecurity
MSc Module
Stars: ✭ 49 (-58.82%)
Mutual labels:  hashing
Dsh tensorflow
implemement of DEEP SUPERVISED HASHING FOR FAST IMAGE RETRIEVAL_CVPR2016
Stars: ✭ 97 (-18.49%)
Mutual labels:  hashing
Node Argon2
Node.js bindings for Argon2 hashing algorithm
Stars: ✭ 1,008 (+747.06%)
Mutual labels:  hashing
Lazysodium Android
An Android implementation of the Libsodium cryptography library. For the lazy dev.
Stars: ✭ 69 (-42.02%)
Mutual labels:  hashing
Minperf
A Minimal Perfect Hash Function Library
Stars: ✭ 107 (-10.08%)
Mutual labels:  hashing
Easycrypt
Android cryptography library with SecureRandom patches.
Stars: ✭ 102 (-14.29%)
Mutual labels:  hashing
Memento
Fairly basic redis-like hashmap implementation on top of a epoll TCP server.
Stars: ✭ 74 (-37.82%)
Mutual labels:  hashing

StronglyUniversalStringHashing

Build Status

Very fast universal hash families on strings.

Sample results on a regular x64 (Skylake) processor:

Google's City                        CPU cycle/byte = 0.216047 	 
64-bit VHASH                         CPU cycle/byte = 0.215097 	 
64-bit CLHASH                        CPU cycle/byte = 0.091786 	
SipHash                              CPU cycle/byte = 1.414069

This software includes the experimental code from the following research papers...

Acknowledgements

Thanks to Nathan Kurz for noticing that GCC 4.7 requires no-tree-vectorize to produce correct results.

Usage

To test speed:

make benchmark-target
# disable some processor features that add noise to benchmarks:
cd scripts/; sudo ./master.sh; cd ..
./benchmark/benchmark.exe
./benchmark/variablelengthbenchmark.exe

To test correctness of hash functions using PCLMULQDQ:

make test-target
for test in ./test/correctness/*.exe; do $test; done

Or more simply...

./run_unit.sh

Related projects

There is a very simple clhash library in C: https://github.com/lemire/clhash

For a project with similar goals, see: https://github.com/lemire/fasthashing

Licensing

This project is licenced as described in the LICENSE file, with the following exceptions for code written by other authors:

  • smhasher and CityHash are MIT licensed.

  • VHASH and siphash are public domain.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].