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.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.Futures from this crate can run on any executor.
Embassy is guaranteed to compile on the latest stable Rust version at the time of release. It might compile with older versions but that may change in any new patch release.
This work is licensed under either of
at your option.