Expand description
Actix Web is a powerful, pragmatic, and extremely fast web framework for Rust.
Examples
use actix_web::{get, web, App, HttpServer, Responder};
#[get("/{id}/{name}/index.html")]
async fn index(path: web::Path<(u32, String)>) -> impl Responder {
let (id, name) = path.into_inner();
format!("Hello {}! id:{}", name, id)
}
#[actix_web::main]
async fn main() -> std::io::Result<()> {
HttpServer::new(|| App::new().service(index))
.bind("127.0.0.1:8080")?
.run()
.await
}
Documentation & Community Resources
In addition to this API documentation, several other resources are available:
To get started navigating the API docs, you may consider looking at the following pages first:
-
App
: This struct represents an Actix Web application and is used to configure routes and other common application settings. -
HttpServer
: This struct represents an HTTP server instance and is used to instantiate and configure servers. -
web
: This module provides essential types for route registration as well as common utilities for request handlers. -
HttpRequest
andHttpResponse
: These structs represent HTTP requests and responses and expose methods for creating, inspecting, and otherwise utilizing them.
Features
- Supports HTTP/1.x and HTTP/2
- Streaming and pipelining
- Powerful request routing with optional macros
- Full Tokio compatibility
- Keep-alive and slow requests handling
- Client/server WebSockets support
- Transparent content compression/decompression (br, gzip, deflate, zstd)
- Multipart streams
- Static assets
- SSL support using OpenSSL or Rustls
- Middlewares (Logger, Session, CORS, etc)
- Integrates with the
awc
HTTP client - Runs on stable Rust 1.54+
Crate Features
cookies
- cookies support (enabled by default)macros
- routing and runtime macros (enabled by default)compress-brotli
- brotli content encoding compression support (enabled by default)compress-gzip
- gzip and deflate content encoding compression support (enabled by default)compress-zstd
- zstd content encoding compression support (enabled by default)openssl
- HTTPS support viaopenssl
crate, supportsHTTP/2
rustls
- HTTPS support viarustls
crate, supportsHTTP/2
secure-cookies
- secure cookies support
Modules
Traits and structures to aid consuming and writing HTTP payloads.
cookies
HTTP cookie parsing and cookie jar management.
Lower-level types and re-exports.
Error and Result module
Route guards.
Various HTTP related types.
A collection of common middleware.
Various helpers for Actix applications to use during testing.
Essentials helper functions and types for application registration.
Macros
Macro to help register different types of services at the same time.
Structs
The top-level builder for an Actix Web application.
Allows overriding status code and headers for a Responder
.
General purpose Actix Web error.
An incoming request.
An outgoing response.
An HTTP response builder.
An HTTP Server.
Enums
Combines two extractor or responder types into a single type.
Traits
A type that implements FromRequest
is called an extractor and can extract data from
the request. Some types that implement this trait are: Json
, Header
, and Path
.
The interface for request handlers.
Trait that implements general purpose operations on HTTP messages.
Trait implemented by types that can be converted to an HTTP response.
Errors that can generate responses.
Type Definitions
Attribute Macros
macros
Creates route handler with actix_web::guard::Connect
.
macros
Creates route handler with actix_web::guard::Delete
.
macros
Creates route handler with actix_web::guard::Get
.
macros
Creates route handler with actix_web::guard::Head
.
macros
Marks async main function as the Actix Web system entry-point.
macros
Creates route handler with actix_web::guard::Options
.
macros
Creates route handler with actix_web::guard::Patch
.
macros
Creates route handler with actix_web::guard::Post
.
macros
Creates route handler with actix_web::guard::Put
.
macros
Creates resource handler, allowing multiple HTTP method guards.
macros
Marks async test functions to use the actix system entry-point.
macros
Creates route handler with actix_web::guard::Trace
.