6 个稳定版本
使用旧的 Rust 2015
1.1.5 | 2016年3月20日 |
---|---|
1.1.4 | 2015年9月2日 |
1.1.2 | 2015年7月15日 |
1.1.0 | 2015年7月13日 |
#5 in #idea
27,551 每月下载量
用于 13 个 crate(12 个直接使用)
2MB
982 行代码(不包括注释)
rust-farmhash
将 Google 的 Farmhash 版本 1.1 移植到纯 Rust
有关 Farmhash 的更多信息,请参阅 https://code.google.com/p/farmhash/
Farmhash 是 Cityhash(也来自 Google)的继承者。Farmhash,就像之前的 Cityhash 一样,采用了 Austin Appleby 的 MurmurHash 的想法。
示例用法
extern crate farmhash;
...
let value: &str = "hello world";
let res32 = farmhash::hash32(&value.as_bytes());
// res32 ==> 430397466
let res64 = farmhash::hash64(&value.as_bytes());
// res64 ==> 6381520714923946011
基准测试
在 Mac OSX 的 /usr/share/dict/web2 上进行测试
farmhash: required 0.06485s with 0/235887 collisions
fnv: required 0.12042s with 1/235887 collisions
siphash: required 0.23546s with 0/235887 collisions
注意
由于 FarmHash 不是一个流式哈希,建议直接使用 hash64 或 hash32 函数。如果在调用 finish 之前将 bytearray 分块写入,使用 hasher 接口将得到不同的结果。