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 via- opensslcrate, supports- HTTP/2
- rustls- HTTPS support via- rustlscrate, supports- HTTP/2
- secure-cookies- secure cookies support
Re-exports
- pub use crate::error::Error;
- pub use crate::error::ResponseError;
Modules
- Traits and structures to aid consuming and writing HTTP payloads.
- cookiecookiesHTTP 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 aResponder.
- An incoming request.
- An outgoing response.
- An HTTP response builder.
- An HTTP Server.
- A collection ofRoutes 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 implementsFromRequestis 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.
Type Aliases
- A convenienceResultfor Actix Web operations.
Attribute Macros
- connectmacrosCreates route handler withactix_web::guard::Connect.
- deletemacrosCreates route handler withactix_web::guard::Delete.
- getmacrosCreates route handler withactix_web::guard::Get.
- headmacrosCreates route handler withactix_web::guard::Head.
- mainmacrosMarks async main function as the Actix Web system entry-point.
- optionsmacrosCreates route handler withactix_web::guard::Options.
- patchmacrosCreates route handler withactix_web::guard::Patch.
- postmacrosCreates route handler withactix_web::guard::Post.
- putmacrosCreates route handler withactix_web::guard::Put.
- routemacrosCreates resource handler, allowing multiple HTTP method guards.
- routesmacrosCreates resource handler, allowing multiple HTTP methods and paths.
- testmacrosMarks async test functions to use the Actix Web system entry-point.
- tracemacrosCreates route handler withactix_web::guard::Trace.