PackageTrack
Sign in Get early access

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
Release Pre-release Withdrawn

Releases

latest 60 of 252
  1. 3.8.6 27 Jul 2026
    Release notes
    • Improve hash_index::OccupiedEntry::update scalability: #236.
    Open source →
  2. 3.8.5 14 Jul 2026
    Release notes
    Open source →
  3. 3.8.4 06 Jul 2026
    Release notes
    Open source →
  4. 3.8.3 19 Jun 2026
    Release notes
    • Automatically route calls to *Index::read* to *Index::peek_with if both the key and value types are primitives and scalar types.
    Open source →
  5. 3.8.2 19 Jun 2026
    Release notes
    • Improve hash_index::OccupiedEntry::update performance by more aggressively garbage collecting entries.
    Open source →
  6. 3.8.1 18 Jun 2026
    Release notes
    • Fix Hash*::with_capacity* to take the maximum load factor into account when calculating the hash table capacity.
    Open source →
  7. 3.8.0 18 Jun 2026
    Release notes
    Open source →
  8. 3.7.3 10 Jun 2026
    Release notes
    • Implement special code to make memory reclamation transparent to loom.
    Open source →
  9. 3.7.2 07 Jun 2026
    Release notes
    • Reduce the lifetime of sdd::Guard in iterator methods of Hash* containers.
    • Fix a potential use-after-free bug in Hash* containers when using asynchronous methods.
    Open source →
  10. 3.7.1 12 May 2026
    Release notes
    • Update the SAA dependency.
    Open source →
  11. 3.7.0 13 Apr 2026
    Release notes
    • API update: TreeIndex::{Iter, Range} no longer allow references to outlive the TreeIndex.
    • API update: remove 'static lifetime bounds from TreeIndex.
    Open source →
  12. 3.6.12 24 Mar 2026
    Release notes
    • Fix TreeIndex split boundary calculation.
    • Stabilize TreeIndex::upsert.
    Open source →
  13. 3.6.11 19 Mar 2026
    Release notes
    • Doc updates.
    • Minor improvement on branch prediction hints.
    • Minor TreeIndex::{drop, upsert} optimization.
    Open source →
  14. 3.6.10 15 Mar 2026
    Release notes
    • (Unstable API) Add TreeIndex::{upsert_async, upsert_sync}.
    • Optimize TreeIndex for low-entropy data.
    Open source →
  15. 3.6.9 05 Mar 2026
    Release notes
    • Fix MSRV issues: affected versions = [3.5.2, 3.6.8].
    • Add branch prediction hints for more predictable HashIndex and TreeIndex entry iteration performance.
    Open source →
  16. 3.6.8 05 Mar 2026 withdrawn
    Release notes
    • Minor TreeIndex::drop optimization.
    Open source →
  17. 3.6.7 04 Mar 2026 withdrawn
    Release notes
    • Bump dependencies.
    • Replace sdd::AtomicShared with sdd::AtomicRaw to minimize RMW operations.
    Open source →
  18. 3.6.6 27 Feb 2026 withdrawn
    Release notes
    • Minor ref-counting optimization.
    • TreeIndex parameter adjustment: B: 14 -> 15.
    Open source →
  19. 3.6.5 21 Feb 2026 withdrawn
    Release notes
    • Faster memory reclamation after dropping a container at the cost of slower fn drop.
    • Minor branch optimization.
    Open source →
  20. 3.6.4 19 Feb 2026 withdrawn
    Release notes
    • Minor TreeIndex::remove_range_{async, sync} optimization.
    • More robust OOM handling.
    Open source →
  21. 3.6.3 16 Feb 2026 withdrawn
    Release notes
    • Update dependencies.
    Open source →
  22. 3.6.2 15 Feb 2026 withdrawn
    Release notes
    • Stabilize {HashIndex, TreeIndex}::read_{async, sync}.
    Open source →
  23. 3.6.1 13 Feb 2026 withdrawn
    Release notes
    • Add {HashIndex, TreeIndex}::read_{async, sync} for shared-lock-protected access to entries.
    Open source →
  24. 3.6.0 13 Feb 2026 withdrawn
    Release notes
    • Breaking change / API update.
      • {HashMap, HashCache}::ConsumableEntry returns 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: K and V are stored separately.
    • Minor TreeIndex::insert_* performance improvement.
    Open source →
  25. 3.5.6 05 Feb 2026 withdrawn
    Release notes
    • Add support for MIRIFLAGS="-Zmiri-strict-provenance".
    • Fine-tune the Hash* resizing strategy.
    • Reduce lock contention during TreeIndex node split operations.
    Open source →
  26. 3.5.5 02 Feb 2026 withdrawn
    Release notes
    • Better Hash* resizing strategy: minimize any effect of mutable iterators on sampling.
    • Reduce the number of memcpy operations during TreeIndex::insert*.
    Open source →
  27. 3.5.4 30 Jan 2026 withdrawn
    Release notes
    • Optimize the Hash* resizing strategy: reduce performance fluctuations by more accurately estimating the number of entries.
    Open source →
  28. 3.5.3 29 Jan 2026 withdrawn
    Release notes
    • Implement Clone for HashIndex::Iter and TreeIndex::{Iter, Range}.
    Open source →
  29. 3.5.2 28 Jan 2026 withdrawn
    Release notes
    • Add TreeIndex::{Iter, Range}::{get, get_back, flip}.
    Open source →
  30. 3.5.1 27 Jan 2026
    Release notes
    • Implement TreeIndex::locate to locate the nearest key if the key is absent: #203.
    Open source →
  31. 3.5.0 27 Jan 2026
    Release notes
    • Stabilize DoubleEndedIterator for TreeIndex::{Iter, Range}: #217.
    • TreeIndex::{Iter, Range} performance improvements.
    Open source →
  32. 3.4.16 26 Jan 2026
    Release notes
    • Optimize linked list modification during TreeIndex::remove_range*.
    • Fix data race issues in the TreeIndex range iterator.
    Open source →
  33. 3.4.15 24 Jan 2026 withdrawn
    Release notes
    • Implement DoubleEndedIterator for tree_index::Range: #217.
    Open source →
  34. 3.4.14 22 Jan 2026
    Release notes
    • Implement DoubleEndedIterator for tree_index::Iter: #217.
    Open source →
  35. 3.4.13 19 Jan 2026
    Release notes
    • Remove the V: Clone bound from TreeIndex.
    Open source →
  36. 3.4.12 18 Jan 2026
    Release notes
    • Optimize TreeIndex entry iteration.
    Open source →
  37. 3.4.11 16 Jan 2026
    Release notes
    • Code cleanup.
    Open source →
  38. 3.4.10 09 Jan 2026
    Release notes
    • Minor Hash* performance improvements.
    Open source →
  39. 3.4.9 07 Jan 2026
    Release notes
    • Migrate to codeberg.
    • Better Hash* OOM handling.
    Open source →
  40. 3.4.8 22 Dec 2025
    Release notes
    • Minor updates for codeberg migration.
    Open source →
  41. 3.4.7 16 Dec 2025
    Release notes
    • Minor Future size improvement for Hash* containers.
    Open source →
  42. 3.4.6 09 Dec 2025
    Release notes
    • Improve HashIndex entry slot recycling strategies.
    Open source →
  43. 3.4.5 07 Dec 2025
    Release notes
    • Minor Hash* performance improvements.
    Open source →
  44. 3.4.4 06 Dec 2025
    Release notes
    • Minor Future size improvement.
    • Simplify HashIndex entry removal policies.
    • Optimize HashIndex for !needs_drop::<(K, V)>().
    Open source →
  45. 3.4.3 05 Dec 2025
    Release notes
    • Maximum capacity limit is adjusted to 2^(usize::BITS - 2).
    • Minor Future size improvement.
    Open source →
  46. 3.4.2 14 Nov 2025
    Release notes
    • Minor optimization.
    Open source →
  47. 3.4.1 14 Nov 2025
    Release notes
    • Migrate Bag, LinkedList, Queue, and Stack to sdd.
    Open source →
  48. 3.4.0 14 Nov 2025 withdrawn

    Nothing published for this version

  49. 3.3.7 08 Nov 2025
    Release notes
    • Improve sampling accuracy in Hash* containers.
    Open source →
  50. 3.3.6 07 Nov 2025
    Release notes
    • Simplify Hash* capacity management.
    • Fix the loom feature to pass the proper loom option to saa.
    Open source →
  51. 3.3.5 06 Nov 2025
    Release notes
    • Enhance Hash* capacity management.
    Open source →
  52. 3.3.4 02 Nov 2025
    Release notes
    • Minor asynchronous code optimization.
    Open source →
  53. 3.3.3 30 Oct 2025
    Release notes
    • API update: add {HashMap, HashCache}::{replace_async, replace_sync}.
    Open source →
  54. 3.3.2 16 Oct 2025
    Release notes
    • Remove the 'static bound from HashIndex: #200.
    • Ensure that HashIndex entries are deallocated when the HashIndex is dropped: #198.
    Open source →
  55. 3.3.1 04 Oct 2025
    Release notes
    • More conservative grow/shrink policies in Hash* containers to avoid wrong load factor estimation.
    • Deallocate HashIndex entries as early as possible: #198.
    Open source →
  56. 3.3.0 02 Oct 2025 withdrawn
    Release notes
    • API update: HashIndex::{peek, iter} no longer allow entry references to outlive the HashIndex: #198.
    • More memory usage optimization: #194.
    Open source →
  57. 3.2.0 01 Oct 2025
    Release notes
    • API update: hash_index::OccupiedEntry::update does not consume itself.
    • API update: add HashSet::replace_{async|sync}.
    • Minor memory usage optimization: #194.
    • Fix a data race between TreeIndex::clear and TreeIndex::insert*.
    Open source →
  58. 3.1.2 23 Sep 2025
    Release notes
    • Minor memory usage optimization.
    Open source →
  59. 3.1.1 23 Sep 2025
    Release notes
    • Remove the 128B alignment requirement for Hash* asynchronous methods.
    Open source →
  60. 3.1.0 22 Sep 2025
    Release notes
    • Optimize stack memory usage of asynchronous Hash* methods: #194.
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive