futures-intrusive

Synchronization primitives for Futures and async/await based on intrusive collections

Latest version: 0.5.0 registry icon
Maintenance score
18
Safety score
99
Popularity score
74
Check your open source dependency risks. Get immediate insight about security, stability and licensing risks.
Security
  Vulnerabilities
Version Suggest Low Medium High Critical
0.5.0 0 0 0 0 0
0.4.2 0 0 0 0 0
0.4.1 0 0 0 0 0
0.4.0 0 0 0 0 0
0.3.1 0 0 1 0 0
0.3.0 0 0 1 0 0
0.2.2 0 0 1 0 0
0.2.1 0 0 1 0 0
0.2.0 0 0 1 0 0
0.1.1 0 0 1 0 0
0.1.0 0 0 1 0 0

Stability
Latest release:

0.5.0 - This version may not be safe as it has not been updated for a long time. Find out if your coding project uses this component and get notified of any reported security vulnerabilities with Meterian-X Open Source Security Platform

Licensing

Maintain your licence declarations and avoid unwanted licences to protect your IP the way you intended.

Apache-2.0   -   Apache License 2.0

Not a wildcard

Not proprietary

OSI Compliant


MIT   -   MIT License

Not a wildcard

Not proprietary

OSI Compliant



futures-intrusive

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.

Usage

Add this to your Cargo.toml:

[dependencies]
futures-intrusive = "^0.5"

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

[dependencies]
futures-intrusive = { version = "^0.5", default-features = false }

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

Minimum Rust version

The minimum required Rust version is 1.36, due to reliance on stable Future, Context and Waker types.

License

Licensed under either of

at your option.