7 个版本
0.7.1 | 2024年1月21日 |
---|---|
0.7.0 | 2024年1月7日 |
0.2.1 | 2024年1月6日 |
0.1.2 | 2023年8月3日 |
#624 在 算法 中
每月 55 次下载
10KB
153 行
FHash
FHash 是一个简单轻量级的散列库,旨在提供灵活性、速度和易用性。它提供了一种基本的散列算法 FHasher
,以及一个 RandomState
实现,适用于 HashMap
和 HashSet
结构。它是 AHash
的直接竞争对手,速度快 1.3-2.0 倍。
特性
FHasher
- 简单至极:实现了一种直接的哈希函数,提供基本但有效的哈希功能。
- 极简设计:设计精简高效,适用于各种哈希需求,无需不必要的复杂性。
- 可定制:通过允许为
FHasher
实例定制种子来提供灵活性。
RandomState
- 增强安全性:将随机性引入哈希过程,减轻某些类型的哈希冲突攻击,增强数据结构的安全性。
- 易于集成:设计用于与
HashMap
和HashSet
无缝集成,增强对哈希函数潜在漏洞的抵抗力。
用法
RandomState 与 HashMap/HashSet
use hashbrown::HashMap;
use fhash::RandomState;
let mut map: HashMap<i32, &str, RandomState> = HashMap::default();
map.insert(1, "apple");
map.insert(2, "banana");
assert_eq!(map.get(&1), Some(&"apple"));
assert_eq!(map.get(&2), Some(&"banana"));
FHasher
use fhash::FHasher;
let mut hasher = FHasher::default();
hasher.write(b"Hello, world!");
let hash_result = hasher.finish();
兼容性
no_std
兼容:可以在no_std
环境或对标准库访问有限的情况下使用。
贡献
欢迎为 FHash 提供优化、功能或错误修复方面的贡献!请提交问题或拉取请求。