Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/xacrimon/dashmap
Blazing fast concurrent HashMap for Rust.
https://github.com/xacrimon/dashmap
concurrent concurrent-data-structure concurrent-map concurrent-programming data-structures hashmap hashtable
Last synced: 16 days ago
JSON representation
Blazing fast concurrent HashMap for Rust.
- Host: GitHub
- URL: https://github.com/xacrimon/dashmap
- Owner: xacrimon
- License: mit
- Created: 2019-12-06T21:48:39.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2024-04-24T15:05:26.000Z (7 months ago)
- Last Synced: 2024-05-11T10:00:43.338Z (6 months ago)
- Topics: concurrent, concurrent-data-structure, concurrent-map, concurrent-programming, data-structures, hashmap, hashtable
- Language: Rust
- Homepage:
- Size: 609 KB
- Stars: 2,737
- Watchers: 29
- Forks: 140
- Open Issues: 49
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-blazingly-fast - dashmap - Blazing fast concurrent HashMap for Rust. (Rust)
README
# DashMap
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>`.
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` 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.[![version](https://img.shields.io/crates/v/dashmap)](https://crates.io/crates/dashmap)
[![documentation](https://docs.rs/dashmap/badge.svg)](https://docs.rs/dashmap)
[![downloads](https://img.shields.io/crates/d/dashmap)](https://crates.io/crates/dashmap)
[![minimum rustc version](https://img.shields.io/badge/rustc-1.65-orange.svg)](https://crates.io/crates/dashmap)
## Cargo features
- `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.
## Contributing
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.## Performance
A comprehensive benchmark suite including DashMap can be found [here](https://github.com/xacrimon/conc-map-bench).
## Special thanks
- [Jon Gjengset](https://github.com/jonhoo)
- [Yato](https://github.com/RustyYato)
- [Karl Bergström](https://github.com/kabergstrom)
- [Dylan DPC](https://github.com/Dylan-DPC)
- [Lokathor](https://github.com/Lokathor)
- [namibj](https://github.com/namibj)
## License
This project is licensed under MIT.