With last week's release of the Futures 0.3 alpha, we've hit a major milestone in this year's goals for networking services -- in particular, we now have a working foundation for async
/await
in nightly Rust!
There's so much work still to do in this space for Rust this year, including:
-
Working out the integration story between existing libraries and Futures 0.3. Likely this will start out as a Futures 0.1 <-> 0.3 shim, like the one @seanmonstar made for 0.2.
-
Mapping out, documenting and improving the network services ecosystem, including:
- Protocol support, both async and sync (http, http/2, grpc, thrift, etc)
- Interfacing with existing middleware (rabbitmq, kafka, redis, etc) and storage
- Middleware
- Web frameworks
-
Writing a general guide to asynchronous programming in Rust.
-
Writing guidelines material for building networking-related crates (e.g., how to approach TLS)
-
Improving the debugging story around futures.
-
Boil all of the above down to various "getting started" guides.
And there's surely a lot more!
We want to build a big-tent, cohesive "Networking Services Working Group" to tackle this work. Rather than approaching the work from the vantage point of any particular crate/project, we want to take a look holistically at the Rust networking experience, and find ways to help existing crates or gaps where new ones are needed.
If you are interested in networking services in Rust, even just as a user, we need your help! I've been personally reaching out to stakeholders, for example production Rust users, to collect gripes, but we need more gripes, and more hands to help fix the gripes.
To get involved, please:
- Get on The Rust Programming Language, and ping me with a "hello" on #wg-net.
- Give your availability at this doodle poll for a text-based meeting on Discord this Friday.
- Take a look at our repo, and start filing and commenting on issues -- anything related to networking services in Rust is fair game!