commit | 0282add6890f0435975e056fe76a034d093f689e | [log] [tgz] |
---|---|---|
author | Android Build Coastguard Worker <[email protected]> | Tue Aug 27 23:12:02 2024 +0000 |
committer | Android Build Coastguard Worker <[email protected]> | Tue Aug 27 23:12:02 2024 +0000 |
tree | 30a08c6fef548bd7e68247594dfce9c4d8151339 | |
parent | 998be57743d027ffef6b060ca6df53c10398d997 [diff] | |
parent | 9946d30a1b23972258000d550eead782b86d05c0 [diff] |
Snap for 12283639 from 9946d30a1b23972258000d550eead782b86d05c0 to 24Q4-release Change-Id: I39e74f4d78007646dc141b7f28c6a756157b3dec
Blazingly fast concurrent map in Rust.
DashMap is an implementation of a concurrent associative array/hashmap in Rust.
DashMap tries to implement an easy to use API similar to std::collections::HashMap
with some slight changes to handle concurrency.
DashMap tries to be very simple to use and to be a direct replacement for RwLock<HashMap<K, V>>
. To accomplish these goals, all methods take &self
instead of modifying methods taking &mut self
. This allows you to put a DashMap in an Arc<T>
and share it between threads while still being able to modify it.
DashMap puts great effort into performance and aims to be as fast as possible. If you have any suggestions or tips do not hesitate to open an issue or a PR.
serde
- Enables serde support.
raw-api
- Enables the unstable raw-shard api.
rayon
- Enables rayon support.
inline
- Enables inline-more
feature from the hashbrown
crate. Can lead to better performance, but with the cost of longer compile-time.
arbitrary
- Enables support for the arbitrary
crate.
DashMap gladly accepts contributions! Do not hesitate to open issues or PR's.
I will take a look as soon as I have time for it.
That said I do not get paid (yet) to work on open-source. This means that my time is limited and my work here comes after my personal life.
A comprehensive benchmark suite including DashMap can be found here.
This project is licensed under MIT.