#oneshot-channel #mpmc #future #no-std #channel

no-std async-fifo

MPMC & oneshot channels with (a)sync API

12 releases (5 breaking)

new 0.6.5 Apr 21, 2025
0.6.3 Mar 6, 2025
0.3.0 Dec 15, 2024

#962 in Concurrency

Download history 126/week @ 2025-02-03 9/week @ 2025-02-10 3/week @ 2025-02-17 232/week @ 2025-02-24 593/week @ 2025-03-03 43/week @ 2025-03-10 2/week @ 2025-03-17 93/week @ 2025-04-14

97 downloads per month
Used in 2 crates

MIT license

67KB
1.5K SLoC

This crate implements multiple lock-free structures for object transfers:

  • fully-featured MPMC channels (see [channel::new()])
  • small one-shot SPSC channels (see [channel::oneshot()])
  • an atomic equivalent to Box<T> (see slot::Slot)

All of these structures are synchronized without any locks and without spinning/yielding. This crate is compatible with no_std targets, except for the *_blocking methods.

(All items of the channel module are re-exported here at the root.)


This crate implements three lock-free structures for object transfers:

  • fully-featured MPMC channels
  • small one-shot SPSC channels
  • an AtomicSlot<T> type

All of these structures are synchronized without any locks and without spinning/yielding. This crate is compatible with no_std targets, except for the _blocking methods.

See the complete documentation: https://docs.rs/async-fifo/

Dependencies