finds.dev← search

// the find

jonhoo/evmap

★ 573 · Rust · Apache-2.0 · updated Jun 2026

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.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →