These guides are meant to be an introduction to Tower. At least basic Rust experience is assumed. Some experience with asynchronous Rust is also recommended. If you're brand new to async Rust, we recommend the Asynchronous Programming in Rust book or the Tokio tutorial.
Additionally, some of these guides explain Tower from the perspective of HTTP servers and clients. However, Tower is useful for any network protocol that follows an async request/response pattern. HTTP is used here because it is a widely known protocol, and one of Tower's more common use-cases.
- "Inventing the
Service
trait" walks through how Tower's fundamentalService
trait could be designed from scratch. If you have no experience with Tower and want to learn the absolute basics, this is where you should start. - "Building a middleware from scratch" walks through how to build the
Timeout
middleware as it exists in Tower today, without taking any shortcuts.