dashmap/README.md

71 lines
2.7 KiB
Markdown
Raw Normal View History

2020-07-04 18:10:33 +00:00
# DashMap
2019-08-25 17:53:35 +00:00
2019-08-26 18:20:31 +00:00
Blazingly fast concurrent map in Rust.
2019-12-06 15:10:52 +00:00
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 all methods take `&self` instead modifying methods taking `&mut self`.
This allows you to put a DashMap in an `Arc<T>` and share it between threads while 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.
2020-02-06 13:39:05 +00:00
[Documentation](https://docs.rs/dashmap)
2019-08-29 15:31:25 +00:00
[![version](https://img.shields.io/crates/v/dashmap)](https://crates.io/crates/dashmap)
2019-08-26 18:20:31 +00:00
2019-08-29 15:36:03 +00:00
[![downloads](https://img.shields.io/crates/d/dashmap)](https://crates.io/crates/dashmap)
2019-08-26 18:20:31 +00:00
2020-08-11 14:32:22 +00:00
[![xscode](https://img.shields.io/badge/available%20on-xs%3Acode-blue?style=?style=plastic&logo=appveyor&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAZQTFRF////////VXz1bAAAAAJ0Uk5T/wDltzBKAAAAlUlEQVR42uzXSwqAMAwE0Mn9L+3Ggtgkk35QwcnSJo9S+yGwM9DCooCbgn4YrJ4CIPUcQF7/XSBbx2TEz4sAZ2q1RAECBAiYBlCtvwN+KiYAlG7UDGj59MViT9hOwEqAhYCtAsUZvL6I6W8c2wcbd+LIWSCHSTeSAAECngN4xxIDSK9f4B9t377Wd7H5Nt7/Xz8eAgwAvesLRjYYPuUAAAAASUVORK5CYII=)](https://xscode.com/xacrimon/dashmap)
2020-08-11 14:24:01 +00:00
2020-01-14 18:34:03 +00:00
## Cargo features
2020-03-27 10:21:48 +00:00
- `no_std` - Enable no_std + alloc support.
2020-01-14 18:34:03 +00:00
- `serde` - Enables serde support.
- `raw-api` - Enables the unstable raw-shard api.
2020-08-11 14:24:01 +00:00
## Support me
2020-03-27 00:35:41 +00:00
[![Foo](https://c5.patreon.com/external/logo/become_a_patron_button@2x.png)](https://patreon.com/acrimon)
Creating and testing open-source software like DashMap takes up a large portion of my time
and comes with costs such as test hardware. Please consider supporting me and everything I make for the public
to enable me to continue doing this.
If you want to support me please head over and take a look at my [patreon](https://www.patreon.com/acrimon).
2019-12-06 15:10:52 +00:00
## Contributing
2019-12-06 15:30:34 +00:00
2019-12-06 15:10:52 +00:00
DashMap is gladly accepts contributions!
Do not hesitate to open issues or PR's.
2019-12-06 15:30:34 +00:00
2019-12-06 15:10:52 +00:00
I will take a look as soon as I have time for it.
2019-12-06 15:30:34 +00:00
2019-08-26 18:20:31 +00:00
## Performance
2020-08-12 09:38:19 +00:00
A comprehensive benchmark suite including DashMap can be found [here](https://github.com/xacrimon/conc-map-bench).
2019-08-26 18:20:31 +00:00
## Special thanks
2020-03-11 09:11:32 +00:00
- [Jon Gjengset](https://github.com/jonhoo)
2019-08-26 18:20:31 +00:00
2020-03-11 09:11:32 +00:00
- [Krishna Sannasi](https://github.com/KrishnaSannasi)
- [Karl Bergström](https://github.com/kabergstrom)
- [Dylan DPC](https://github.com/Dylan-DPC)
- [Lokathor](https://github.com/Lokathor)
- [namibj](https://github.com/namibj)
2019-08-26 18:20:31 +00:00
## License
This project is licensed under MIT.