highwayhash 0.0.12

Bindings to AVX-2-optimized SIP-like hash functions
Documentation

highwayhash-rs

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.

Status

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.