Updates

Rust 1.95.0 enters pre-release testing ahead of April 16 stable launch

Rust 1.95.0 is in its final public test window, and the beta already includes LLVM 22 plus lint and solver changes that can trip CI.

Sam Ortega2 min read
Published
Listen to this article0:00 min
Share this article:
Rust 1.95.0 enters pre-release testing ahead of April 16 stable launch
AI-generated illustration

Rust’s next stable toolchain is already close enough to bite. The Rust Release Team opened pre-release testing for Rust 1.95.0 on April 13, with the stable launch set for April 16, and the ask to builders is simple: run it now, not after the update has already become the default.

The pre-release announcement pointed testers to the dev-static distribution index for the April 13 build and asked for feedback on a GitHub issue about the pre-release process itself. That makes this more than a routine heads-up. It is the last public checkpoint before 1.95.0 lands, and it is aimed squarely at the places Rust upgrades usually go sideways: compiler behavior changes, standard library shifts, platform-specific breakage, and the kind of build-script or test-harness failures that only show up once a release candidate is in the loop.

That timing matters because Rust’s release train depends on catching problems early. Rust’s own documentation splits the language into three channels, nightly, beta and stable, and treats beta as the pressure test before stable. The release-team discussion around pre-release testing has been running for years. In November 2021, one thread on rust-lang/release-team argued for using a versioned toolchain such as rustup toolchain add 1.55.0 and cargo +1.55.0 instead of flipping the default stable toolchain too soon, with a specific warning that changing the default channel could reduce testing of tools like clippy.

The current cycle is moving on the same cadence. Rust 1.94.0 followed a March 3 pre-release with a March 5 stable release, and its stable announcement encouraged users to help test future releases by switching to beta or nightly. The 1.95.0 window is just as tight, which is exactly why it deserves attention now. If your workspace pins toolchains, the gap between pre-release and stable is your chance to smoke-test everything before the upgrade becomes unavoidable.

There are already concrete details worth checking. Release-note tracking for 1.95.0 includes -Znext-solver work, stabilization of str_as_str, unused_must_use lint improvements, a ptr::replace change for zero-sized types, and an update to LLVM 22. Any one of those can move the needle in a real project, especially in CI setups that depend on precise compiler output or on crates that lean hard on low-level behavior.

Even the comment thread showed people reading the fine print closely. A commenter, simonbuchan, asked for clarification on the stabilized-APIs list, specifically the core::range and RangeInclusive items. That is the right instinct for this release: the headline is stable on April 16, but the practical work happens before then, while the beta still has room to surface the breakage nobody wants to discover on a Monday morning build.

Know something we missed? Have a correction or additional information?

Submit a Tip

Never miss a story.
Get Rust Programming updates weekly.

The top stories delivered to your inbox.

Free forever · Unsubscribe anytime

Discussion

More Rust Programming News