// the find
crossbeam-rs/crossbeam
Tools for concurrent programming in Rust
Crossbeam is the de facto standard library for concurrent data structures and synchronization primitives in Rust. It fills gaps that std::sync leaves open — work-stealing deques, MPMC channels with select!, epoch-based GC for lock-free data structures, and cache-line-aware utilities. If you're building a task scheduler, a high-throughput message pipeline, or your own lock-free collection, you're going to end up here.
The channel implementation is genuinely excellent — it supports select! across multiple channels the way Go does, something std::sync::mpsc never got. The epoch-based garbage collector in crossbeam-epoch is well-thought-out: it gives you safe memory reclamation for lock-free structures without a full GC runtime, with Loom-tested correctness proofs. CachePadded and Backoff are small but they're the kind of thing you get wrong on your own — hiding them in a well-tested utility crate is the right call. The workspace is structured sensibly: you can depend on just crossbeam-channel without pulling in everything.
crossbeam-skiplist is still experimental and excluded from the main crate years after being started — it works, but the 'not production-ready' label has been sitting there long enough to make you wonder if it ever ships. The epoch GC API is genuinely tricky to use correctly; the docs explain what it does but not well enough to prevent you from leaking memory with subtle pin/guard misuse. With async Rust now dominant, crossbeam-channel's thread-blocking API feels like it belongs to a different era — there's no async recv, so you're wrapping it in spawn_blocking or reaching for flume/kanal instead. ShardedLock is useful but has no fairness guarantees and can starve writers under heavy read pressure, which is mentioned nowhere in the docs.