A major innovation was introduced in stable Rust in November 2019—with release 1.39—it is the async-await syntax, to support asynchronous programming.
Asynchronous programming is a programming paradigm that is very useful in many application areas, mainly in multiuser servers, so that many programming languages—such as JavaScript, C#, Go, and Erlang—support it in the language. Other languages, such as C++ and Java, support asynchronous programming through the standard library.
Around 2016, it was very hard to do asynchronous programming in Rust because neither the language nor the available crates supported it in an easy and stable way. Then, some crates supporting asynchronous programming were developed, such as futures, mio, and tokio, though they were not much easier to use, and remained at a version before 1, meaning instability of their API.
After having seen the difficulty of creating convenient support for asynchronous programming...