// the find
jonhoo/evmap
A lock-free, eventually consistent, concurrent multi-value map.
A lock-free concurrent map where reads and writes run in parallel by maintaining two copies of the map — one for readers, one for writers — and swapping them on flush. Built on top of the `left-right` primitive by the same author. Aimed at read-heavy workloads where occasional staleness is acceptable.
The core design is sound: readers never take locks and see a consistent snapshot, which is genuinely hard to get right in Rust without unsafe. Backed by `left-right`, which has its own test and audit surface separate from this crate. The multi-value-per-key design is a deliberate choice that lets the operational log stay append-only — you can't emulate this on a single-value map, and the README explains why. CI includes a scheduled safety check, which suggests the author actually cares about soundness over time.
Benchmarks are self-admittedly outdated and run on a 40-core server — numbers won't translate to typical workloads, and there's no indication when they'll be updated. The multi-value-per-key constraint is baked in; you can't use this as a drop-in for a regular HashMap without building a wrapper that forces single-element Vecs everywhere. Low fork count (17) for a 573-star project suggests it's used as a dependency but rarely extended, which means you're mostly on your own when you hit an edge case. Abandoned in practical terms — jonhoo's time is spread across many concurrency crates and the last meaningful feature work predates the benchmarks.