mirror of
https://github.com/actix/actix-web.git
synced 2024-12-18 22:26:37 +00:00
Actix Web is a powerful, pragmatic, and extremely fast web framework for Rust.
examples | ||
guide | ||
src | ||
tests | ||
.appveyor.yml | ||
.gitignore | ||
.travis.yml | ||
build.rs | ||
Cargo.toml | ||
CHANGES.md | ||
LICENSE | ||
Makefile | ||
README.md |
Actix web
Actix web is a small, fast, down-to-earth, open source rust web framework.
use actix_web::*;
fn index(req: HttpRequest) -> String {
format!("Hello {}!", &req.match_info()["name"])
}
fn main() {
HttpServer::new(
Application::new()
.resource("/{name}", |r| r.method(Method::GET).f(index)))
.serve::<_, ()>("127.0.0.1:8080");
}
Documentation
- User Guide
- API Documentation (Development)
- API Documentation (Releases)
- Cargo package: actix-web
- Minimum supported Rust version: 1.20 or later
Features
- Supported HTTP/1 and HTTP/2 protocols
- Streaming and pipelining
- Keep-alive and slow requests handling
- WebSockets
- Transparent content compression/decompression (br, gzip, deflate)
- Configurable request routing
- Multipart streams
- Middlewares (Logger, Session included)
- Built on top of Actix.
HTTP/2
Actix web automatically upgrades connection to http/2
if possible.
Negotiation
HTTP/2
protocol over tls without prior knowlage requires
tls alpn. At the moment only
rust-openssl
supports alpn.
[dependencies]
actix-web = { git = "https://github.com/actix/actix-web", features=["alpn"] }
Upgrade to http/2
schema described in
rfc section 3.2 is not supported.
Starting http/2
with prior knowledge is supported for both clear text connection
and tls connection. rfc section 3.4
Examples
License
Actix web is licensed under the Apache-2.0 license.