Cargo Features

[dependencies]
once_cell = { version = "1.20.2", default-features = false, features = ["std", "alloc", "race", "parking_lot", "portable-atomic", "critical-section", "unstable", "atomic-polyfill"] }
default = std

The std feature is set by default whenever once_cell is added without default-features = false somewhere in the dependency tree.

std default = alloc

Enables once_cell::sync module.

alloc std = race

Enables once_cell::race::OnceBox type.

race alloc?

Enables once_cell::race module.

parking_lot

Uses parking_lot to implement once_cell::sync::OnceCell.
This makes no speed difference, but makes each OnceCell<T>
up to 16 bytes smaller, depending on the size of the T.

Enables parking_lot_core

portable-atomic critical-section?

Uses portable-atomic to implement race module. in #![no_std] mode. Please read portable-atomic docs carefully before enabling this feature.

Enables portable-atomic

critical-section atomic-polyfill? = portable-atomic

Uses critical-section to implement sync module. in #![no_std] mode. Please read critical-section docs carefully before enabling this feature. portable-atomic feature is enabled for backwards compatibility.

Enables critical-section

Affects once_cell::sync

unstable

Enables semver-exempt APIs of this crate.
At the moment, this feature is unused.

atomic-polyfill = critical-section

Only for backwards compatibility.