61 个稳定版本 (5 个主要版本)
6.0.1 | 2024年6月24日 |
---|---|
5.5.3 | 2023年8月29日 |
5.5.0 | 2023年7月11日 |
5.4.0 | 2022年8月30日 |
1.2.0 | 2019年10月15日 |
#4 in 并发
4,035,413 每月下载量
在 3,768 个 Crates 中使用 (866 个直接使用)
130KB
3K SLoC
DashMap
Rust 中速度极快的并发映射。
DashMap 是 Rust 中并发关联数组的 HashMap 实现。
DashMap 尝试实现一个类似于 std::collections::HashMap
的易于使用的 API,并进行了一些轻微的修改以处理并发。
DashMap 尝试非常简单易用,并直接替换 RwLock<HashMap<K, V>>
。为了实现这些目标,所有方法都使用 &self
而不是修改方法使用 &mut self
。这使得您可以将 DashMap 放入一个 Arc<T>
中,并在多个线程之间共享它,同时仍然能够对其进行修改。
DashMap 在性能上投入了大量精力,旨在尽可能快。如果您有任何建议或技巧,请不要犹豫,随时可以打开一个问题或 PR。
Cargo 功能
-
serde
- 启用 serde 支持。 -
raw-api
- 启用不稳定的原始分片 API。 -
rayon
- 启用 rayon 支持。 -
inline
- 启用来自hashbrown
Crates 的inline-more
功能。这可能带来更好的性能,但代价是更长的编译时间。 -
arbitrary
- 启用对arbitrary
Crates 的支持。
贡献
DashMap 欢迎贡献!请不要犹豫,随时可以打开问题或 PR。
我会在有时间的时候查看。
尽管如此,我(目前)还没有因开源工作而获得报酬。这意味着我的时间是有限的,我在这里的工作是在我的个人生活之后。
性能
包括DashMap在内的全面基准测试套件可以在这里找到:这里。
特别感谢
许可
本项目采用MIT许可。
依赖项
~0.9–7MB
~28K SLoC