NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #671 most downloaded on crates.io
Provides wrapper types for sending non-send values to other threads.
Last release 1 months ago
04 Sep 2026
Release timing varies
gaps range from 2 months to 2.4 years
Most releases are documented
notes for 4 of 5 stable releases
8 versions withdrawn
withdrawn after publishing
8 years old
13 releases · first in 2018
chore(release): prepare 3.0.0
chore(release): prepare 3.0.0
StackToken and stack_token!, and replaced Sticky and
SemiSticky's get, get_mut, try_get, and try_get_mut methods with
scoped with, with_mut, try_with, and try_with_mut callbacks. This
breaking change prevents thread-local references from escaping and removes
the need to permanently leak registry values.Future and Stream implementations that could
move !Unpin values after pinning or free pinned storage on the wrong thread.
As a result, Sticky<T> and SemiSticky<T> now implement Unpin only when
T: Unpin.Sticky values and
reentrant destructors.Sticky wrapping a type without drop glue never
released its allocation when dropped on the originating thread.Sticky and SemiSticky's is_valid, try_with, try_with_mut,
try_into_inner and Debug now report an invalid access instead of
panicking when used on the originating thread while its thread-local storage
is being destroyed. Previously this panicked inside a TLS destructor, which
aborts the process.std::thread::current(), which panics
during thread-local storage teardown on Rust versions before 1.84. Dropping a
Fragile or Sticky from a thread-local destructor on those versions no
longer aborts the process.One column per quarter.
Implement Future and Stream for Fragile, Sticky and SemiSticky. #38, #40
Fixed a soundness issue with Sticky if the slab variant was enabled. This caused a use after free if the type was freed in the wrong thread. #37
Sticky if the slab variant was enabled.
This caused a use after free if the type was freed in the wrong thread.
#37Fragile no longer boxes internally.
Fragile no longer boxes internally.Sticky and SemiSticky now require the use of stack tokens.
For more information see #26Sticky now tries to drop entries from the thread local registry eagerly
if it's dropped on the right thread.Nothing published for this version
Fixed non slab versions only allowing a single sticky.
Note on safety: the Sticky and SemiSticky types allow data to live longer than the wrapper type which is why they are now requiring a 'static bound. P
Note on safety: the Sticky and SemiSticky types allow data to live
longer than the wrapper type which is why they are now requiring a 'static
bound. Previously it was possible to create a sticky containing a bare
reference which permitted unsafe access.
Sticky now requires 'static.slab feature for an internal optimization for Sticky to use
a slab instead of a HashMap.Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →