Welcome to the new home of the Rust Network Services Working Group (Wg-Net)!
We recently rebooted the group, and since then have had two “all hands” meetings (with a roster of 40+ people):
The big news is that we’ve established three major areas of work, each of which has a dedicated subgroup, pair of leaders, and Discord channel for discussion. If you want to get involved in one or more of these efforts, hop on Discord and say hello, or take a look at the issue tracker.
Async foundations
Home page
Leads: @cramertj and @MajorBreakfast
Our goal is to bring async/await onto a path to stabilization and to provide documentation for asynchronous programming:
- Futures 0.3 and async/await should be vetted, well-documented, well-integrated, future-proof, and on a clear path to stabilization.
- The futures-rs blog aims to give regular updates on the latest changes to
async
/await
and the futures library. - The Asynchronous Programming in Rust book should have a complete draft, covering async/await, core futures concepts, Tokio, and enough of the ecosystem to give good examples and guidance. It should also explicitly talk about the stabilization situation, including how to bridge between stable 0.1 and unstable 0.3 worlds.
Learn more here.
Embedded networking foundations
Home page
Leads: @Nemo157 and @levex
Our goal is to support IoT development in Rust by:
- Building reusable components for
no_std
asynchronous IO and hardware access. Whilestd
based projects have the greattokio
async IO stack to build offno_std
projects don’t have much at this point. We should provide basic prototype implementations to kickstart this area of development, then see how production ready we can get stuff. - Prototyping an asynchronous IoT stack from the hardware to the application, with a focus on ensuring portability and ease of integrating alternative layers. This should be examples of how to combine the components from the previous point into an actual IoT application, preferably based on easy to acquire development kits. The ultimate goal of this could be a guide to putting together the existing components and how to integrate your own custom components.
Learn more here.
Web foundations
Home page
Leads: @aturon and @yoshuawuyts
Our goal is to improve web programming in Rust by:
- Bolstering web components, i.e. assessing the state of foundational crates for web programming (like
http
andurl
), and working to improve it by writing documentation and examples, making API improvements, standardizing interfaces, and in some cases writing whole new crates. - Building Tide, which is a combination of a simple, modular web framework built on the above components, and extensive documentation on what the components are, how to use them directly, and how they integrate into a framework. The name “Tide” refers to “a rising tide lifts all boats”, conveying the intent that this work is aimed to improve sharing, compatibility, and improvements across all web development and frameworks in Rust.
Learn more here.