Go to file
Matt Gathu f615e41b78 Fix cyclic references in ResourceMap
What
--
Refactor `ResourceMap` struct to remove hard references to parent ResourceMap.

How
--
Assuming the child resource maps are always nested within a parent, then
we can always assume the parent will be there and use a weak reference to
refer back to it.

> A Weak pointer is useful for keeping a temporary reference to the allocation managed by Rc without preventing its inner value from being dropped. It is also used to prevent circular references between Rc pointers, since mutual owning references would never allow either Rc to be dropped. For example, a tree could have strong Rc pointers from parent nodes to children, and Weak pointers from children back to their parents.

[ref](https://doc.rust-lang.org/nightly/std/rc/struct.Weak.html)
2020-09-25 17:43:22 +02:00
.github Use action to upload docs 2020-08-13 16:04:50 +09:00
actix-files split up files lib (#1685) 2020-09-20 23:18:25 +01:00
actix-http eemove non-relevant comment from actix-http README.md (#1701) 2020-09-20 17:21:53 +01:00
actix-multipart Fix Multipart consuming payload before header checks (#1704) 2020-09-25 14:50:37 +01:00
actix-web-actors the big three point oh (#1668) 2020-09-11 13:50:10 +01:00
actix-web-codegen prepare codegen 0.4.0 release (#1702) 2020-09-24 23:54:01 +01:00
awc the big three point oh (#1668) 2020-09-11 13:50:10 +01:00
benches Fix leaks with actix_http's client (#1580) 2020-07-10 22:35:22 +01:00
docs/graphs bump connect and tls versions (#1655) 2020-09-09 09:20:54 +01:00
examples re-export actix_rt::main macro (#1559) 2020-06-18 15:45:30 +01:00
src Fix cyclic references in ResourceMap 2020-09-25 17:43:22 +02:00
test-server Add possibility to set address for test_server (#1645) 2020-09-15 12:09:16 +01:00
tests make TrailingSlash enum accessible (#1673) 2020-09-13 00:55:39 +01:00
.gitignore make TrailingSlash enum accessible (#1673) 2020-09-13 00:55:39 +01:00
CHANGES.md Add TrailingSlash::MergeOnly behavior (#1695) 2020-09-25 12:50:59 +01:00
CODE_OF_CONDUCT.md code of conduct 2018-01-21 15:29:02 -08:00
Cargo.toml update actix-http dev-dependencies (#1696) 2020-09-19 23:20:34 +09:00
LICENSE-APACHE the big three point oh (#1668) 2020-09-11 13:50:10 +01:00
LICENSE-MIT the big three point oh (#1668) 2020-09-11 13:50:10 +01:00
MIGRATION.md Add TrailingSlash::MergeOnly behavior (#1695) 2020-09-25 12:50:59 +01:00
README.md the big three point oh (#1668) 2020-09-11 13:50:10 +01:00
codecov.yml Remove codecoverage for tests and examples (#1299) 2020-01-24 05:10:02 +09:00
rust-toolchain bump MSRV to 1.42 (#1616) 2020-07-21 16:40:30 +09:00
rustfmt.toml copy actix-web2 2019-03-01 22:51:32 -08:00

README.md

Actix web

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

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

Features

Documentation

Example

Dependencies:

[dependencies]
actix-web = "3"

Code:

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

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

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

One of the fastest web frameworks available according to the TechEmpower Framework Benchmark.

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 maintainers of Actix web, promises to intervene to uphold that code of conduct.