Skip to main content
  1. Project index/

LiveProject - A Load Test CLI with Async Rust

Rust Network Performance Tokio

LiveProject with Manning to teach performance analysis and optimization with async Rust.

Check it out!

Manning contacted me whether I would be interested in creating a learning experience with them on a topic connected to Rust. The LiveProject consists of four sub-projects that explain some concepts, a goal and rough steps on how to achieve the goal. The learner must then, akin to real-world situations, reach that goal on their own. There are some levels of hints, that gradually turn into step-by-step instructions, should one need some guidance.

When lerning with the project, you literaly start with the tokio hello world:

#[tokio::main]
async fn main(){
  todo!()
}

You then work your way through sub-projects that in-turn consist of milestones, outlining what is expected and a way to verify your results. In the end, you have written a load generation CLI with command line parameters, automated performance regression tests and much more.

Initially I “trick” the learner on a slippery slope towards a bad decision that they will then discover when profiling the application. It is up to them to come up with a fix for that, implement it and verify the change was indeed for the better.

A flamegraph
If doing the project, you will encounter such flamegraphs

Creating the project material was really fun but the manning interface to get the project online was probably the most terrible piece of software I ever touched.

Check it out!