Rust Bindings to AVX2-optimized SIP-like hash functions. This crate offers bindings to three hash functions implemented in C++ here:
siphash
: A portable implementation of the SIP hash function, that is about 2
times faster than the reference
implementation.siphash13
: A faster but weaker variant of siphash
.highwayhash64
: A new hash that mixes the inputs using AVX2 instructions. It
is about 5 times faster than siphash
. A preliminary cryptanalysis is given
here.For highwayhash64
there are three implementations: one using AVX2, another one
using SSE4.1 and a third one that is portable by not relying on specific
instruction sets. To profit from the faster implementations, make sure to enable
the instruction sets at compile time using RUSTFLAGS="-C target-cpu=native"
or
similar.
The bindings are in an early state. They currently should work on Unix, but are
only tested on Linux. make
and a C++ compiler are required to build the
underlying C++ library. A nightly Rust compiler is required.