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 并发

Download history 783196/week @ 2024-05-04 829079/week @ 2024-05-11 823623/week @ 2024-05-18 796493/week @ 2024-05-25 918286/week @ 2024-06-01 902916/week @ 2024-06-08 869100/week @ 2024-06-15 907570/week @ 2024-06-22 861179/week @ 2024-06-29 931105/week @ 2024-07-06 918469/week @ 2024-07-13 972757/week @ 2024-07-20 962876/week @ 2024-07-27 993709/week @ 2024-08-03 1001234/week @ 2024-08-10 906106/week @ 2024-08-17

4,035,413 每月下载量
3,768 个 Crates 中使用 (866 个直接使用)

MIT 许可证

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。

version

documentation

downloads

minimum rustc version

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