To make asynchronous programming in Rust more available to everyone, the Async Foundations Working Group is building a shared vision document for Async Rust. According to the working group, this will accelerate Rust’s adoption for building distributed systems. Whatever they’re using it for, we want all developers to love using Async Rust. For that to happen, we need to move Async Rust beyond the “MVP” state it’s in today and makes it accessible to everyone,” Niko Matsakis wrote in a blog post on behalf of the Async Foundations Working Group. “Our goal is to engage the entire community in a collective act of the imagination: how can we make the end-to-end experience of using Async I/O not only a pragmatic choice but a joyful one?
RELATED CONTENT: What’s all the fuss about Rust?
The vision document will include a “cast of characters” where the team will write a series of “status quo stories” around a particular Rust value, the challenges they faced, and how they overcame them. These will be real-life stories from developers using Async Rust.
For example, the team already has one from a C and C++ developer Grace. She turned to Rust for the same control and performance she gets from C, but more productivity benefits from Rust’s memory safety. “She’s currently experimenting with introducing Rust into some of the systems she works on, and she’s considering Rust for a few greenfield projects as well,” Matsakis wrote.
The point of these status quo stories is to provide developers with new knowledge, tips, and tricks for working with Async Rust. “The stories help us gauge the cumulative impact all the paper cuts can have on someone still learning their way around. This gives us the data we need to prioritize,” explained Matsakis.
After the status quo stories, the next step will be to look at the future. “The ultimate goal of the vision doc, of course, is not just to tell us where we are now, but where we are going and how we will get there,” according to Matsaki. The “shiny future stories” will talk about what asynchronous programming will look like in the future. “The idea is to be ambitious and focus first and foremost on the user experience we want to create; we’ll figure out the steps along the way (and maybe adjust the goal, if we have to),” Matsakis added. “Async Rust was intentionally designed not to have a ‘one size fits all mindset, and we don’t want to change that. Our goal is to build a shared vision for the end-to-end experience while retaining the loosely coupled, exploration-oriented ecosystem we have created.