7 releases (4 breaking)

Uses old Rust 2015

0.5.1 Aug 1, 2022
0.5.0 Jan 18, 2021
0.4.0 Aug 22, 2020
0.3.0 Jan 18, 2018
0.1.1 Jan 28, 2017

#879 in Rust patterns

Download history 1397/week @ 2024-07-20 1604/week @ 2024-07-27 1661/week @ 2024-08-03 2467/week @ 2024-08-10 2915/week @ 2024-08-17 4268/week @ 2024-08-24 2845/week @ 2024-08-31 2725/week @ 2024-09-07 3762/week @ 2024-09-14 4781/week @ 2024-09-21 5326/week @ 2024-09-28 7287/week @ 2024-10-05 5810/week @ 2024-10-12 5015/week @ 2024-10-19 4521/week @ 2024-10-26 5225/week @ 2024-11-02

21,662 downloads per month
Used in 18 crates (8 directly)

Apache-2.0/MIT

14KB
227 lines

A crate for things that are

  1. Lazily initialized
  2. Expensive to create
  3. Immutable after creation
  4. Used on multiple threads

Lazy<T> is better than Mutex<Option<T>> because after creation accessing T does not require any locking, just a single boolean load with Ordering::Acquire (which on x86 is just a compiler barrier, not an actual memory barrier).

No runtime deps