9 releases (breaking)

new 0.6.2 Jan 16, 2025
0.6.1 Nov 22, 2024
0.6.0 May 29, 2024
0.5.0 Dec 4, 2023
0.1.0 Oct 26, 2022

#15 in Embedded development

Download history 15614/week @ 2024-09-27 17759/week @ 2024-10-04 18223/week @ 2024-10-11 21294/week @ 2024-10-18 19770/week @ 2024-10-25 23104/week @ 2024-11-01 21059/week @ 2024-11-08 21367/week @ 2024-11-15 25479/week @ 2024-11-22 19882/week @ 2024-11-29 19438/week @ 2024-12-06 23124/week @ 2024-12-13 18290/week @ 2024-12-20 15059/week @ 2024-12-27 26259/week @ 2025-01-03 24643/week @ 2025-01-10

88,600 downloads per month
Used in 162 crates (90 directly)

MIT/Apache

250KB
5.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.
  • Watch - Signalling latest value to multiple consumers.
  • 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.
  • LazyLock - A value which is initialized on the first access

Interoperability

Futures from this crate can run on any executor.

Dependencies

~1–1.5MB
~28K SLoC