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
每月下载量 4,106,231
在 3,778 个 Crates 中使用(直接使用 867 个)
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
- 启用不稳定的 raw-shard API。 -
rayon
- 启用 rayon 支持。 -
inline
- 启用来自hashbrown
crate 的inline-more
功能。这可能带来更好的性能,但会以更长的编译时间为代价。 -
arbitrary
- 启用对arbitrary
crate 的支持。
贡献
DashMap 欢迎贡献!请不要犹豫,提出问题或 PR。
我会尽快查看。
但说到底,我(目前)还没有为开源工作得到报酬。这意味着我的时间有限,我的工作在这里是在我的个人生活之后。
性能
可以在 这里 找到包括 DashMap 在内的全面基准测试套件。
特别感谢
许可证
本项目采用MIT许可证。
依赖项
~0.9–6.5MB
~28K SLoC