7 releases (breaking)

0.6.0 May 29, 2024
0.5.0 Dec 4, 2023
0.4.0 Oct 31, 2023
0.3.0 Sep 14, 2023
0.0.0 Sep 18, 2022

#15 in Embedded development

Download history 12690/week @ 2024-05-20 13177/week @ 2024-05-27 13602/week @ 2024-06-03 14783/week @ 2024-06-10 14122/week @ 2024-06-17 16675/week @ 2024-06-24 15605/week @ 2024-07-01 16352/week @ 2024-07-08 23042/week @ 2024-07-15 17315/week @ 2024-07-22 14723/week @ 2024-07-29 18103/week @ 2024-08-05 20293/week @ 2024-08-12 20318/week @ 2024-08-19 29947/week @ 2024-08-26 34044/week @ 2024-09-02

106,076 downloads per month
Used in 117 crates (72 directly)

MIT/Apache

190KB
4.5K SLoC

embassy-sync

An Embassy project.

Synchronization primitives and data structures with async support:

  • Channel - A Multiple Producer Multiple Consumer (MPMC) channel. Each message is only received by a single consumer.
  • PriorityChannel - A Multiple Producer Multiple Consumer (MPMC) channel. Each message is only received by a single consumer. Higher priority items are shifted to the front of the channel.
  • PubSubChannel - A broadcast channel (publish-subscribe) channel. Each message is received by all consumers.
  • Signal - Signalling latest value to a single consumer.
  • Mutex - Mutex for synchronizing state between asynchronous tasks.
  • Pipe - Byte stream implementing embedded_io traits.
  • WakerRegistration - Utility to register and wake a Waker.
  • AtomicWaker - A variant of WakerRegistration accessible using a non-mut API.
  • MultiWakerRegistration - Utility registering and waking multiple Waker's.

Interoperability

Futures from this crate can run on any executor.

Dependencies

~1–1.4MB
~28K SLoC