/conquer-once

Synchronization primitives for lazy and one-time initialization (no_std compatible).

Primary LanguageRustOtherNOASSERTION

conquer-once

Synchronization primitives for lazy and one-time initialization using low-level blocking mechanisms with clear distinction between blocking and non-blocking methods and additional support for #[no_std] environments when using spin-locks.

Build Status Latest version Documentation License Rust 1.36+

Usage

To use this crate, add the following to your Cargo.toml

[dependencies]
conquer-once = "0.4.0"

Minimum Supported Rust Version (MSRV)

The minimum supported Rust version for this crate is 1.49.0.

Cargo Features

By default, conquer-once enables the std feature. With this feature enabled, the crate exports the Lazy, Once and OnceCell types that use an OS and standard library reliant blocking mechanism. Without this feature, the crate is #[no_std] environment compatible, but only exports the types in the crate's spin sub-module, which use spin-locks.

The feature can be disabled by specifying the dependency as follows:

[dependencies.conquer-once]
version = "0.4.0"
use-default-features = false

License

conquer-once is distributed under the terms of both the MIT license and the Apache License (Version 2.0).

See LICENSE-APACHE and LICENSE-MIT for details.