mirror of
https://github.com/fafhrd91/actix-web
synced 2024-11-24 00:21:08 +01:00
Actix web is a small, pragmatic, and extremely fast rust web framework. https://actix.rs
a48e616def
When accessing to a folder without a final slash, the index file will be loaded ok, but if it has references (like a css or an image in an html file) these resources won't be loaded correctly if they are using relative paths. In order to solve this, this PR adds the possibility to detect folders without a final slash and make a 302 redirect to mitigate this issue. The behavior is off by default. We're adding a new method called `redirect_to_slash_directory` which can be used to enable this behavior. |
||
---|---|---|
actix-cors | ||
actix-files | ||
actix-framed | ||
actix-http | ||
actix-identity | ||
actix-multipart | ||
actix-session | ||
actix-web-actors | ||
actix-web-codegen | ||
awc | ||
examples | ||
src | ||
test-server | ||
tests | ||
.appveyor.yml | ||
.gitignore | ||
.travis.yml | ||
Cargo.toml | ||
CHANGES.md | ||
CODE_OF_CONDUCT.md | ||
LICENSE-APACHE | ||
LICENSE-MIT | ||
MIGRATION.md | ||
README.md | ||
rustfmt.toml |
Actix web
Actix web is a simple, pragmatic and extremely fast web framework for Rust.
- Supported HTTP/1.x and HTTP/2.0 protocols
- Streaming and pipelining
- Keep-alive and slow requests handling
- Client/server WebSockets support
- Transparent content compression/decompression (br, gzip, deflate)
- Configurable request routing
- Multipart streams
- Static assets
- SSL support with OpenSSL or Rustls
- Middlewares (Logger, Session, CORS, etc)
- Includes an asynchronous HTTP client
- Supports Actix actor framework
Documentation & community resources
- User Guide
- API Documentation (1.0)
- API Documentation (0.7)
- Chat on gitter
- Cargo package: actix-web
- Minimum supported Rust version: 1.36 or later
Example
use actix_web::{web, App, HttpServer, Responder};
fn index(info: web::Path<(u32, String)>) -> impl Responder {
format!("Hello {}! id:{}", info.1, info.0)
}
fn main() -> std::io::Result<()> {
HttpServer::new(
|| App::new().service(
web::resource("/{id}/{name}/index.html").to(index)))
.bind("127.0.0.1:8080")?
.run()
}
More examples
- Basics
- Stateful
- Multipart streams
- Simple websocket
- Tera / Askama templates
- Diesel integration
- r2d2
- SSL / HTTP/2.0
- Tcp/Websocket chat
- Json
You may consider checking out this directory for more examples.
Benchmarks
License
This project is licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Code of Conduct
Contribution to the actix-web crate is organized under the terms of the Contributor Covenant, the maintainer of actix-web, @fafhrd91, promises to intervene to uphold that code of conduct.