actix-web-lab
actix-web-lab copied to clipboard
Experimental extractors, middleware, and other extras for possible inclusion in Actix Web.
actix-web-lab
Experimental extractors, middleware, and other extras for possible inclusion in Actix Web.
Features
Responders
-
Csv
: efficient CSV streaming (docs) -
NdJson
: efficient NDJSON streaming (docs) -
DisplayStream
: efficient line-by-lineDisplay
streaming (docs) -
Html
: basic string wrapper that responds with HTML Content-Type (docs) -
Sse
: semantic server-sent events (SSE) responder with a channel-like interface (docs)
Middleware
-
from_fn
: use an async function as a middleware (docs) -
RedirectHttps
: middleware to redirect traffic to HTTPS if connection is insecure with optional HSTS (docs) -
redirect_to_www
: function middleware to redirect traffic towww.
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)
Extractors
-
LazyData
: app data/state initialized on first use (docs) -
SwapData
: app data/state that can be replaced at runtime (alternative toData<RwLock<T>>
) (docs) -
LocalData
: app data/state that uses anRc
internally, avoiding atomic overhead (alternative toData<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)
Macros
-
FromRequest
: Derive macro to implementFromRequest
on an aggregate struct of other extractors (docs)
Headers
-
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 simpleAsyncWrite
body type (docs)
Services
Route Guards
-
Acceptable
: verifies that anAccept
header is present and it contains a compatible MIME type (docs)
Test Utilities
-
test_request
: constructTestRequest
using an HTTP-like DSL (docs) -
assert_response_matches
: quickly write tests that check various parts of aServiceResponse
(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.