This is the repository for the book: Asynchronous Programming in Rust.
Written by Carl Fredrik Samson, published by Packt
My clear recommendation is to clone this repository by either clicking on the <> Code
button and select "Download ZIP" or clone the repository using your preferred git client.
Each chapter has its own folder in this repository. Each example is organized as a standalone crate within that folder.
When encountering examples in the book, you might find it easier to read the code in the repository since you'll be able to open it up in the editor of your choice and have appropriate highlighting and formatting.
Even if you only write the examples directly from the book line by line, you'll need the repository for delayserver
and corofy
which is two tools I wrote to help in the learning process.
Most of the examples will use a program called delayserver that's provided in this repository. Delayserver is a simple local webserver where you can write a HTTP GET request with a configurable delay.
You have two options for running the delayserver:
- Go to the folder named
/delayserver
and writecargo run
in a separate terminal window and leave it running there - Go to the same folder and install the server by writing
cargo install --force --path .
. By doing so you install the program locally in you PATH so you can run it from any location by simply writingdelayserver
and leave the terminal process running.
How delayserver works is described in the book, but you'll also find the relevant information in its root folder.
Corofy is another tool that we'll use from chapter 7 onwards. I recommend installing this tool locally by entering the folder ch7/corofy
and installing it on your machine by writing cargo install --force --path .
You'll need to install both delayserver
and corofy
locally on your machine while you're online. The process is described below.
Most of the examples have no external dependencies, but from chapter 6 onwards we will have some of them. The best way to be able to run these examples while offline is to enter each folder and use cargo vendor to vendor the dependencies locally. This way you'll be able to build and experiment with the examples even though you'll be offline.
Asynchronous Programming in Rust, published by Packt