Skip to content
Synchronization primitives for Futures and async/await based on intrusive collections
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
benches Add crossbeam channels to benchmark Sep 10, 2019
examples Fix some typos Sep 9, 2019
src Shared types are Clone, not Copy Sep 10, 2019
tests Make the futures returned by synchronization primitives Send Sep 9, 2019
.gitignore Initial commit May 22, 2019
Cargo.toml Add crossbeam channels to benchmark Sep 10, 2019
LICENSE-APACHE Initial commit May 22, 2019
LICENSE-MIT Initial commit May 22, 2019 Fix version in readme Sep 9, 2019


This crate provides a variety of Futures-based and async/await compatible types that are based on the idea of intrusive collections:

  • Channels in a variety of flavors:
    • Oneshot
    • Multi-Producer Multi-Consumer (MPMC)
    • State Broadcast
  • Synchronization Primitives:
    • Manual Reset Event
    • Mutex
    • Semaphore
  • A timer

Please refer to the documentation for details.

In addition to the documentation the examples provide a quick overview on how the primitives can be used.


Add this to your Cargo.toml:

futures-intrusive = "0.2.0"

In order to use the crate in a no-std environment, it needs to be compiled without default features:

futures-intrusive = { version = "0.2.0", default-features = false }

The crate defines a feature std, which can be used in order to re-enable std features.

Minimum Rust version

Due to the usage of unstable features, the library depends on a nightly version of the Rust compiler. The current minimum required Rust version is 1.36 nightly 2019-05-21.


Licensed under either of

at your option.

You can’t perform that action at this time.