1
0
Fork 0
mirror of https://github.com/actix/actix-web.git synced 2024-07-02 03:55:48 +00:00
Actix Web is a powerful, pragmatic, and extremely fast web framework for Rust.
Go to file
Aaron Hill 3033f187d2
Enforce safety of downcast_ref at compile time. (#1326)
* Enforce safety of `downcast_ref` at compile time.

The safety of `downcast_ref` requires that `__private_get_type_id__` not
be overriden by callers, since the returned `TypeId` is used to check if
the cast is safe. However, all trait methods in Rust are public, so
users can override `__private_get_type_id__` despite it being
`#[doc(hidden)]`.

This commit makes `__private_get_type_id__` return a type with a private
constructor, ensuring that the only possible implementation is the
default implementation. A more detailed explanation is provided in the
comments added to the file.

Note that the standard library was affected by this type of issue with
the `Error::type_id` function: see https://blog.rust-lang.org/2019/05/14/Rust-1.34.2.html#whats-in-1.34.2-stable

Co-authored-by: Yuki Okushi <huyuumi.dev@gmail.com>
2020-01-30 23:43:35 +09:00
.github Don't use cache in Windows CI (#1327) 2020-01-29 09:00:04 +09:00
actix-cors allow to specify multi pattern for resources 2019-12-25 20:14:44 +04:00
actix-files Fixed documentation typo for actix-files (#1278) 2020-01-15 11:09:58 -08:00
actix-framed prep actix-framed release 2019-12-25 20:17:22 +04:00
actix-http Enforce safety of downcast_ref at compile time. (#1326) 2020-01-30 23:43:35 +09:00
actix-identity Upgrade time to 0.2.5 (#1254) 2020-01-28 20:44:22 +09:00
actix-multipart Upgrade time to 0.2.5 (#1254) 2020-01-28 20:44:22 +09:00
actix-session Long lasting auto-prolonged session (#1292) 2020-01-29 10:26:39 +09:00
actix-web-actors update changes 2019-12-20 17:59:34 +06:00
actix-web-codegen Add ability to name a handler function as 'config' (#1290) 2020-01-26 07:22:40 +09:00
awc Rename HttpServer::start() to HttpServer::run() 2019-12-22 17:12:22 +04:00
benches Add benchmark for full stack request lifecycle (#1298) 2020-01-25 08:05:25 +09:00
examples Rename HttpServer::start() to HttpServer::run() 2019-12-22 17:12:22 +04:00
src Upgrade time to 0.2.5 (#1254) 2020-01-28 20:44:22 +09:00
test-server Upgrade time to 0.2.5 (#1254) 2020-01-28 20:44:22 +09:00
tests Rename HttpServer::start() to HttpServer::run() 2019-12-22 17:12:22 +04: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 use actix_rt::test for test setup 2019-11-26 11:25:50 +06:00
Cargo.toml Upgrade time to 0.2.5 (#1254) 2020-01-28 20:44:22 +09:00
CHANGES.md Upgrade time to 0.2.5 (#1254) 2020-01-28 20:44:22 +09:00
CODE_OF_CONDUCT.md code of conduct 2018-01-21 15:29:02 -08:00
codecov.yml Remove codecoverage for tests and examples (#1299) 2020-01-24 05:10:02 +09: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 allow explicit SameSite=None cookies (#1282) 2020-01-23 10:08:23 +09:00
README.md Add dependencies instruction (#1281) 2020-01-16 23:17:17 +09:00
rustfmt.toml copy actix-web2 2019-03-01 22:51:32 -08:00

Actix web

Actix web is a small, pragmatic, and extremely fast rust web framework

Build Status codecov crates.io Join the chat at https://gitter.im/actix/actix Documentation Download Version License

Website | Chat | Examples


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

Example

Dependencies:

[dependencies]
actix-web = "2"
actix-rt = "1"

Code:

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

#[get("/{id}/{name}/index.html")]
async fn index(info: web::Path<(u32, String)>) -> impl Responder {
    format!("Hello {}! id:{}", info.1, info.0)
}

#[actix_rt::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

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.