Rust's Journey to Async/Await
- Rust was initially built for synchronous I/O but the community wanted asynchronous capabilities for building network services.
- This led to the development of futures in Rust to support asynchronous programming. However, futures had design issues that motivated futures 2.0.
- Async/await was developed to make asynchronous code look synchronous while teaching the borrow checker about asynchronous constraints. This involved debate around syntax.
- After years of work, async/await landed in Rust 1.38, completing Rust's journey to fully supporting asynchronous programming. The implementation involved resolving language-specific challenges.