Rust 1.80, the latest version of the popular memory-safe programming language, has been released, featuring “lazy” types to delay initialization of data until their first access.
Rust 1.80 was unveiled on July 25. Developers with a previous version of Rust installed via rustup
can update to version 1.80 by running $ rustup update stable
.
The new lazy types LazyCell
and LazyLock
, which delay initialization of values until first access, are similar to the OnceCell
and OnceLock
types stabilized in Rust 1.70, but with the initialization function included in the cell. This completes the stabilization of functionality adopted into the standard library from lazy_static
and once_cell
crates. LazyLock
is the thread-safe option, suitable for places like static
values. LazyCell
lacks thread synchronization, so does not implement Sync
, which is needed for static
, but can still be used in thread_local!
statics, the Rust team said.