embassy-sync
no-std, no-alloc synchronization primitives with async support
0.8.0
6.0M downloads/mo
#4152 most downloaded on crates.io
embassy-rs/embassy
What this package is like to depend on
Last release 5 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
1 release in the last 12 months
see the full history below
Release timeline
13 releases · Sep 2022 to Mar 2026
2023
2024
2025
2026
Releases
latest 13-
0.8.020 Mar 2026Release notes
Open source →- Fix wakers getting dropped by
Signal::reset - Remove
Sizedtrait bound fromMutexGuard::map - Update to
embedded-io-async0.7.0 - Fix
Pipe::try_writedocs - Implement
futures_sink::SinkforChannelandchannel::Sender
- Fix wakers getting dropped by
-
0.7.227 Aug 2025Release notes
Open source →- Add
get_muttoLazyLock - Add more
Debugimpls toembassy-sync, particularly onOnceLock
- Add
-
0.7.112 Aug 2025Nothing published for this version
-
0.7.028 May 2025Release notes
Open source →- Add
remove_iftopriority_channel::{Receiver, PriorityChannel}. - impl
Streamforchannel::{Receiver, Channel}. - Fix channels to wake senders on
clear(). ForChannel,PriorityChannel,PubSub,zerocopy_channel::Channel. - Allow
zerocopy_channel::Channelto auto-implementSync/Send. - Add
must_usetoMutexGuard. - Add a
RwLock. - Add
lock_muttoblocking_mutex::Mutex. - Don't select a critical-section implementation when
stdfeature is enabled. - Improve waker documentation.
- Improve
SignalandWatchdocumentation. - Update to defmt 1.0. This remains compatible with latest defmt 0.3.
- Add
peekmethod onchannelandpriority_channel. - Add dynamic sender and receiver that are Send + Sync for
channel.
- Add
-
0.6.216 Jan 2025 -
0.6.122 Nov 2024Release notes
Open source →- Add
LazyLocksync primitive. - Add
Watchsync primitive. - Add
clear,len,is_emptyandis_fullfunctions tozerocopy_channel. - Add
capacity,free_capacity,clear,len,is_emptyandis_fullfunctions tochannel::{Sender, Receiver}. - Add
capacity,free_capacity,clear,len,is_emptyandis_fullfunctions topriority_channel::{Sender, Receiver}. - Add
GenericAtomicWakerutility.
- Add
-
0.6.029 May 2024Release notes
Open source →- Add
capacity,free_capacity,clear,len,is_emptyandis_fullfunctions toChannel. - Add
capacity,free_capacity,clear,len,is_emptyandis_fullfunctions toPriorityChannel. - Add
capacity,free_capacity,clear,len,is_emptyandis_fullfunctions toPubSubChannel. - Made
PubSubBehaviorsealed- If you called
.publish_immediate(...)on the queue directly before, then now call.immediate_publisher().publish_immediate(...)
- If you called
- Add
OnceLocksync primitive. - Add constructor for
DynamicChannel - Add ready_to_receive functions to
ChannelandReceiver.
- Add
-
0.5.004 Dec 2023Release notes
Open source →- Add a
PriorityChannel. - Remove
nightlyandunstable-traitsfeatures in preparation for 1.75. - Upgrade
heaplessto 0.8. - Upgrade
static-cellto 2.0.
- Add a
-
0.4.031 Oct 2023 -
0.3.014 Sep 2023Release notes
Open source →- switch to
embedded-io 0.5 - add api for polling channels with context
- standardise fn names on channels
- add zero-copy channel
- switch to
-
0.2.013 Apr 2023Release notes
Open source →- pubsub: Fix messages not getting popped when the last subscriber that needed them gets dropped.
- pubsub: Move instead of clone messages when the last subscriber pops them.
- pubsub: Pop messages which count is 0 after unsubscribe.
- Update
embedded-iofrom0.3to0.4(usesasync fnin traits). - impl
DefaultforWakerRegistration - impl
DefaultforSignal - Remove unnecessary uses of
atomic-polyfill - Add
#[must_use]to all futures.
-
0.1.026 Oct 2022 -
0.0.018 Sep 2022Nothing published for this version