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("/hello/{name}")]
async fn greet(name: web::Path<String>) -> impl Responder {
    format!("Hello {}!", name)
}
#[actix_web::main] // or #[tokio::main]
async fn main() -> std::io::Result<()> {
    HttpServer::new(|| {
        App::new().service(greet)
    })
    .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. - 
HttpRequestandHttpResponse: 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 
awcHTTP 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 viaopensslcrate, supportsHTTP/2rustls- HTTPS support viarustlscrate, supportsHTTP/2secure-cookies- secure cookies support
Modules
- Traits and structures to aid consuming and writing HTTP payloads.
 - cookie
cookiesHTTP 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.
 - A collection of
Routes that respond to the same path pattern. - A request handler with guards.
 
Enums
- Combines two extractor or responder types into a single type.
 
Traits
- A type that implements
FromRequestis called an extractor and can extract data from the request. Some types that implement this trait are:Json,Header, andPath. - 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
- A convenience
Resultfor Actix Web operations. 
Attribute Macros
- connect
macrosCreates route handler withactix_web::guard::Connect. - delete
macrosCreates route handler withactix_web::guard::Delete. - get
macrosCreates route handler withactix_web::guard::Get. - head
macrosCreates route handler withactix_web::guard::Head. - main
macrosMarks async main function as the Actix Web system entry-point. - options
macrosCreates route handler withactix_web::guard::Options. - patch
macrosCreates route handler withactix_web::guard::Patch. - post
macrosCreates route handler withactix_web::guard::Post. - put
macrosCreates route handler withactix_web::guard::Put. - route
macrosCreates resource handler, allowing multiple HTTP method guards. - routes
macrosCreates resource handler, allowing multiple HTTP methods and paths. - test
macrosMarks async test functions to use the actix system entry-point. - trace
macrosCreates route handler withactix_web::guard::Trace.