NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #4148 most downloaded on crates.io
no-std, no-alloc synchronization primitives with async support
Last release 6 months ago
20 Mar 2026
Ships fairly regularly
a new release about every 4 months
Most releases are documented
notes for 11 of 13 stable releases
Nothing withdrawn
no release was ever pulled
4 years old
13 releases · first in 2022
One column per quarter.
Fix wakers getting dropped by Signal::reset
Signal::resetSized trait bound from MutexGuard::mapembedded-io-async 0.7.0Pipe::try_write docsfutures_sink::Sink for Channel and channel::SenderAdd more Debug impls to embassy-sync, particularly on OnceLock
get_mut to LazyLockDebug impls to embassy-sync, particularly on OnceLockNothing published for this version
Add remove_if to priority_channel::{Receiver, PriorityChannel}.
remove_if to priority_channel::{Receiver, PriorityChannel}.Stream for channel::{Receiver, Channel}.clear().
For Channel, PriorityChannel, PubSub, zerocopy_channel::Channel.zerocopy_channel::Channel to auto-implement Sync/Send.must_use to MutexGuard.RwLock.lock_mut to blocking_mutex::Mutex.std feature is enabled.Signal and Watch documentation.peek method on channel and priority_channel.channel.Add dynamic dispatch variant of Pipe.
Pipe.Add clear, len, is_empty and is_full functions to zerocopy_channel.
LazyLock sync primitive.Watch sync primitive.clear, len, is_empty and is_full functions to zerocopy_channel.capacity, free_capacity, clear, len, is_empty and is_full functions to channel::{Sender, Receiver}.capacity, free_capacity, clear, len, is_empty and is_full functions to priority_channel::{Sender, Receiver}.GenericAtomicWaker utility.Add capacity, free_capacity, clear, len, is_empty and is_full functions to Channel.
capacity, free_capacity, clear, len, is_empty and is_full functions to Channel.capacity, free_capacity, clear, len, is_empty and is_full functions to PriorityChannel.capacity, free_capacity, clear, len, is_empty and is_full functions to PubSubChannel.PubSubBehavior sealed
.publish_immediate(...) on the queue directly before, then now call .immediate_publisher().publish_immediate(...)OnceLock sync primitive.DynamicChannelChannel and Receiver.Remove nightly and unstable-traits features in preparation for 1.75.
PriorityChannel.nightly and unstable-traits features in preparation for 1.75.heapless to 0.8.static-cell to 2.0.- Re-add impl_trait_projections - switch to embedded-io 0.6
impl_trait_projectionsembedded-io 0.6add api for polling channels with context
embedded-io 0.5pubsub: Fix messages not getting popped when the last subscriber that needed them gets dropped.
embedded-io from 0.3 to 0.4 (uses async fn in traits).Default for WakerRegistrationDefault for Signalatomic-polyfill#[must_use] to all futures.- First release
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →