10 releases (5 breaking)

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

#594 in Concurrency

Download history 219/week @ 2024-12-05 153/week @ 2024-12-12 14/week @ 2024-12-19 92/week @ 2025-01-30 38/week @ 2025-02-06 8/week @ 2025-02-13 92/week @ 2025-02-20 392/week @ 2025-02-27 381/week @ 2025-03-06 5/week @ 2025-03-13

870 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