#散列 #哈希表 #哈希集 #算法 #结构 #闪电般 #f-hasher

无需 std fhash

闪电般快的 Rust HashMap 散列

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算法

Download history 42/week @ 2024-03-30 9/week @ 2024-04-06

每月 55 次下载

Apache-2.0 OR MIT

10KB
153

FHash

FHash 是一个简单轻量级的散列库,旨在提供灵活性、速度和易用性。它提供了一种基本的散列算法 FHasher,以及一个 RandomState 实现,适用于 HashMapHashSet 结构。它是 AHash 的直接竞争对手,速度快 1.3-2.0 倍。

特性

FHasher

  • 简单至极:实现了一种直接的哈希函数,提供基本但有效的哈希功能。
  • 极简设计:设计精简高效,适用于各种哈希需求,无需不必要的复杂性。
  • 可定制:通过允许为 FHasher 实例定制种子来提供灵活性。

RandomState

  • 增强安全性:将随机性引入哈希过程,减轻某些类型的哈希冲突攻击,增强数据结构的安全性。
  • 易于集成:设计用于与 HashMapHashSet 无缝集成,增强对哈希函数潜在漏洞的抵抗力。

用法

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 提供优化、功能或错误修复方面的贡献!请提交问题或拉取请求。

无运行时依赖