1
0
Fork 0
mirror of https://github.com/actix/actix-web.git synced 2024-10-02 08:12:02 +00:00
Actix Web is a powerful, pragmatic, and extremely fast web framework for Rust.
Find a file
Jim Blandy c5907747ad Remove implementation of Responder for (). Fixes #1108.
Rationale:

- In Rust, one can omit a semicolon after a function's final expression to make
  its value the function's return value. It's common for people to include a
  semicolon after the last expression by mistake - common enough that the Rust
  compiler suggests removing the semicolon when there's a type mismatch between
  the function's signature and body. By implementing Responder for (), Actix makes
  this common mistake a silent error in handler functions.

- Functions returning an empty body should return HTTP status 204 ("No Content"),
  so the current Responder impl for (), which returns status 200 ("OK"), is not
  really what one wants anyway.

- It's not much of a burden to ask handlers to explicitly return
  `HttpResponse::Ok()` if that is what they want; all the examples in the
  documentation do this already.
2019-11-23 21:10:02 +06:00
actix-cors update tests to async handlers 2019-11-22 11:49:35 +06:00
actix-files update tests to async handlers 2019-11-22 11:49:35 +06:00
actix-framed migrate actix-framed 2019-11-21 16:02:17 +06:00
actix-http update tests to async handlers 2019-11-22 11:49:35 +06:00
actix-identity update tests to async handlers 2019-11-22 11:49:35 +06:00
actix-multipart migrate actix-multipart 2019-11-21 16:02:17 +06:00
actix-session update tests to async handlers 2019-11-22 11:49:35 +06:00
actix-web-actors update actix-web-actors 2019-11-14 08:58:24 +06:00
actix-web-codegen fix typos from updating to futures 0.3 2019-11-22 13:25:55 +06:00
awc update tests to async handlers 2019-11-22 11:49:35 +06:00
examples rename .to_async() to .to() 2019-11-21 21:36:35 +06:00
src Remove implementation of Responder for (). Fixes #1108. 2019-11-23 21:10:02 +06:00
test-server update tests to async handlers 2019-11-22 11:49:35 +06:00
tests rename .to_async() to .to() 2019-11-21 21:36:35 +06:00
.appveyor.yml update deps 2018-10-08 21:58:37 -07:00
.gitignore start working on guide 2017-11-27 16:41:37 -08:00
.travis.yml update travis config 2019-11-22 10:13:32 +06:00
Cargo.toml disable rustls support 2019-11-22 07:01:05 +06:00
CHANGES.md Remove implementation of Responder for (). Fixes #1108. 2019-11-23 21:10:02 +06:00
CODE_OF_CONDUCT.md code of conduct 2018-01-21 15:29:02 -08:00
LICENSE-APACHE add mit license 2017-12-17 10:08:44 -08:00
LICENSE-MIT spelling check 2018-03-24 09:35:52 +03:00
MIGRATION.md fix typos from updating to futures 0.3 2019-11-22 13:25:55 +06:00
README.md disable rustls support 2019-11-22 07:01:05 +06:00
rustfmt.toml copy actix-web2 2019-03-01 22:51:32 -08:00

Actix web Build Status codecov crates.io Join the chat at https://gitter.im/actix/actix

Actix web is a simple, pragmatic and extremely fast web framework for Rust.

Documentation & community resources

Example

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

async 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

You may consider checking out this directory for more examples.

Benchmarks

License

This project is licensed under either of

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.