NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #916 most downloaded on crates.io
A collection of high-performance asynchronous/concurrent containers with both asynchronous and synchronous interfaces
Last release 1 months ago
01 Sep 2026
Ships fairly regularly
a new release about every 2 weeks
Nearly every release is documented
notes for 51 of 54 stable releases
200 versions withdrawn
withdrawn after publishing
6 years old
254 releases · first in 2020
One column per quarter.
Remove the 128B alignment requirement for Hash* asynchronous methods.
Hash* asynchronous methods.Optimize stack memory usage of asynchronous Hash* methods: #194.
Hash* methods: #194.Fix a rare data race in Hash* iterator methods.
Hash* iterator methods.Nothing published for this version
Fix a potential duplicate key issue with Hash* containers if HashMap::insert_* fails to allocate memory.
Hash* containers if HashMap::insert_* fails to allocate memory.Nothing published for this version
Fix potential data races in asynchronous operations of Hash* containers.
Hash* containers.Nothing published for this version
Dependencies updated to the latest versions.
* New API. ### API update * See `#186`. ## Version 2
* Add Hash*::try_entry.
Hash*::try_entry.Limit the maximum initial capacity of serialized containers to 1 << 24.
1 << 24.Minor performance optimization for HashIndex.
HashIndex.Nothing published for this version
Yanked `[2.0.0, 2.3.0]` due to a use-after-free problem: [#176](https://github.com/wvwwvwwv/scalable-concurrent-containers/issues/176).
Fix incorrect Sync trait bounds of Bag and Hash*.
Bag and Hash*.* Fix linting errors.
Hash*::with_hasher is now a const function: by Daniel-Aaron-Bloom.
Hash*::with_hasher is now a const function: by Daniel-Aaron-Bloom.HashMap::upsert document: by dfaust.Minor Hash* performance optimization.
Hash* performance optimization.Minor Hash* memory optimization.
Hash* memory optimization.Fix a data race between TreeIndex::clear and TreeIndex::insert.
TreeIndex::clear and TreeIndex::insert.Fix a minor Miri specific assertion failure.
Add Comparable and Equivalent traits: #162 by qthree.
Add TreeIndex::peek_entry: #157 by qthree.
Optimize TreeIndex::{clear, drop}: #156.
TreeIndex::{clear, drop}: #156.Fix potential data races in HashMap and TreeIndex.
HashMap and TreeIndex.* Add upsert to HashMap.
upsert to HashMap.Fix theoretical data race issues in TreeIndex: replace dependent loads with load-acquires.
TreeIndex: replace dependent loads with load-acquires.Fix a data race in TreeIndex::insert*.
TreeIndex::insert*.Update doc to clearly state that Hash*::get* owns the entry for modification, and recommend Hash*::read* for read-only access.
SDD to 3.0.Hash*::get* owns the entry for modification, and recommend Hash*::read* for read-only access.* Activate Miri tests: #88.
Fix data races in TreeIndex: #153.
loom support.TreeIndex: #153.Fix a correctness issue with Stack, Queue, and Bag::pop: #153.
Stack, Queue, and Bag::pop: #153.Fix a correctness issue with TreeIndex::remove_range: #153.
Fix a correctness issue with HashMap on a 32-bit CPU: #153.
HashMap on a 32-bit CPU: #153.Minor optimization: bump SDD to 2.1.0.
SDD to 2.1.0.Optimize LinkedList deleted node reclamation.
LinkedList deleted node reclamation.Bag by not allowing pushed instances to be dropped without being used.Implement more aggressive entry removal in HashIndex (#150).
HashIndex (#150).* Update `sdd`.
sdd.Implement any_entry and any_entry_async to HashMap and HashIndex (#148).
any_entry and any_entry_async to HashMap and HashIndex (#148).Implement Deref and DerefMut for OccupiedEntry: #140 by gituser-rs
Deref and DerefMut for OccupiedEntry: #140 by gituser-rsUse `sdd` as the memory reclaimer.
sdd as the memory reclaimer.Relax trait bounds of TreeIndex.
TreeIndex.Remove unnecessary trait bounds from type definitions of HashCache, HashIndex, HashMap, and HashSet.
HashCache, HashIndex, HashMap, and HashSet.API update: add Entry::take_inner.
Entry::take_inner.Queue and Stack entry garbage collection.Faster Queue and Stack entry garbage collection.
Queue and Stack entry garbage collection.Fix an issue with HashCache where an evicted entry is dropped without notifying it when HashCache shrinks.
HashCache where an evicted entry is dropped without notifying it when HashCache shrinks.* Fix #122.
More aggressive TreeIndex root node cleanup.
TreeIndex root node cleanup.Add len to Bag, Queue, and Stack.
iter to Queue and Stack.len to Bag, Queue, and Stack.Fix an issue with tree_index::Range where it intermittently fails to find the minimum key in a TreeIndex if the TreeIndex is being updated by other th
tree_index::Range where it intermittently fails to find the minimum key in a TreeIndex if the TreeIndex is being updated by other threads.Nothing published for this version
* Fix #121.
Add TreeIndex::contains and TreeIndex::remove_range; TreeIndex::remove_range is experimental and will be stabilized later (#120).
TreeIndex::contains and TreeIndex::remove_range; TreeIndex::remove_range is experimental and will be stabilized later (#120).Add support for old Rust versions >= 1.65.0.
Add bucket_index to HashIndex, HashMap, and HashSet.
bucket_index to HashIndex, HashMap, and HashSet.* Fix #118.
Add support for 32-bit binaries.
* Fix #115.
* Add IntoIter to Bag.
IntoIter to Bag.Your coding agent can read these notes before it upgrades. Set up the MCP server →