2024 edition:
(1) supporting -> impl Trait and async fn in traits by aligning capture behavior;
(2) permitting (async) generators to be added in the future by reserving the gen keyword; and
(3) altering fallback for the ! type.
Async: support for async closures and Send bounds.
Rust in the Linux kernel: focus on the unstable features it uses so it can progress out of the experimental phase.
And highlights other goals:
Stabilize cargo-script
Improving Rust's borrow checker to support conditional returns and other patterns
I wish Rust would adopt tokio (or any other, if better suited) as a default first citizen async runtime. Then everyone can be sure to write in that runtime , knowingly it will run. If people need a different runtime, they could still opt out of tokio and opt in to whatever they like. The freedom of choice would not be hindered, but we would gain a default runtime.
Goal is to keep the std to the absolute minimum. It's a lot easier to change a normal library and switch over, than to change std. Just ask the c++ guys about their regex support.
That's the reason rand, regex, num, chrono etc. aren't part of the std.
Or look at Python and their urllib, urllib2, new urllib, and the requests package on PyPi.
We already sort of saw this in Rust with crossbeam and standard channels, until of course they replaced the standard lib implementation with crossbeam's implementation.
Is that even desirable? There are other runtimes for specific things, e.g. for embedded, WASM, Fuchsia, etc. Doesn't seem like there's a one-size-fits-all runtime.
I guess the proper answer is some kind of minimum standard async interface, but presumably there's a reason they haven't done that.
I dunno really, I've avoided async Rust as much as possible due to the number of footguns it has.