axhash 0.1.1

Fast non-cryptographic hash function for Rust with no_std support and strong HashMap performance.
Documentation

axhash (v0.1.1)

axhash adalah hash function non-cryptographic untuk Rust yang dirancang untuk performa tinggi, distribusi bit yang merata, dan efisiensi pada workload nyata, khususnya pada key kecil hingga menengah dan penggunaan di struktur data seperti HashMap.

Apa yang Baru di v0.1.1?

Versi ini membawa pembaruan cukup besar pada arsitektur internal untuk memaksimalkan efisiensi pada CPU modern, termasuk:

  • Jalur NEON asimetris untuk ARMv8-A
  • Akselerasi hardware AES vaeseq_u8, vaesmcq_u8 untuk mixing lebih cepat
  • Loop 128-byte yang mengoptimalkan pemrosesan data besar
  • Tail processing tanpa branch untuk mengurangi misprediction
  • Permutasi Feistel Link untuk memperkuat difusi bit dan ketahanan DoS

Fitur Utama

  • Kompatibel no_std, tanpa alokasi memori pada jalur utama
  • Deterministik dan seeded, cocok untuk kebutuhan indexing, cache, dan struktur data
  • Tidak bergantung pada crate eksternal
  • Performa baik pada key kecil, menengah maupun payload besar
  • Dirancang agar tahan terhadap collision attack pada workload umum bukan kriptografi

Instalasi

Tambahkan ke Cargo.toml:

[dependencies]
axhash = "0.1.1"

Benchmark (Apple M4)

Hasil benchmark internal menggunakan Criterion.rs:

Hasil Hotloop Hasil Oneshoot Hasil Streaming

Contoh Penggunaan

Hash bytes dengan seed:

use axhash::axhash_seeded;
let hash = axhash_seeded(b"axhash super power", 0x1234_5678);
println!("Hash: {hash:016x}");

HashMap dengan AxBuildHasher:

use axhash::AxBuildHasher;
use std::collections::HashMap;
let mut map = HashMap::with_hasher(AxBuildHasher::with_seed(0xDEADC0DE));
map.insert("key", "performance");

Desain Singkat

axhash menggabungkan folded multiplication, branchless path untuk key kecil, dan teknik permutasi state untuk memastikan difusi bit yang merata dan performa konsisten pada berbagai ukuran data.

Batasan

axhash bukan hash function kriptografi. Jangan gunakan untuk password, tanda tangan digital, atau kebutuhan keamanan tingkat tinggi.

Lisensi

Proyek ini dirilis di bawah lisensi MIT.