The Rust team has released Rust 1.86, continuing the steady flow of async and trait system improvements.
GATs Work in Async Traits
Combining generic associated types with async fn in trait now works without workarounds. This unblocks idiomatic designs for async iterators, streaming parsers, and lifetime-generic callbacks — patterns that previously required BoxFuture or external crates.
Trait Upcasting Coercions
You can now coerce &dyn SubTrait to &dyn SuperTrait without manual casts. This cleans up a lot of dyn-compatible code and aligns Rust's object-safe traits with the ergonomics of other OO-adjacent languages.
Cargo
Cargo 1.86 introduces cargo check --build-plan for CI systems to statically analyze dependency graphs, and the long-awaited [profile.*.trim-paths] option is now stable for reproducible builds.
Install via rustup update stable.