embassy/embassy-sync
2024-07-21 15:58:23 +02:00
..
src cargo fmt 2024-07-21 15:58:23 +02:00
build_common.rs Update stable to Rust 1.79. 2024-06-13 20:40:04 +02:00
build.rs Copy build_common.rs into each crate, to make cargo publish happy 2024-05-31 08:07:51 +02:00
Cargo.toml Rename raw-mutex-traits to scoped-mutex 2024-07-20 19:02:50 +02:00
CHANGELOG.md remove duplicate entry 2024-05-29 12:38:33 +02:00
README.md fix typo 2024-03-30 22:36:30 +02:00

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.