mirror of https://github.com/fafhrd91/actix-web
				
				
				
			| 
				
					
						
							 | 
			||
|---|---|---|
| examples | ||
| guide | ||
| src | ||
| tests | ||
| .appveyor.yml | ||
| .gitignore | ||
| .travis.yml | ||
| CHANGES.md | ||
| Cargo.toml | ||
| LICENSE | ||
| Makefile | ||
| README.md | ||
| build.rs | ||
		
			
				
				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.