embassy-sync

Crates.ioembassy-sync
lib.rsembassy-sync
version0.6.0
sourcesrc
created_at2022-09-18 16:41:06.641958
updated_at2024-05-29 10:45:22.578989
descriptionno-std, no-alloc synchronization primitives with async support
homepage
repositoryhttps://github.com/embassy-rs/embassy
max_upload_size
id668702
size189,895
crates.io (github:embassy-rs:crates-io)

documentation

https://docs.embassy.dev/embassy-sync

README

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.

Commit count: 8184

cargo fmt