axhash
axhash adalah hash function non-cryptographic untuk Rust yang dioptimalkan untuk:
- workload
HashMapdengan key kecil - penggunaan
no_std - hashing bytes mentah dengan seed deterministik
Crate ini menyediakan:
axhash_seeded(&[u8], u64) -> u64axhash_of_seeded<T: Hash>(&T, u64) -> u64AxHasheruntuk implementasicore::hash::HasherAxBuildHasheruntuk dipakai langsung diHashMap
Karakteristik
#![no_std]- seeded / deterministic
- zero allocation di jalur hashing inti
- dioptimalkan untuk primitive writes dan key kecil
- cocok untuk struktur data in-memory, indexing, cache key, dan workload lookup cepat
Bukan Untuk
axhash bukan hash cryptographic. Jangan gunakan untuk:
- password hashing
- tanda tangan digital
- MAC / authentication
- penyimpanan hash yang butuh jaminan keamanan kriptografis
Instalasi
[]
= "0.1.0"
Contoh Cepat
Hash raw bytes:
use axhash_seeded;
let hash = axhash_seeded;
println!;
Hash tipe yang mengimplementasikan Hash:
use axhash_of_seeded;
use Hash;
let key = UserKey ;
let hash = axhash_of_seeded;
println!;
Pakai di HashMap:
use AxBuildHasher;
use HashMap;
let mut map: =
with_hasher;
map.insert;
map.insert;
assert_eq!;
Menjalankan Example
Example siap pakai ada di folder examples/:
Benchmark
Repo ini menyertakan dua benchmark:
stress_test fokus ke profil internal axhash, sedangkan head_to_head membandingkan axhash melawan ahash, foldhash, rapidhash, dan wyhash.
Desain Singkat
axhash memakai kombinasi:
- folded multiplication (
u64 x u64 -> u128 -> xor-fold) - short-path khusus untuk byte slice kecil
- sponge ringan untuk jalur
Hasherberbasis primitive writes BuildHashermurah untuk workloadHashMap
Tujuan utamanya adalah memberi performa kuat pada workload nyata, terutama key kecil dan operasi lookup/insert intensif.
Lisensi
Project ini dirilis dengan lisensi MIT. Lihat LICENSE-MIT.