Naked functions skip the compiler’s usual prologue and epilogue, giving developers complete control over the function’s generated assembly code.
Rust 1.88 has officially been released, bringing several notable improvements and new features to the fast-growing Rust programming language. Announced on June 26 by the Rust Release Team, this update introduces support for writing naked functions and adds Boolean literals to the conditional compilation system. Rust users can easily upgrade to this latest version by running.
One of the headline features in Rust 1.88 is the addition of naked functions. These functions omit the usual compiler-generated prologue and epilogue, granting developers complete control over the assembly code generated for a given function. Marked with the attribute, naked functions consist solely of a single naked_asm! call, where the entire function body is defined in handwritten assembly. This feature provides a cleaner and more ergonomic alternative to using global_asm! blocks and is especially useful for low-level programming tasks such as compiler built-ins, operating system kernels, and embedded system applications.

Another significant enhancement is the support for Boolean literals—true and false—within Rust’s cfg predicate language, which controls conditional compilation. This update allows developers to express always-enabled or always-disabled configurations more clearly, replacing previous workarounds like cfg(all()) for always true or cfg(any()) for always false. These Boolean literals work seamlessly with cfg and cfg_attr attributes, the built-in cfg! macro, and Cargo’s [target] tables, providing more expressive and readable configuration options.
Rust 1.88 also improves code readability and flexibility by allowing chained let statements inside if and while conditions, even mixing them with Boolean expressions. This reduces the distinctions between if and if let as well as while and while let, supporting both refutable and irrefutable patterns in the chains. Lastly, Cargo, Rust’s package manager, now automatically performs garbage collection on its cache directory, cleaning up old crates and preventing unbounded disk usage—a long-needed maintenance feature. This release builds on the momentum from Rust 1.87, which introduced support for anonymous pipes and architecture intrinsics.

