scc
A collection of high-performance asynchronous/concurrent containers with both asynchronous and synchronous interfaces
3.8.6
82M downloads/mo
#901 most downloaded on crates.io
source
What this package is like to depend on
Last release 27 days ago
27 Jul 2026
Ships fairly regularly
a new release about every 2 weeks
Nearly every release is documented
notes for 49 of 52 stable releases
200 versions withdrawn
withdrawn after publishing
6 years old
252 releases · first in 2020
68 releases in the last 12 months
see the full history below
Release timeline
252 releases · Nov 2020 to Jul 2026
2021
2022
2023
2024
2025
2026
Releases
latest 60 of 252-
3.8.627 Jul 2026 -
3.8.514 Jul 2026 -
3.8.406 Jul 2026 -
3.8.319 Jun 2026Release notes
Open source →- Automatically route calls to
*Index::read*to*Index::peek_withif both the key and value types are primitives and scalar types.
- Automatically route calls to
-
3.8.219 Jun 2026Release notes
Open source →- Improve
hash_index::OccupiedEntry::updateperformance by more aggressively garbage collecting entries.
- Improve
-
3.8.118 Jun 2026Release notes
Open source →- Fix
Hash*::with_capacity*to take the maximum load factor into account when calculating the hash table capacity.
- Fix
-
3.8.018 Jun 2026Release notes
Open source →- Add
hash_set::OccupiedEntryandhash_set::HashSet::begin_*:PR #231byhackermondev.
- Add
-
3.7.310 Jun 2026 -
3.7.207 Jun 2026Release notes
Open source →- Reduce the lifetime of
sdd::Guardin iterator methods ofHash*containers. - Fix a potential use-after-free bug in
Hash*containers when using asynchronous methods.
- Reduce the lifetime of
-
3.7.112 May 2026 -
3.7.013 Apr 2026Release notes
Open source →- API update:
TreeIndex::{Iter, Range}no longer allow references to outlive theTreeIndex. - API update: remove
'staticlifetime bounds fromTreeIndex.
- API update:
-
3.6.1224 Mar 2026 -
3.6.1119 Mar 2026Release notes
Open source →- Doc updates.
- Minor improvement on branch prediction hints.
- Minor
TreeIndex::{drop, upsert}optimization.
-
3.6.1015 Mar 2026Release notes
Open source →- (Unstable API) Add
TreeIndex::{upsert_async, upsert_sync}. - Optimize
TreeIndexfor low-entropy data.
- (Unstable API) Add
-
3.6.905 Mar 2026Release notes
Open source →- Fix
MSRVissues: affected versions =[3.5.2, 3.6.8]. - Add branch prediction hints for more predictable
HashIndexandTreeIndexentry iteration performance.
- Fix
-
3.6.805 Mar 2026 withdrawn -
3.6.704 Mar 2026 withdrawnRelease notes
Open source →- Bump dependencies.
- Replace
sdd::AtomicSharedwithsdd::AtomicRawto minimizeRMWoperations.
-
3.6.627 Feb 2026 withdrawnRelease notes
Open source →- Minor ref-counting optimization.
TreeIndexparameter adjustment:B: 14 -> 15.
-
3.6.521 Feb 2026 withdrawnRelease notes
Open source →- Faster memory reclamation after dropping a container at the cost of slower
fn drop. - Minor branch optimization.
- Faster memory reclamation after dropping a container at the cost of slower
-
3.6.419 Feb 2026 withdrawnRelease notes
Open source →- Minor
TreeIndex::remove_range_{async, sync}optimization. - More robust
OOMhandling.
- Minor
-
3.6.316 Feb 2026 withdrawn -
3.6.215 Feb 2026 withdrawn -
3.6.113 Feb 2026 withdrawnRelease notes
Open source →- Add
{HashIndex, TreeIndex}::read_{async, sync}for shared-lock-protected access to entries.
- Add
-
3.6.013 Feb 2026 withdrawnRelease notes
Open source →- Breaking change / API update.
{HashMap, HashCache}::ConsumableEntryreturns key and value references separately to prevent accidental key field modification.{HashMap, HashCache}::iter_mut_{async, sync}methods are affected by the breaking change.- Example:
use scc::HashMap; let hashmap: HashMap<u64, u32> = HashMap::default(); assert!(hashmap.insert_sync(1, 0).is_ok()); let mut consumed = None; hashmap.iter_mut_sync(|mut e| { if *e.key() == 1 { // Previously, `e.0 == 1`. *e = 3; // Previously, `e.1 = 3`. // Previously, `e.0 = 0` was allowed: !unsafe!. consumed.replace(e.consume().1); } true }); assert_eq!(consumed, Some(3));
- Update the storage format of
Hash*containers for better memory utilization:KandVare stored separately. - Minor
TreeIndex::insert_*performance improvement.
- Breaking change / API update.
-
3.5.605 Feb 2026 withdrawnRelease notes
Open source →- Add support for
MIRIFLAGS="-Zmiri-strict-provenance". - Fine-tune the
Hash*resizing strategy. - Reduce lock contention during
TreeIndexnode split operations.
- Add support for
-
3.5.502 Feb 2026 withdrawnRelease notes
Open source →- Better
Hash*resizing strategy: minimize any effect of mutable iterators on sampling. - Reduce the number of
memcpyoperations duringTreeIndex::insert*.
- Better
-
3.5.430 Jan 2026 withdrawnRelease notes
Open source →- Optimize the
Hash*resizing strategy: reduce performance fluctuations by more accurately estimating the number of entries.
- Optimize the
-
3.5.329 Jan 2026 withdrawn -
3.5.228 Jan 2026 withdrawn -
3.5.127 Jan 2026Release notes
Open source →- Implement
TreeIndex::locateto locate the nearest key if the key is absent: #203.
- Implement
-
3.5.027 Jan 2026Release notes
Open source →- Stabilize
DoubleEndedIteratorforTreeIndex::{Iter, Range}: #217. TreeIndex::{Iter, Range}performance improvements.
- Stabilize
-
3.4.1626 Jan 2026Release notes
Open source →- Optimize linked list modification during
TreeIndex::remove_range*. - Fix data race issues in the
TreeIndexrange iterator.
- Optimize linked list modification during
-
3.4.1524 Jan 2026 withdrawn -
3.4.1422 Jan 2026 -
3.4.1319 Jan 2026 -
3.4.1218 Jan 2026 -
3.4.1116 Jan 2026 -
3.4.1009 Jan 2026 -
3.4.907 Jan 2026 -
3.4.822 Dec 2025 -
3.4.716 Dec 2025 -
3.4.609 Dec 2025 -
3.4.507 Dec 2025 -
3.4.406 Dec 2025Release notes
Open source →- Minor
Futuresize improvement. - Simplify
HashIndexentry removal policies. - Optimize
HashIndexfor!needs_drop::<(K, V)>().
- Minor
-
3.4.305 Dec 2025Release notes
Open source →- Maximum capacity limit is adjusted to
2^(usize::BITS - 2). - Minor
Futuresize improvement.
- Maximum capacity limit is adjusted to
-
3.4.214 Nov 2025 -
3.4.114 Nov 2025 -
3.4.014 Nov 2025 withdrawnNothing published for this version
-
3.3.708 Nov 2025 -
3.3.607 Nov 2025Release notes
Open source →- Simplify
Hash*capacity management. - Fix the
loomfeature to pass the proper loom option tosaa.
- Simplify
-
3.3.506 Nov 2025 -
3.3.402 Nov 2025 -
3.3.330 Oct 2025 -
3.3.216 Oct 2025 -
3.3.104 Oct 2025Release notes
Open source →- More conservative grow/shrink policies in
Hash*containers to avoid wrong load factor estimation. - Deallocate
HashIndexentries as early as possible: #198.
- More conservative grow/shrink policies in
-
3.3.002 Oct 2025 withdrawn -
3.2.001 Oct 2025Release notes
Open source →- API update:
hash_index::OccupiedEntry::updatedoes not consume itself. - API update: add
HashSet::replace_{async|sync}. - Minor memory usage optimization: #194.
- Fix a data race between
TreeIndex::clearandTreeIndex::insert*.
- API update:
-
3.1.223 Sep 2025 -
3.1.123 Sep 2025 -
3.1.022 Sep 2025