10 releases (5 breaking)

new 0.6.3 Mar 6, 2025
0.6.2 Mar 6, 2025
0.5.1 Mar 1, 2025
0.5.0 Feb 24, 2025
0.1.0 Dec 6, 2024

#573 in Concurrency

Download history 219/week @ 2024-12-05 153/week @ 2024-12-12 14/week @ 2024-12-19 92/week @ 2025-01-30 37/week @ 2025-02-06 2/week @ 2025-02-13

131 downloads per month

MIT license

67KB
1.5K SLoC

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/


lib.rs:

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.)

Dependencies