Announcing conquer-once 0.2.0 - no-std compatible, thread-safe, lazy and one-time initialization without macros

This crate is very similar to, and is in fact directly inspired by, once-cell but has a number of properties differentiating it:

  • full no-std compatibility (once-cell does not provide any sync types in no-std mode) in a way that can be easily composed with other no-std crates (unlike lazy_static): enabling the std cargo feature enables additional types using a low-level OS reliant blocking mechanism without overriding the no-std capable types (which use spin-locks)
  • clear and consistent API distinctions between blocking and non-blocking initialization
  • does not provide specific types for single-threaded initialization only (like the unsync module in once-cell)
1 Like