Network Applications using Tokio and Rust
HomeSlides

Network Applications using Tokio and Rust

RustWorkshopSlides

Rust is undeniably syntax-heavy. After all, there’s a lot of intent to express, and Rust wants you to be explicit. Still, Rust is a very elegant language. This might not be so obvious at first, as Rust has borrowed elements from a lot of precursors that help you navigating when you start, but can be false friends in the long run, resulting in bloated code, unnecessary complexity, and hard-to-use APIs.

In this workshop, we’re going to learn what Rust has to offer to create code that is a delight to read and follow, easy to use, and plays along nicely with all the other libraries out there.

We learn about:

  • Asynchronous Rust in Depth
  • Futures
  • Async Runtimes
  • Tokio Tasks
  • Getting started with the Tokio runtime
  • Using channels
    • Multi-producer, single-consumer
    • Broadcast
    • Oneshot
    • Watch
  • Helper macros like select! and join!
  • Tower and the Service trait
  • Implementing services
  • Hyper for correct HTTP implementations
  • Using Tonic for gRPC based microservices
  • Implementing apps with Axum
  • Implementing apps with Warp

Each chapter concludes with tasks for the audience.

Target audience: People with familiarity in Rust and basic networking (TCP, HTTP; knowing what a web-server does).

Expected workshop duration: full-day, 2-day

Resources

Public presentations