No description
Find a file
Sarah Truffle 82ca8d5567
Add SIMD lane-packed WILLIAM3 hashing and William3Pool
Add feature `simd` with NEON, SSE4.1, AVX2 and WebAssembly SIMD kernels.
This hashes up to 4/8 independent inputs at the same time, one input per
lane. On x86_64 the right backend is chosen at runtime.

Add feature `pool` with William3Pool, a worker pool that packs concurrent
small hashing jobs into SIMD lanes.

`simd` and `pool` are enabled by default. Everything is bit-identical to the
portable implementation.

Also export chunk_label and inner_label for protocol verifiers and add a
throughput example.
2026-10-20 20:53:42 -05:00
examples Add SIMD lane-packed WILLIAM3 hashing and William3Pool 2026-10-20 20:53:42 -05:00
fuzz Finalise WILLIAM3 fix 2026-06-26 13:47:15 +02:00
src Add SIMD lane-packed WILLIAM3 hashing and William3Pool 2026-10-20 20:53:42 -05:00
.gitignore Add SIMD lane-packed WILLIAM3 hashing and William3Pool 2026-10-20 20:53:42 -05:00
Cargo.lock Log changes and bump version number. 2026-07-08 13:00:04 +01:00
Cargo.toml Add SIMD lane-packed WILLIAM3 hashing and William3Pool 2026-10-20 20:53:42 -05:00
CHANGELOG.md Log changes and bump version number. 2026-07-08 13:00:04 +01:00
LICENSE-APACHE Add crate metadata 2025-10-06 20:45:33 +02:00
LICENSE-MIT Add crate metadata 2025-10-06 20:45:33 +02:00
README.md Add SIMD lane-packed WILLIAM3 hashing and William3Pool 2026-10-20 20:53:42 -05:00
william3vectors.txt Update test vectors 2026-06-27 10:59:48 +02:00

Bab in Rust

A Rust implementation of the Bab family of hash functions in general, and the WILLIAM3 instantiation in particular.

See the docs for more details.

Changes in this fork

Forked from worm-blossom/bab_rs 0.8.1.

  • Adds the simd and pool features, both on by default.
    • simd: SIMD-parallel hashing of independent inputs on NEON, SSE4.1, AVX2 and WebAssembly SIMD.
    • pool: William3Pool, a thread pool that packs concurrent small hash jobs into the SIMD lanes.
  • Output is bit-identical to upstream bab_rs.