Announcing Whirlwind: ridiculously fast, async-first concurrent hashmap!

188 points majorpog

Hi all! I've been working on this for a few days and couldn't wait to share. Whirlwind is a sharded HashMap with a fully asynchronous API. Just as dashmap is a replacement for std::sync::RwLock<HashMap>, whirlwind aims to be a replacement for tokio::sync::RwLock<HashMap>. It has a similar design and performance characteristics to dashmap, but seems to perform better in read-heavy workloads with tokio's green threading.

Benchmarks are in the readme! I used an asyncified version of dashmap's benchmark suite. The project is in a pretty early stage and I'm sure there are flaws, but I'm pretty happy with the performance.

There is some unsafe involved, but we run Miri in ci to (hopefully) catch undefined behavior well before it's in an actual release.

I'd appreciate any feedback (and of course, stars)!

Thanks in advance :)