diff --git a/CHANGES.md b/CHANGES.md index e44f5dc3c..13eeb67d7 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,7 +1,9 @@ # Changes -## [1.0.0-alpha.1] - 2019-03-x +## [1.0.0-alpha.1] - 2019-03-28 ### Changed +* Complete architecture re-design. + * Return 405 response if no matching route found within resource #538 diff --git a/Cargo.toml b/Cargo.toml index 5a75e9ac6..f0bcabee0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,7 +4,7 @@ version = "1.0.0-alpha.1" authors = ["Nikolay Kim "] description = "Actix web is a simple, pragmatic and extremely fast web framework for Rust." readme = "README.md" -keywords = ["http", "web", "framework", "async", "futures"] +keywords = ["actix", "http", "web", "framework", "async"] homepage = "https://actix.rs" repository = "https://github.com/actix/actix-web.git" documentation = "https://docs.rs/actix-web/" @@ -17,7 +17,6 @@ edition = "2018" [badges] travis-ci = { repository = "actix/actix-web", branch = "master" } -appveyor = { repository = "fafhrd91/actix-web-hdy9d" } codecov = { repository = "actix/actix-web", branch = "master", service = "github" } [lib] @@ -71,12 +70,12 @@ actix-service = "0.3.4" actix-utils = "0.3.4" actix-router = "0.1.0" actix-rt = "0.2.2" -actix-web-codegen = { path="actix-web-codegen" } -actix-http = { path = "actix-http", features=["fail"] } +actix-web-codegen = "0.1.0-alpha.1" +actix-http = { version = "0.1.0-alpha.1", features=["fail"] } actix-server = "0.4.1" actix-server-config = "0.1.0" actix-threadpool = "0.1.0" -awc = { path = "awc", optional = true } +awc = { version = "0.1.0-alpha.1", optional = true } bytes = "0.4" derive_more = "0.14" @@ -104,14 +103,14 @@ openssl = { version="0.10", optional = true } # rustls = { version = "^0.15", optional = true } [dev-dependencies] -actix-http = { path = "actix-http", features=["ssl", "brotli", "flate2-zlib"] } -actix-http-test = { path = "test-server", features=["ssl"] } +actix-http = { version = "0.1.0-alpha.1", features=["ssl", "brotli", "flate2-zlib"] } +actix-http-test = { version = "0.1.0-alpha.1", features=["ssl"] } rand = "0.6" env_logger = "0.6" serde_derive = "1.0" tokio-timer = "0.2.8" -brotli2 = { version="^0.3.2" } -flate2 = { version="^1.0.2" } +brotli2 = "^0.3.2" +flate2 = "^1.0.2" [profile.release] lto = true diff --git a/README.md b/README.md index ce9efbb71..35b886adf 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Actix web [![Build Status](https://travis-ci.org/actix/actix-web.svg?branch=master)](https://travis-ci.org/actix/actix-web) [![Build status](https://ci.appveyor.com/api/projects/status/kkdb4yce7qhm5w85/branch/master?svg=true)](https://ci.appveyor.com/project/fafhrd91/actix-web-hdy9d/branch/master) [![codecov](https://codecov.io/gh/actix/actix-web/branch/master/graph/badge.svg)](https://codecov.io/gh/actix/actix-web) [![crates.io](https://meritbadge.herokuapp.com/actix-web)](https://crates.io/crates/actix-web) [![Join the chat at https://gitter.im/actix/actix](https://badges.gitter.im/actix/actix.svg)](https://gitter.im/actix/actix?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) +# Actix web [![Build Status](https://travis-ci.org/actix/actix-web.svg?branch=master)](https://travis-ci.org/actix/actix-web) [![codecov](https://codecov.io/gh/actix/actix-web/branch/master/graph/badge.svg)](https://codecov.io/gh/actix/actix-web) [![crates.io](https://meritbadge.herokuapp.com/actix-web)](https://crates.io/crates/actix-web) [![Join the chat at https://gitter.im/actix/actix](https://badges.gitter.im/actix/actix.svg)](https://gitter.im/actix/actix?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) Actix web is a simple, pragmatic and extremely fast web framework for Rust. @@ -10,11 +10,10 @@ Actix web is a simple, pragmatic and extremely fast web framework for Rust. * Configurable [request routing](https://actix.rs/docs/url-dispatch/) * Multipart streams * Static assets -* SSL support with OpenSSL or `native-tls` +* SSL support with OpenSSL or native-tls * Middlewares ([Logger, Session, CORS, CSRF, etc](https://actix.rs/docs/middleware/)) * Includes an asynchronous [HTTP client](https://actix.rs/actix-web/actix_web/client/index.html) * Supports [Actix actor framework](https://github.com/actix/actix) -* Experimental [Async/Await](https://github.com/mehcode/actix-web-async-await) support. ## Documentation & community resources @@ -36,8 +35,8 @@ fn index(info: web::Path<(u32, String)>) -> impl Responder { fn main() -> std::io::Result<()> { HttpServer::new( - || App::new() - .service(web::resource("/{id}/{name}/index.html") + || App::new().service( + web::resource("/{id}/{name}/index.html") .route(web::get().to(index))) .bind("127.0.0.1:8080")? .run(); diff --git a/actix-files/CHANGES.md b/actix-files/CHANGES.md index b93e282ac..95ec1c35f 100644 --- a/actix-files/CHANGES.md +++ b/actix-files/CHANGES.md @@ -1,5 +1,5 @@ # Changes -## [0.1.0] - 2018-10-x +## [0.1.0-alpha.1] - 2019-03-28 * Initial impl diff --git a/actix-files/Cargo.toml b/actix-files/Cargo.toml index ba8fbb6c2..d6ae67540 100644 --- a/actix-files/Cargo.toml +++ b/actix-files/Cargo.toml @@ -2,7 +2,7 @@ name = "actix-files" version = "0.1.0-alpha.1" authors = ["Nikolay Kim "] -description = "Static files support for Actix web." +description = "Static files support for actix web." readme = "README.md" keywords = ["actix", "http", "async", "futures"] homepage = "https://actix.rs" @@ -18,13 +18,13 @@ name = "actix_files" path = "src/lib.rs" [dependencies] -actix-web = { path=".." } -actix-http = { path="../actix-http" } +actix-web = "1.0.0-alpha.1" +actix-http = "0.1.0-alpha.1" actix-service = "0.3.3" bitflags = "1" bytes = "0.4" -futures = "0.1" +futures = "0.1.25" derive_more = "0.14" log = "0.4" mime = "0.3" @@ -33,4 +33,4 @@ percent-encoding = "1.0" v_htmlescape = "0.4" [dev-dependencies] -actix-web = { path="..", features=["ssl"] } +actix-web = { version = "1.0.0-alpha.1", features=["ssl"] } diff --git a/actix-files/README.md b/actix-files/README.md index c7e195de9..5b133f57e 100644 --- a/actix-files/README.md +++ b/actix-files/README.md @@ -1,82 +1 @@ -# Actix web [![Build Status](https://travis-ci.org/actix/actix-web.svg?branch=master)](https://travis-ci.org/actix/actix-web) [![Build status](https://ci.appveyor.com/api/projects/status/kkdb4yce7qhm5w85/branch/master?svg=true)](https://ci.appveyor.com/project/fafhrd91/actix-web-hdy9d/branch/master) [![codecov](https://codecov.io/gh/actix/actix-web/branch/master/graph/badge.svg)](https://codecov.io/gh/actix/actix-web) [![crates.io](https://meritbadge.herokuapp.com/actix-web)](https://crates.io/crates/actix-web) [![Join the chat at https://gitter.im/actix/actix](https://badges.gitter.im/actix/actix.svg)](https://gitter.im/actix/actix?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) - -Actix web is a simple, pragmatic and extremely fast web framework for Rust. - -* Supported *HTTP/1.x* and [*HTTP/2.0*](https://actix.rs/docs/http2/) protocols -* Streaming and pipelining -* Keep-alive and slow requests handling -* Client/server [WebSockets](https://actix.rs/docs/websockets/) support -* Transparent content compression/decompression (br, gzip, deflate) -* Configurable [request routing](https://actix.rs/docs/url-dispatch/) -* Multipart streams -* Static assets -* SSL support with OpenSSL or `native-tls` -* Middlewares ([Logger, Session, CORS, CSRF, etc](https://actix.rs/docs/middleware/)) -* Includes an asynchronous [HTTP client](https://actix.rs/actix-web/actix_web/client/index.html) -* Built on top of [Actix actor framework](https://github.com/actix/actix) -* Experimental [Async/Await](https://github.com/mehcode/actix-web-async-await) support. - -## Documentation & community resources - -* [User Guide](https://actix.rs/docs/) -* [API Documentation (Development)](https://actix.rs/actix-web/actix_web/) -* [API Documentation (Releases)](https://actix.rs/api/actix-web/stable/actix_web/) -* [Chat on gitter](https://gitter.im/actix/actix) -* Cargo package: [actix-web](https://crates.io/crates/actix-web) -* Minimum supported Rust version: 1.31 or later - -## Example - -```rust -extern crate actix_web; -use actix_web::{http, server, App, Path, Responder}; - -fn index(info: Path<(u32, String)>) -> impl Responder { - format!("Hello {}! id:{}", info.1, info.0) -} - -fn main() { - server::new( - || App::new() - .route("/{id}/{name}/index.html", http::Method::GET, index)) - .bind("127.0.0.1:8080").unwrap() - .run(); -} -``` - -### More examples - -* [Basics](https://github.com/actix/examples/tree/master/basics/) -* [Stateful](https://github.com/actix/examples/tree/master/state/) -* [Protobuf support](https://github.com/actix/examples/tree/master/protobuf/) -* [Multipart streams](https://github.com/actix/examples/tree/master/multipart/) -* [Simple websocket](https://github.com/actix/examples/tree/master/websocket/) -* [Tera](https://github.com/actix/examples/tree/master/template_tera/) / - [Askama](https://github.com/actix/examples/tree/master/template_askama/) templates -* [Diesel integration](https://github.com/actix/examples/tree/master/diesel/) -* [r2d2](https://github.com/actix/examples/tree/master/r2d2/) -* [SSL / HTTP/2.0](https://github.com/actix/examples/tree/master/tls/) -* [Tcp/Websocket chat](https://github.com/actix/examples/tree/master/websocket-chat/) -* [Json](https://github.com/actix/examples/tree/master/json/) - -You may consider checking out -[this directory](https://github.com/actix/examples/tree/master/) for more examples. - -## Benchmarks - -* [TechEmpower Framework Benchmark](https://www.techempower.com/benchmarks/#section=data-r16&hw=ph&test=plaintext) - -## License - -This project is licensed under either of - -* Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0)) -* MIT license ([LICENSE-MIT](LICENSE-MIT) or [http://opensource.org/licenses/MIT](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. +# Static files support for actix web [![Build Status](https://travis-ci.org/actix/actix-web.svg?branch=master)](https://travis-ci.org/actix/actix-web) [![codecov](https://codecov.io/gh/actix/actix-web/branch/master/graph/badge.svg)](https://codecov.io/gh/actix/actix-web) [![crates.io](https://meritbadge.herokuapp.com/actix-files)](https://crates.io/crates/actix-files) [![Join the chat at https://gitter.im/actix/actix](https://badges.gitter.im/actix/actix.svg)](https://gitter.im/actix/actix?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) diff --git a/actix-http/Cargo.toml b/actix-http/Cargo.toml index 5862ac846..07f712863 100644 --- a/actix-http/Cargo.toml +++ b/actix-http/Cargo.toml @@ -98,7 +98,7 @@ openssl = { version="0.10", optional = true } actix-rt = "0.2.2" actix-server = { version = "0.4.0", features=["ssl"] } actix-connect = { version = "0.1.0", features=["ssl"] } -actix-http-test = { path="../test-server", features=["ssl"] } +actix-http-test = { version = "0.1.0-alpha.1", features=["ssl"] } env_logger = "0.6" serde_derive = "1.0" diff --git a/actix-session/CHANGES.md b/actix-session/CHANGES.md new file mode 100644 index 000000000..95ec1c35f --- /dev/null +++ b/actix-session/CHANGES.md @@ -0,0 +1,5 @@ +# Changes + +## [0.1.0-alpha.1] - 2019-03-28 + +* Initial impl diff --git a/actix-session/Cargo.toml b/actix-session/Cargo.toml index 3adcc8f53..a2b8e0e15 100644 --- a/actix-session/Cargo.toml +++ b/actix-session/Cargo.toml @@ -24,16 +24,16 @@ default = ["cookie-session"] cookie-session = ["cookie/secure"] [dependencies] -actix-web = { path=".." } +actix-web = "1.0.0-alpha.1" actix-service = "0.3.3" bytes = "0.4" cookie = { version="0.11", features=["percent-encode"], optional=true } derive_more = "0.14" -futures = "0.1" +futures = "0.1.25" hashbrown = "0.1.8" serde = "1.0" serde_json = "1.0" time = "0.1" [dev-dependencies] -actix-rt = "0.2.1" +actix-rt = "0.2.2" diff --git a/actix-session/README.md b/actix-session/README.md new file mode 100644 index 000000000..504fe150c --- /dev/null +++ b/actix-session/README.md @@ -0,0 +1 @@ +# Session for actix web framework [![Build Status](https://travis-ci.org/actix/actix-web.svg?branch=master)](https://travis-ci.org/actix/actix-web) [![codecov](https://codecov.io/gh/actix/actix-web/branch/master/graph/badge.svg)](https://codecov.io/gh/actix/actix-web) [![crates.io](https://meritbadge.herokuapp.com/actix-session)](https://crates.io/crates/actix-session) [![Join the chat at https://gitter.im/actix/actix](https://badges.gitter.im/actix/actix.svg)](https://gitter.im/actix/actix?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) diff --git a/actix-web-actors/CHANGES.md b/actix-web-actors/CHANGES.md new file mode 100644 index 000000000..95ec1c35f --- /dev/null +++ b/actix-web-actors/CHANGES.md @@ -0,0 +1,5 @@ +# Changes + +## [0.1.0-alpha.1] - 2019-03-28 + +* Initial impl diff --git a/actix-web-actors/Cargo.toml b/actix-web-actors/Cargo.toml index 95b726619..c0ef89fac 100644 --- a/actix-web-actors/Cargo.toml +++ b/actix-web-actors/Cargo.toml @@ -1,10 +1,10 @@ [package] name = "actix-web-actors" -version = "0.1.0-alpha.1" +version = "1.0.0-alpha.1" authors = ["Nikolay Kim "] description = "Actix actors support for actix web framework." readme = "README.md" -keywords = ["http", "web", "framework", "async", "futures"] +keywords = ["actix", "http", "web", "framework", "async"] homepage = "https://actix.rs" repository = "https://github.com/actix/actix-web.git" documentation = "https://docs.rs/actix-web-actors/" @@ -18,14 +18,14 @@ name = "actix_web_actors" path = "src/lib.rs" [dependencies] -actix-web = { path=".." } -actix = { git = "https://github.com/actix/actix.git" } -actix-http = { path = "../actix-http/" } -actix-codec = "0.1.1" +actix = "0.8.0-alpha.1" +actix-web = "1.0.0-alpha.1" +actix-http = "0.1.0-alpha.1" +actix-codec = "0.1.2" bytes = "0.4" -futures = "0.1" +futures = "0.1.25" [dev-dependencies] env_logger = "0.6" -actix-http = { path = "../actix-http/", features=["ssl"] } -actix-http-test = { path = "../test-server/", features=["ssl"] } +actix-http = { version = "0.1.0-alpha.1", features=["ssl"] } +actix-http-test = { version = "0.1.0-alpha.1", features=["ssl"] } diff --git a/actix-web-actors/README.md b/actix-web-actors/README.md new file mode 100644 index 000000000..c70990385 --- /dev/null +++ b/actix-web-actors/README.md @@ -0,0 +1 @@ +Actix actors support for actix web framework [![Build Status](https://travis-ci.org/actix/actix-web.svg?branch=master)](https://travis-ci.org/actix/actix-web) [![codecov](https://codecov.io/gh/actix/actix-web/branch/master/graph/badge.svg)](https://codecov.io/gh/actix/actix-web) [![crates.io](https://meritbadge.herokuapp.com/actix-web-actors)](https://crates.io/crates/actix-web-actors) [![Join the chat at https://gitter.im/actix/actix](https://badges.gitter.im/actix/actix.svg)](https://gitter.im/actix/actix?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) diff --git a/actix-web-codegen/CHANGES.md b/actix-web-codegen/CHANGES.md new file mode 100644 index 000000000..95ec1c35f --- /dev/null +++ b/actix-web-codegen/CHANGES.md @@ -0,0 +1,5 @@ +# Changes + +## [0.1.0-alpha.1] - 2019-03-28 + +* Initial impl diff --git a/actix-web-codegen/Cargo.toml b/actix-web-codegen/Cargo.toml index 3785acb32..8c9ce00c8 100644 --- a/actix-web-codegen/Cargo.toml +++ b/actix-web-codegen/Cargo.toml @@ -1,7 +1,8 @@ [package] name = "actix-web-codegen" -description = "Actix web codegen macros" version = "0.1.0-alpha.1" +description = "Actix web proc macros" +readme = "README.md" authors = ["Nikolay Kim "] license = "MIT/Apache-2.0" edition = "2018" @@ -16,5 +17,5 @@ syn = { version = "0.15", features = ["full", "parsing"] } [dev-dependencies] actix-web = { path = ".." } -actix-http = { path = "../actix-http/", features=["ssl"] } -actix-http-test = { path = "../test-server/", features=["ssl"] } +actix-http = { version = "0.1.0-alpha.1", features=["ssl"] } +actix-http-test = { version = "0.1.0-alpha.1", features=["ssl"] } diff --git a/actix-web-codegen/README.md b/actix-web-codegen/README.md new file mode 100644 index 000000000..c44a5fc7f --- /dev/null +++ b/actix-web-codegen/README.md @@ -0,0 +1 @@ +# Macros for actix-web framework [![Build Status](https://travis-ci.org/actix/actix-web.svg?branch=master)](https://travis-ci.org/actix/actix-web) [![codecov](https://codecov.io/gh/actix/actix-web/branch/master/graph/badge.svg)](https://codecov.io/gh/actix/actix-web) [![crates.io](https://meritbadge.herokuapp.com/actix-web-codegen)](https://crates.io/crates/actix-web-codegen) [![Join the chat at https://gitter.im/actix/actix](https://badges.gitter.im/actix/actix.svg)](https://gitter.im/actix/actix?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) diff --git a/awc/CHANGES.md b/awc/CHANGES.md new file mode 100644 index 000000000..95ec1c35f --- /dev/null +++ b/awc/CHANGES.md @@ -0,0 +1,5 @@ +# Changes + +## [0.1.0-alpha.1] - 2019-03-28 + +* Initial impl diff --git a/awc/Cargo.toml b/awc/Cargo.toml index c915475f8..65724dd77 100644 --- a/awc/Cargo.toml +++ b/awc/Cargo.toml @@ -2,9 +2,9 @@ name = "awc" version = "0.1.0-alpha.1" authors = ["Nikolay Kim "] -description = "Actix web client." +description = "Actix http client." readme = "README.md" -keywords = ["http", "web", "framework", "async", "futures"] +keywords = ["actix", "http", "framework", "async", "web"] homepage = "https://actix.rs" repository = "https://github.com/actix/actix-web.git" documentation = "https://docs.rs/awc/" @@ -41,11 +41,11 @@ flate2-rust = ["actix-http/flate2-rust"] [dependencies] actix-codec = "0.1.1" actix-service = "0.3.4" -actix-http = { path = "../actix-http/" } +actix-http = "0.1.0-alpha.1" base64 = "0.10.1" bytes = "0.4" derive_more = "0.14" -futures = "0.1" +futures = "0.1.25" log =" 0.4" percent-encoding = "1.0" rand = "0.6" @@ -57,14 +57,14 @@ cookie = { version="0.11", features=["percent-encode"], optional = true } openssl = { version="0.10", optional = true } [dev-dependencies] -actix-rt = "0.2.1" -actix-web = { path = "..", features=["ssl"] } -actix-http = { path = "../actix-http/", features=["ssl"] } -actix-http-test = { path = "../test-server/", features=["ssl"] } +actix-rt = "0.2.2" +actix-web = { version = "1.0.0-alpha.1", features=["ssl"] } +actix-http = { version = "0.1.0-alpha.1", features=["ssl"] } +actix-http-test = { version = "0.1.0-alpha.1", features=["ssl"] } actix-utils = "0.3.4" actix-server = { version = "0.4.0", features=["ssl"] } -brotli2 = { version="^0.3.2" } -flate2 = { version="^1.0.2" } +brotli2 = { version="0.3.2" } +flate2 = { version="1.0.2" } env_logger = "0.6" mime = "0.3" rand = "0.6" diff --git a/awc/README.md b/awc/README.md new file mode 100644 index 000000000..bb64559c1 --- /dev/null +++ b/awc/README.md @@ -0,0 +1 @@ +# Actix http client [![Build Status](https://travis-ci.org/actix/actix-web.svg?branch=master)](https://travis-ci.org/actix/actix-web) [![codecov](https://codecov.io/gh/actix/actix-web/branch/master/graph/badge.svg)](https://codecov.io/gh/actix/actix-web) [![crates.io](https://meritbadge.herokuapp.com/awc)](https://crates.io/crates/awc) [![Join the chat at https://gitter.im/actix/actix](https://badges.gitter.im/actix/actix.svg)](https://gitter.im/actix/actix?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) diff --git a/test-server/CHANGES.md b/test-server/CHANGES.md new file mode 100644 index 000000000..95ec1c35f --- /dev/null +++ b/test-server/CHANGES.md @@ -0,0 +1,5 @@ +# Changes + +## [0.1.0-alpha.1] - 2019-03-28 + +* Initial impl diff --git a/test-server/Cargo.toml b/test-server/Cargo.toml index 6959adbe5..b6bbcf16b 100644 --- a/test-server/Cargo.toml +++ b/test-server/Cargo.toml @@ -35,11 +35,11 @@ ssl = ["openssl", "actix-http/ssl", "actix-server/ssl", "awc/ssl"] [dependencies] actix-codec = "0.1.1" actix-rt = "0.2.1" -actix-http = { path="../actix-http" } +actix-http = "0.1.0-alpha.1" actix-service = "0.3.4" actix-server = "0.4.0" actix-utils = "0.3.4" -awc = { path = "../awc" } +awc = "0.1.0-alpha.1" base64 = "0.10" bytes = "0.4" @@ -61,4 +61,4 @@ tokio-timer = "0.2" openssl = { version="0.10", optional = true } [dev-dependencies] -actix-web = { path=".." } +actix-web = "1.0.0-alpha.1" diff --git a/test-server/README.md b/test-server/README.md new file mode 100644 index 000000000..596dddf87 --- /dev/null +++ b/test-server/README.md @@ -0,0 +1 @@ +# Actix http test server [![Build Status](https://travis-ci.org/actix/actix-web.svg?branch=master)](https://travis-ci.org/actix/actix-web) [![codecov](https://codecov.io/gh/actix/actix-web/branch/master/graph/badge.svg)](https://codecov.io/gh/actix/actix-web) [![crates.io](https://meritbadge.herokuapp.com/actix-http-test)](https://crates.io/crates/actix-http-test) [![Join the chat at https://gitter.im/actix/actix](https://badges.gitter.im/actix/actix.svg)](https://gitter.im/actix/actix?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)