Just added: Algorithms you can run and practice
Updated Jun 23, 2026 Edit on GitHub

actix-web From Zero

actix-web is one of the oldest, fastest, and most battle-tested web frameworks in Rust - it sits at or near the top of the TechEmpower benchmarks year after year, and a lot of production Rust runs on it. Where axum is the newer, tower-native option, actix-web is the mature, feature-packed one: routing, extractors, middleware, websockets, and more, all included. The name carries a bit of history - it grew out of an actor framework - but day to day you write plain async fn handlers and rarely touch actors at all.

The mental model is three pieces. An App holds your routes and shared state; an HttpServer runs one or more copies of that App across worker threads; and a handler is an async fn whose arguments are extractors (Path, Query, Json, web::Data) and whose return value is a Responder. If that sounds like axum, it is - the big Rust frameworks converged on "extract from the request, return something that becomes a response." The differences are in the details, and this guide walks them.

📝 This teaches the framework - it assumes you know Rust (ownership, traits, Result, async/await - Rust From Zero). It's most useful read alongside axum (the closest comparison) and on top of Tokio. actix-web compiles and runs as a Rust program, so examples are shown with the commands to run them.

How to read this

Read in order - it grows one service (a small articles API) from a single route to a tested, deployable REST API. Phases carry difficulty badges.

The phases

Part 1 - The core (🟢 Basic)

  1. What actix-web Is & Your First Server 🟢 - App, HttpServer, the async handler, and a running server.
  2. Routing & Extractors 🟢 - methods, scopes, Path/Query/Json, and how extractors work.
  3. Responders 🟡 - HttpResponse, impl Responder, returning JSON and status codes.

Part 2 - A real API (🟡 → 🔴) 4. Shared State with web::Data 🟡 - web::Data<T>, app_data, and sharing a pool across workers. 5. Middleware 🔴 - wrap, the built-in Logger, from_fn, and writing your own. 6. A REST API with Error Handling 🔴 - full CRUD plus the ResponseError trait for clean error responses.

Part 3 - Ship it (🟡 → 🟢) 7. Testing & Production 🟡 - actix_web::test, workers, and deployment. 8. Where to Go Next 🟢 - actix-web vs axum/Rocket, data layers, and what to build.

The throughline: an App of routes, run by an HttpServer, with handlers that extract from the request and return a Responder. Mature, fast, and more familiar than its actor heritage suggests.