PackageTrack
Sign in Get early access

sharded-slab

A lock-free concurrent slab.

0.1.7 504M downloads/mo #217 most downloaded on crates.io hawkw/sharded-slab

What this package is like to depend on

Last release 3 years ago

no release in 18 months

Ships unpredictably

gaps range from 8 days to 1.9 years

Most releases are documented

notes for 13 of 15 stable releases

2 versions withdrawn

withdrawn after publishing

7 years old

17 releases · first in 2019

0 releases in the last 12 months

see the full history below

Release timeline

17 releases · Oct 2019 to Oct 2023
2020 2021 2022 2023 2024 2025 2026
Release Pre-release Withdrawn

Releases

latest 17
  1. 0.1.7 04 Oct 2023
    Release notes

    Bug Fixes

    • index out of bounds in get() and get_owned() (#88) (fdbc930f)
    • unique_iter: prevent panics if a slab is empty (#88) (bd599e0b, closes #73)

    Open source →
  2. 0.1.6 27 Sep 2023
    Release notes

    Features

    Bug Fixes

    • use a smaller CustomConfig for 32-bit tests (#84) (828ffff9, closes #82)

    Open source →
    Release notes

    Features

    • publicly export UniqueIter (#87) (e4d6482d, closes #77)

    Bug Fixes

    • use a smaller CustomConfig for 32-bit tests (#84) (828ffff9, closes #82)

    <a name="0.1.5"></a>

    Open source →
  3. 0.1.5 28 Aug 2023 withdrawn
    Release notes

    Bug Fixes

    • Slab: invalid generation in case of custom config (#80) (ca090279)

    0.1.4 (2021-10-12)

    Features

    • emit a nicer panic when thread count overflows MAX_SHARDS (#64) (f1ed058a)

    0.1.3 (2021-08-02)

    Bug Fixes

    0.1.2 (2021-08-01)

    Bug Fixes

    • make debug assertions drop safe (26d35a69)

    Features

    • improve panics on thread ID bit exhaustion (9ecb8e61)

    Open source →
    Release notes

    Bug Fixes

    • Slab: invalid generation in case of custom config (#80) (ca090279)

    <a name="0.1.4"></a>

    0.1.4 (2021-10-12)

    Features

    • emit a nicer panic when thread count overflows MAX_SHARDS (#64) (f1ed058a)

    <a name="0.1.3"></a>

    0.1.3 (2021-08-02)

    Bug Fixes

    • set up MSRV in CI (#61) (dfcc9080, closes #60)
    • tests: duplicate hint mod defs with loom (0ce3fd91)

    <a name="0.1.2"></a>

    0.1.2 (2021-08-01)

    Bug Fixes

    • make debug assertions drop safe (26d35a69)

    Features

    • improve panics on thread ID bit exhaustion (9ecb8e61)

    <a name="0.1.1"></a>

    Open source →
  4. 0.1.4 12 Oct 2021
    Release notes

    Features

    • emit a nicer panic when thread count overflows MAX_SHARDS (#64) (f1ed058a)

    Open source →
  5. 0.1.3 02 Aug 2021
    Release notes

    Bug Fixes

    Open source →
  6. 0.1.2 01 Aug 2021 withdrawn

    Nothing published for this version

  7. 0.1.1 04 Jan 2021
    Release notes

    0.1.1 (2021-1-4)

    Bug Fixes

    • change loom to an optional dependency (9bd442b5)
    Open source →
    Release notes

    Bug Fixes

    • change loom to an optional dependency (9bd442b5)

    <a name="0.1.0"></a>

    Open source →
  8. 0.1.0 20 Oct 2020
    Release notes

    0.1.0 (2020-10-20)

    Bug Fixes

    • fix remove and clear returning true when the key is stale (b52d38b2)

    Breaking Changes

    • Pool: change Pool::create to return a mutable guard (#48) (778065ea, closes #41, #16)
    • Slab: rename Guard to Entry for consistency (425ad398)

    Features

    • add missing Debug impls (71a8883f)
    • Pool:
      • add Pool::create_owned and OwnedRefMut (f7774ae0)
      • add Arc<Pool>::get_owned and OwnedRef (3e566d91, closes #29)
      • change Pool::create to return a mutable guard (#48) (778065ea, closes #41, #16)
    • Slab:
      • add Arc<Slab>::get_owned and OwnedEntry (53a970a2, closes #29)
      • rename Guard to Entry for consistency (425ad398)
      • add slab-style VacantEntry API (6776590a, closes #16)

    Performance

    Open source →
    Release notes

    Bug Fixes

    • fix remove and clear returning true when the key is stale (b52d38b2)

    Breaking Changes

    • Pool: change Pool::create to return a mutable guard (#48) (778065ea, closes #41, #16)
    • Slab: rename Guard to Entry for consistency (425ad398)

    Features

    • add missing Debug impls (71a8883f)
    • Pool:
      • add Pool::create_owned and OwnedRefMut (f7774ae0)
      • add Arc<Pool>::get_owned and OwnedRef (3e566d91, closes #29)
      • change Pool::create to return a mutable guard (#48) (778065ea, closes #41, #16)
    • Slab:
      • add Arc<Slab>::get_owned and OwnedEntry (53a970a2, closes #29)
      • rename Guard to Entry for consistency (425ad398)
      • add slab-style VacantEntry API (6776590a, closes #16)

    Performance

    • allocate shard metadata lazily (#45) (e543a06d)

    <a name="0.0.9"></a>

    0.0.9 (2020-04-03)

    Features

    • Config: validate concurrent refs (9b32af58, closes #21)
    • Pool:
      • add fmt::Debug impl for Pool (ffa5c7a0)
      • add Default impl for Pool (d2399365)
      • add a sharded object pool for reusing heap allocations (#19) (89734508, closes #2, #15)
    • Slab::take: add exponential backoff when spinning (6b743a27)

    Bug Fixes

    • incorrect wrapping when overflowing maximum ref count (aea693f3, closes #22)

    <a name="0.0.8"></a>

    0.0.8 (2020-01-31)

    Bug Fixes

    • remove not adding slots to free lists (dfdd7aee)

    <a name="0.0.7"></a>

    0.0.7 (2019-12-06)

    Bug Fixes

    • Config: compensate for 0 being a valid TID (b601f5d9)
    • DefaultConfig:

    <a name="0.0.6"></a>

    Open source →
  9. 0.0.9 03 Apr 2020

    Nothing published for this version

  10. 0.0.8 31 Jan 2020
    Release notes

    Bug Fixes:

    • remove not adding slots to free lists (dfdd7ae)
    Open source →
  11. 0.0.7 06 Dec 2019

    Nothing published for this version

  12. 0.0.6 08 Nov 2019
    Release notes

    Features

    • Guard: expose key method #8 (748bf39b)

    <a name="0.0.5"></a>

    Open source →
  13. 0.0.5 31 Oct 2019
    Release notes

    Performance

    • consolidate per-slot state into one AtomicUsize (#6) (f1146d33)

    Features

    <a name="0.0.4"></a>

    Open source →
  14. 0.0.4 21 Oct 2019
    Release notes

    Features

    • prevent items from being removed while concurrently accessed (872c81d1)
    • added Slab::remove method that marks an item to be removed when the last thread accessing it finishes (872c81d1)

    Bug Fixes

    • nicer handling of races in remove (475d9a06)

    Breaking Changes

    • renamed Slab::remove to Slab::take (872c81d1)
    • Slab::get now returns a Guard type (872c81d1)

    <a name="0.0.3"></a>

    Open source →
  15. 0.0.3 07 Oct 2019
    Release notes

    Bug Fixes

    • split local/remote to fix false sharing & potential races (69f95fb0)
    • set next pointer before head (cc7a0bf1)

    Breaking Changes

    • removed potentially racy Slab::len and Slab::capacity methods (27af7d6c)

    <a name="0.0.2"></a>

    Open source →
  16. 0.0.2 03 Oct 2019
    Release notes

    Bug Fixes

    • fix compilation failure in release mode (617031da)

    <a name="0.0.1"></a>

    Open source →
  17. 0.0.1 02 Oct 2019
    Release notes
    • Initial release
    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