Go to file
Lily Mara 75c3968e66 Add `ServiceConfig::default_service`
The `App` struct supports a "default" service which will be called when there
are no other matching services available. I propose that we support adding this
default service from the `ServiceConfig` struct, which will enable it to be used
from `App::configure`. Currently if you want to test a default service (if
you're creating a proxy for example) you must re-specify this default service
each time you construct your app. This change will allow users to put their
default services into the shared `App::configure` helper.
2021-07-19 17:24:50 -07:00
.cargo clippy fixes (#2296) 2021-07-12 16:55:24 +01:00
.github clippy fixes (#2296) 2021-07-12 16:55:24 +01:00
actix-files prepare beta.8 releases (#2292) 2021-06-26 16:33:36 +01:00
actix-http re-export ServiceFactory (#2325) 2021-07-12 16:55:41 +01:00
actix-http-test prepare beta.8 releases (#2292) 2021-06-26 16:33:36 +01:00
actix-multipart prepare beta.8 releases (#2292) 2021-06-26 16:33:36 +01:00
actix-test prepare beta.8 releases (#2292) 2021-06-26 16:33:36 +01:00
actix-web-actors prepare beta.8 releases (#2292) 2021-06-26 16:33:36 +01:00
actix-web-codegen prepare beta.8 releases (#2292) 2021-06-26 16:33:36 +01:00
awc prepare beta.8 releases (#2292) 2021-06-26 16:33:36 +01:00
benches Various refactorings (#2281) 2021-06-26 15:33:43 +01:00
docs/graphs prepare http release 3.0.0-beta.5 2021-04-02 09:27:11 +01:00
examples migrate integration testing to new crate (#2112) 2021-04-02 08:26:59 +01:00
src Add `ServiceConfig::default_service` 2021-07-19 17:24:50 -07:00
tests clippy fixes (#2296) 2021-07-12 16:55:24 +01:00
.gitignore Various refactorings (#2281) 2021-06-26 15:33:43 +01:00
CHANGES.md re-export ServiceFactory (#2325) 2021-07-12 16:55:41 +01:00
CODE_OF_CONDUCT.md Update CoC contact information 2020-10-31 12:06:51 +09:00
Cargo.toml prepare beta.8 releases (#2292) 2021-06-26 16:33:36 +01:00
LICENSE-APACHE the big three point oh (#1668) 2020-09-11 13:50:10 +01:00
LICENSE-MIT update year in MIT license (#2143) 2021-04-09 01:28:35 +01:00
MIGRATION.md Update MIGRATION.md (#2315) 2021-07-12 02:02:19 +01:00
README.md prepare beta.8 releases (#2292) 2021-06-26 16:33:36 +01:00
clippy.toml add msrv to clippy config (#1862) 2021-02-22 15:39:31 +00:00
codecov.yml migrate integration testing to new crate (#2112) 2021-04-02 08:26:59 +01:00
rustfmt.toml change rustfmt line width to 96 2021-02-11 23:03:17 +00:00

README.md

Actix Web

Actix Web is a powerful, pragmatic, and extremely fast web framework for Rust

crates.io Documentation Version MIT or Apache 2.0 licensed Dependency Status
build status codecov downloads Chat on Discord

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.46+

Documentation

Example

Dependencies:

[dependencies]
actix-web = "3"

Code:

use actix_web::{get, web, App, HttpServer, Responder};

#[get("/{id}/{name}/index.html")]
async fn index(web::Path((id, name)): web::Path<(u32, String)>) -> impl Responder {
    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
}

More examples

You may consider checking out this directory for more examples.

Benchmarks

One of the fastest web frameworks available according to the TechEmpower Framework Benchmark.

License

This project is licensed under either of

at your option.

Code of Conduct

Contribution to the actix-web repo is organized under the terms of the Contributor Covenant. The Actix team promises to intervene to uphold that code of conduct.