dashmap
megahash
dashmap | megahash | |
---|---|---|
12 | 1 | |
2,726 | 401 | |
- | - | |
5.5 | 2.4 | |
11 days ago | 3 months ago | |
Rust | JavaScript | |
MIT License | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
dashmap
- StupidAlloc: what if memory allocation was bad actually
-
dashmap VS scalable-concurrent-containers - a user suggested alternative
2 projects | 13 Apr 2023
-
Samsara, a safe Rust concurrent cycle collector
The problem is, every single one of these half-dozen crates has at least one known major issue (including UAF), exactly like C++ implementations (which isn't surprising since it's the kind of things where the ownership isn't clear and then the borrow checker can't help us).
-
Rust vs Go
Deadlocks and leaks are easy as other languages.
-
Shared mutable state is bad... so how do I create a global cache in a multi-threaded app?
Have you considered https://github.com/xacrimon/dashmap ?
-
Announcing Leapfrog, a faster concurrent HashMap
Dashmap made some api changes compared to the stdlibs hashmap, which leads to some oddities, as highlighted here: https://github.com/xacrimon/dashmap/issues/175
-
Writing a concurrent LRU cache
Some additional notes are in this slide deck and the implementation javadoc. You'd probably want to use something like DashMap for the hash table.
-
HashMap-based cache for async programs
You can look at existing concurrent maps like Dashmap https://github.com/xacrimon/dashmap or Cashmap https://gitlab.redox-os.org/redox-os/chashmap
-
How does one avoid lock of locks? or use the technique of latch crabbing of databases
Also dashmap
-
Noteworthy concurrent data structures?
The only one I've used is Dashmap, it's a concurrent interior-mutability hashmap. Very convenient crate in the case you need that.
megahash
-
An amazing error message if you put more than 2^24-1 items in a JS Map object
I wrote my MegaHash library to handle this very use case. It has been tested up to 1 billion hash map keys with very little slowdown.
What are some alternatives?
hashbrown - Rust port of Google's SwissTable hash map
CaptfEncoder - Captfencoder is opensource a rapid cross platform network security tool suite, providing network security related code conversion, classical cryptography, cryptography, asymmetric encryption, miscellaneous tools, and aggregating all kinds of online tools.
moka - A high performance concurrent caching library for Rust
Klib - A standalone and lightweight C library
HashMap - An open addressing linear probing hash table, tuned for delete heavy workloads
save-hash - Browser extension that saves anchor links' hash in local storage for easy access in the future.
crossbeam - Tools for concurrent programming in Rust
specs - Content-addressed, authenticated, immutable data structures
leapfrog - Lock-free concurrent and single-threaded hash map implementations using Leapfrog probing. Currently the highest performance concurrent HashMap in Rust for certain use cases.
stretto - Stretto is a Rust implementation for Dgraph's ristretto (https://github.com/dgraph-io/ristretto). A high performance memory-bound Rust cache.
sharded - Safe, fast, and obvious concurrent collections in Rust.
im-rs - Assorted immutable collection datatypes for Rust