What Is New in Rust 1.90
| Category | Highlights |
|---|---|
| New Features | Cargo now supports cargo publish --workspace to publish all crates in a workspace in dependency order. |
| Improvements | LLD is the default linker for the x86_64-unknown-linux-gnu target, delivering faster link times especially for large or debug-heavy binaries. |
| Breaking Changes | The x86_64-apple-darwin target has been demoted to Tier 2 with host tools, reducing test coverage and future compatibility guarantees. |
What does the new default LLD linker mean for my Linux builds?
The LLD linker is now the default for the x86_64-unknown-linux-gnu target, which usually cuts link times dramatically.
- Large binaries and those with extensive debug info see the biggest gains.
- Incremental rebuilds become noticeably faster.
- If you encounter compatibility issues, you can opt out with
-C linker-features=-lldviaRUSTFLAGSor a.cargo/config.tomlentry.
[target.x86_64-unknown-linux-gnu]
rustflags = ["-Clinker-features=-lld"]
How can I publish an entire workspace with a single Cargo command?
Cargo now supports cargo publish --workspace, which automatically determines the correct publish order based on inter-crate dependencies.
- Works with dry-run mode to verify builds before actual publishing.
- All crates are built as if they were already published, catching potential issues early.
- Network or server failures can still leave a partially published workspace; the operation is not atomic.
cargo publish --workspace
What are the implications of demoting x86_64-apple-darwin to Tier 2?
The x86_64-apple-darwin target is now Tier 2 with host tools, meaning it will continue to build but receives less automated testing.
- Standard library and compiler binaries are still distributed via
rustup. - Reduced test coverage may lead to regressions that are not caught early.
- Teams relying on strict CI validation should monitor this target for unexpected breakages.
Which APIs have become const-stable in Rust 1.90?
Several APIs that were previously stable are now allowed in const contexts, enabling their use inside const fn and other compile-time evaluations.
- This expands the range of compile-time computation possible without resorting to unsafe workarounds.
- Check the official release notes for the exact list of newly const-stable items.
Are there any other platform tier changes I should know about?
The only platform tier change in this release is the demotion of x86_64-apple-darwin to Tier 2.
- All other targets retain their previous tier status.
- Refer to the platform support page for the full tier matrix.
Frequently Asked Questions
Do I need to modify my build scripts to start using LLD?
You can keep your existing scripts; LLD is used automatically, but you can opt out by adding -C linker-features=-lld to your RUSTFLAGS or Cargo config.
Can I publish a workspace that contains private crates?
Yes, cargo publish --workspace works as long as the private crates are not part of the publish list.
Will the Tier 2 status of x86_64-apple-darwin break my CI pipelines?
It may affect CI if you rely on the full Tier 1 test coverage, but builds will still succeed.
Which command shows the newly const-stable APIs?
The release notes list the APIs that are now const-stable; there is no dedicated command.
Is the workspace publishing feature atomic?
No, network or server errors can still result in a partially published workspace.