Portable
No platform-specific path
No SIMD, 128-bit multiply, hardware-specific instructions, or undefined behavior. Output is independent of host endianness.
Experimental · non-cryptographic
A small, fast, portable 64-bit hash function. It is a successor experiment to ChibiHash v1 and v2, with higher measured speed and the same strict portability rules.
hayahash64(key, len, seed)no_std Rust0x6B558D9DThe reference implementation is one C header. The Rust port is bit-exact against it.
#include "hayahash.h"
uint64_t h = hayahash64(buf, len, seed);
let h = hayahash::hayahash64(buf, seed);
Portable
No SIMD, 128-bit multiply, hardware-specific instructions, or undefined behavior. Output is independent of host endianness.
Fast
Eight independent lanes process 64-byte blocks. Tail reads overlap, so no byte-at-a-time tail loop is required.
Checked
The C reference passes 188/188 SMHasher3 tests. The Rust port checks the verification value and shared known-answer vectors.
add → multiply chain over 64-byte blocks.
This is an experimental prototype. Digest compatibility is not promised between revisions.