Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
axhash
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.2?
- Dokumentasi penggunaan diperbarui dan diperjelas untuk semua API publik
- Contoh penggunaan lebih lengkap untuk berbagai skenario (hash bytes, hash struct, integrasi HashMap, custom seed)
- Perbaikan minor pada dokumentasi dan penjelasan API
Fitur Utama
- Kompatibel
no_std, tanpa alokasi memori pada jalur utama - Deterministik dan seeded, cocok untuk kebutuhan
indexing,cache, danstruktur 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:
[]
= "0.1.1"
Benchmark (Apple M4)
Hasil benchmark internal menggunakan Criterion.rs:

API Publik & Contoh Penggunaan
1. Hash Bytes
Hash bytes dengan seed default (0):
use axhash;
let hash = axhash;
println!;
Hash bytes dengan custom seed:
use axhash_seeded;
let hash = axhash_seeded;
println!;
2. Hash Tipe/Struct Apapun (Trait Hash)
Hash struct/tipe apapun yang mengimplementasikan trait Hash:
use axhash_of;
let record = DemoRecord ;
let hash = axhash_of;
println!;
Hash struct dengan custom seed:
use axhash_of_seeded;
let hash = axhash_of_seeded;
println!;
3. Integrasi dengan HashMap
axhash menyediakan AxBuildHasher untuk integrasi mudah dengan HashMap:
use AxBuildHasher;
use HashMap;
let mut map = with_hasher;
map.insert;
Jika ingin seed default:
let mut map = with_hasher;
4. Penggunaan Manual Hasher
Jika ingin kontrol penuh, gunakan AxHasher secara manual:
use AxHasher;
use Hasher;
let mut hasher = new_with_seed;
hasher.write_u64;
hasher.write_u32;
hasher.write_u16;
hasher.write_u8;
let value = hasher.finish;
println!;
Penjelasan API
axhash(bytes: &[u8]) -> u64— Hash bytes dengan seed default (0)axhash_seeded(bytes: &[u8], seed: u64) -> u64— Hash bytes dengan seed customaxhash_of<T: Hash>(data: &T) -> u64— Hash tipe/struct apapun yang implementasi traitHash(seed default)axhash_of_seeded<T: Hash>(data: &T, seed: u64) -> u64— Hash tipe/struct apapun dengan seed customAxBuildHasher— Untuk integrasi dengan HashMap, mendukung seed customAxHasher— Hasher manual, implementasi traitHasher
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.