logo
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 and HttpResponse: 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
  • Keep-alive and slow requests handling
  • Client/server WebSockets support
  • Transparent content compression/decompression (br, gzip, deflate, zstd)
  • Powerful request routing
  • Multipart streams
  • Static assets
  • SSL support using OpenSSL or Rustls
  • Middlewares (Logger, Session, CORS, etc)
  • Includes an async HTTP client
  • Runs on stable Rust 1.52+

Crate Features

  • cookies - cookies support (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 openssl crate, supports HTTP/2
  • rustls - HTTPS support via rustls crate, supports HTTP/2
  • secure-cookies - secure cookies support

Re-exports

pub use crate::error::Result;

Modules

Traits and structures to aid consuming and writing HTTP payloads.

Lower-level types and re-exports.

Error and Result module

Route match guards.

Various HTTP related types.

Commonly used middleware.

Tokio-based single-threaded async runtime for the Actix ecosystem.

Various helpers for Actix applications to use during testing.

Essentials helper functions and types for application registration.

Macros

Macro helping register different types of services at the sametime.

Structs

Application builder - structure that follows the builder pattern for building application instances.

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.

Resource is an entry in resources table which corresponds to requested URL.

Resource route definition

Resources scope.

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.

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.

Attribute Macros

Creates route handler with actix_web::guard::Connect.

Creates route handler with actix_web::guard::Delete.

Creates route handler with actix_web::guard::Get.

Creates route handler with actix_web::guard::Head.

Marks async main function as the actix system entry-point.

Creates route handler with actix_web::guard::Options.

Creates route handler with actix_web::guard::Patch.

Creates route handler with actix_web::guard::Post.

Creates route handler with actix_web::guard::Put.

Creates resource handler, allowing multiple HTTP method guards.

Marks async test functions to use the actix system entry-point.

Creates route handler with actix_web::guard::Trace.