#actix #http #web #framework #async


In-progress extractors and middleware for Actix Web

46 releases

0.19.1 Feb 26, 2023
0.18.9 Jan 2, 2023
0.18.8 Dec 10, 2022
0.18.5 Oct 13, 2022
0.15.0 Mar 7, 2022

#81 in HTTP server

Download history 1947/week @ 2022-12-09 1763/week @ 2022-12-16 957/week @ 2022-12-23 1551/week @ 2022-12-30 1594/week @ 2023-01-06 1920/week @ 2023-01-13 1836/week @ 2023-01-20 1771/week @ 2023-01-27 2663/week @ 2023-02-03 1752/week @ 2023-02-10 2323/week @ 2023-02-17 2853/week @ 2023-02-24 2465/week @ 2023-03-03 2809/week @ 2023-03-10 2717/week @ 2023-03-17 2688/week @ 2023-03-24

11,163 downloads per month
Used in 4 crates


6.5K SLoC


Experimental extractors, middleware, and other extras for possible inclusion in Actix Web.

crates.io Documentation MIT or Apache 2.0 licensed
dependency status Download CircleCI


Feature Voting →


  • Csv: efficient CSV streaming (docs)
  • NdJson: efficient NDJSON streaming (docs)
  • DisplayStream: efficient line-by-line Display streaming (docs)
  • Html: basic string wrapper that responds with HTML Content-Type (docs)
  • Cbor: basic CBOR format wrapper with appropriate Content-Type (docs)
  • MessagePack: basic MessagePack format wrapper with appropriate Content-Type (docs)
  • Sse: semantic server-sent events (SSE) responder with a channel-like interface (docs)


  • from_fn: use an async function as a middleware (docs)
  • map_response: use an async function to modify the response (docs)
  • map_response_body: use an async function to modify the response body (docs)
  • RedirectHttps: middleware to redirect traffic to HTTPS if connection is insecure with optional HSTS (docs)
  • redirect_to_www: function middleware to redirect traffic to www. if not already there (docs)
  • ErrorHandlers: alternative error handler middleware with simpler interface (docs)
  • NormalizePath: alternative path normalizing middleware with redirect option (docs)
  • CatchPanic: catch panics in wrapped handlers and middleware, returning empty 500 responses (docs)
  • PanicReporter: catch panics in wrapped handlers and middleware, returning empty 500 responses (docs)
  • LoadShed: sheds load when the inner service isn't ready (docs)


  • LazyData: app data/state initialized on first use (docs)
  • SwapData: app data/state that can be replaced at runtime (alternative to Data<RwLock<T>>) (docs)
  • LocalData: app data/state that uses an Rc internally, avoiding atomic overhead (alternative to Data<RwLock<T>>) (docs)
  • Json: simplified JSON extractor with const-generic payload limits (docs)
  • Path: simplified path parameter extractor that supports destructuring (docs)
  • Query: simplified query-string extractor that can also collect multi-value items (docs)
  • RequestSignature: wraps an extractor and calculates a request signature alongside (docs)
  • BodyLimit: wraps a body extractor and prevents DoS attacks by limiting payload size (docs)
  • Bytes: simplified Bytes extractor with const-generic limits (docs)
  • UrlEncodedForm: URL-encoded form extractor with const-generic payload size limit (docs)
  • Host: Host information taken from either URL or Host header (docs)


  • FromRequest: Derive macro to implement FromRequest on an aggregate struct of other extractors (docs)


  • StrictTransportSecurity: Strict-Transport-Security (HSTS) configuration (docs)
  • CacheControl: Cache-Control typed header with support for modern directives (docs)
  • ContentLength: Content-Length typed header (docs)
  • Forwarded: Proxy and original client info (docs)

Body Types

  • channel: a simple channel-like body type with a sender side that can be used from another thread (docs)
  • writer: a simple AsyncWrite body type (docs)


  • Redirect: (graduated 🎉) simple redirects (docs)
  • spa: Easy Single-page Application (SPA) service (docs)

Route Guards

  • Acceptable: (graduated 🎉) verifies that an Accept header is present and it contains a compatible MIME type (docs)

Test Utilities

  • test_request: construct TestRequest using an HTTP-like DSL (docs)
  • assert_response_matches: quickly write tests that check various parts of a ServiceResponse (docs)

Other Utilities

  • fork_request_payload: effectively clone a request payload (docs)

Things To Know About This Crate

  • It will never reach v1.0.
  • Minimum Supported Rust Version (MSRV) is latest stable at the time of each release.
  • Breaking changes will likely happen on most 0.x version bumps.
  • Documentation might be limited for some items.
  • Items that graduate to Actix Web crate will be marked deprecated here for a reasonable amount of time so you can migrate.
  • Migrating will often be as easy as dropping the _lab suffix from imports.


~537K SLoC