mirror of
https://github.com/actix/actix-web.git
synced 2024-11-25 11:01:14 +00:00
prepare beta 2 release set (#1975)
This commit is contained in:
parent
dcad9724bc
commit
a290e58982
38 changed files with 191 additions and 234 deletions
23
CHANGES.md
23
CHANGES.md
|
@ -1,26 +1,29 @@
|
||||||
# Changes
|
# Changes
|
||||||
|
|
||||||
## Unreleased - 2021-xx-xx
|
## Unreleased - 2021-xx-xx
|
||||||
|
|
||||||
|
|
||||||
|
## 4.0.0-beta.2 - 2021-xx-xx
|
||||||
### Added
|
### Added
|
||||||
* The method `Either<web::Json<T>, web::Form<T>>::into_inner()` which returns the inner type for
|
* The method `Either<web::Json<T>, web::Form<T>>::into_inner()` which returns the inner type for
|
||||||
whichever variant was created. Also works for `Either<web::Form<T>, web::Json<T>>`. [#1894]
|
whichever variant was created. Also works for `Either<web::Form<T>, web::Json<T>>`. [#1894]
|
||||||
* Add `services!` macro for helping register multiple services to `App`. [#1933]
|
* Add `services!` macro for helping register multiple services to `App`. [#1933]
|
||||||
* Enable registering vector of same type of `HttpServiceFactory` to `App` [#1933]
|
* Enable registering a vec of services of the same type to `App` [#1933]
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
* Rework `Responder` trait to be sync and returns `Response`/`HttpResponse` directly.
|
* Rework `Responder` trait to be sync and returns `Response`/`HttpResponse` directly.
|
||||||
Making it more simple and performant. [#1891]
|
Making it simpler and more performant. [#1891]
|
||||||
* `ServiceRequest::into_parts` and `ServiceRequest::from_parts` would not fail.
|
* `ServiceRequest::into_parts` and `ServiceRequest::from_parts` can no longer fail. [#1893]
|
||||||
`ServiceRequest::from_request` would not fail and no payload would be generated [#1893]
|
* `ServiceRequest::from_request` can no longer fail. [#1893]
|
||||||
* Our `Either` type now uses `Left`/`Right` variants (instead of `A`/`B`) [#1894]
|
* Our `Either` type now uses `Left`/`Right` variants (instead of `A`/`B`) [#1894]
|
||||||
* `test::{call_service, read_response, read_response_json, send_request}` take `&Service`
|
* `test::{call_service, read_response, read_response_json, send_request}` take `&Service`
|
||||||
in argument [#1905]
|
in argument [#1905]
|
||||||
* `App::wrap_fn`, `Resource::wrap_fn` and `Scope::wrap_fn` would give `&Service` in closure
|
* `App::wrap_fn`, `Resource::wrap_fn` and `Scope::wrap_fn` provide `&Service` in closure
|
||||||
argument [#1905]
|
argument. [#1905]
|
||||||
* `web::block` accept any closure that has an output bound to `Send` and `'static`. [#1957]
|
* `web::block` no longer requires the output is a Result. [#1957]
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
* Multiple calls `App::data` with the same type now keeps the latest call's data. [#1906]
|
* Multiple calls to `App::data` with the same type now keeps the latest call's data. [#1906]
|
||||||
|
|
||||||
### Removed
|
### Removed
|
||||||
* Public field of `web::Path` has been made private. [#1894]
|
* Public field of `web::Path` has been made private. [#1894]
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "actix-web"
|
name = "actix-web"
|
||||||
version = "4.0.0-beta.1"
|
version = "4.0.0-beta.2"
|
||||||
authors = ["Nikolay Kim <fafhrd91@gmail.com>"]
|
authors = ["Nikolay Kim <fafhrd91@gmail.com>"]
|
||||||
description = "Actix Web is a powerful, pragmatic, and extremely fast web framework for Rust"
|
description = "Actix Web is a powerful, pragmatic, and extremely fast web framework for Rust"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
|
@ -83,8 +83,8 @@ actix-utils = "3.0.0-beta.2"
|
||||||
actix-tls = { version = "3.0.0-beta.3", default-features = false, optional = true }
|
actix-tls = { version = "3.0.0-beta.3", default-features = false, optional = true }
|
||||||
|
|
||||||
actix-web-codegen = "0.4.0"
|
actix-web-codegen = "0.4.0"
|
||||||
actix-http = "3.0.0-beta.1"
|
actix-http = "3.0.0-beta.2"
|
||||||
awc = { version = "3.0.0-beta.1", default-features = false }
|
awc = { version = "3.0.0-beta.2", default-features = false }
|
||||||
|
|
||||||
ahash = "0.7"
|
ahash = "0.7"
|
||||||
bytes = "1"
|
bytes = "1"
|
||||||
|
|
|
@ -6,10 +6,10 @@
|
||||||
<p>
|
<p>
|
||||||
|
|
||||||
[![crates.io](https://img.shields.io/crates/v/actix-web?label=latest)](https://crates.io/crates/actix-web)
|
[![crates.io](https://img.shields.io/crates/v/actix-web?label=latest)](https://crates.io/crates/actix-web)
|
||||||
[![Documentation](https://docs.rs/actix-web/badge.svg?version=3.3.2)](https://docs.rs/actix-web/3.3.2)
|
[![Documentation](https://docs.rs/actix-web/badge.svg?version=4.0.0-beta.2)](https://docs.rs/actix-web/4.0.0-beta.2)
|
||||||
[![Version](https://img.shields.io/badge/rustc-1.46+-ab6000.svg)](https://blog.rust-lang.org/2020/03/12/Rust-1.46.html)
|
[![Version](https://img.shields.io/badge/rustc-1.46+-ab6000.svg)](https://blog.rust-lang.org/2020/03/12/Rust-1.46.html)
|
||||||
![License](https://img.shields.io/crates/l/actix-web.svg)
|
![MIT or Apache 2.0 licensed](https://img.shields.io/crates/l/actix-web.svg)
|
||||||
[![Dependency Status](https://deps.rs/crate/actix-web/3.3.2/status.svg)](https://deps.rs/crate/actix-web/3.3.2)
|
[![Dependency Status](https://deps.rs/crate/actix-web/4.0.0-beta.2/status.svg)](https://deps.rs/crate/actix-web/4.0.0-beta.2)
|
||||||
<br />
|
<br />
|
||||||
[![build status](https://github.com/actix/actix-web/workflows/CI%20%28Linux%29/badge.svg?branch=master&event=push)](https://github.com/actix/actix-web/actions)
|
[![build status](https://github.com/actix/actix-web/workflows/CI%20%28Linux%29/badge.svg?branch=master&event=push)](https://github.com/actix/actix-web/actions)
|
||||||
[![codecov](https://codecov.io/gh/actix/actix-web/branch/master/graph/badge.svg)](https://codecov.io/gh/actix/actix-web)
|
[![codecov](https://codecov.io/gh/actix/actix-web/branch/master/graph/badge.svg)](https://codecov.io/gh/actix/actix-web)
|
||||||
|
|
|
@ -1,12 +1,16 @@
|
||||||
# Changes
|
# Changes
|
||||||
|
|
||||||
## Unreleased - 2021-xx-xx
|
## Unreleased - 2021-xx-xx
|
||||||
|
|
||||||
|
|
||||||
|
## 0.6.0-beta.2 - 2021-02-10
|
||||||
* Fix If-Modified-Since and If-Unmodified-Since to not compare using sub-second timestamps. [#1887]
|
* Fix If-Modified-Since and If-Unmodified-Since to not compare using sub-second timestamps. [#1887]
|
||||||
* Replace `v_htmlescape` with `askama_escape`. [#1953]
|
* Replace `v_htmlescape` with `askama_escape`. [#1953]
|
||||||
|
|
||||||
[#1887]: https://github.com/actix/actix-web/pull/1887
|
[#1887]: https://github.com/actix/actix-web/pull/1887
|
||||||
[#1953]: https://github.com/actix/actix-web/pull/1953
|
[#1953]: https://github.com/actix/actix-web/pull/1953
|
||||||
|
|
||||||
|
|
||||||
## 0.6.0-beta.1 - 2021-01-07
|
## 0.6.0-beta.1 - 2021-01-07
|
||||||
* `HttpRange::parse` now has its own error type.
|
* `HttpRange::parse` now has its own error type.
|
||||||
* Update `bytes` to `1.0`. [#1813]
|
* Update `bytes` to `1.0`. [#1813]
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "actix-files"
|
name = "actix-files"
|
||||||
version = "0.6.0-beta.1"
|
version = "0.6.0-beta.2"
|
||||||
authors = ["Nikolay Kim <fafhrd91@gmail.com>"]
|
authors = ["Nikolay Kim <fafhrd91@gmail.com>"]
|
||||||
description = "Static file serving for Actix Web"
|
description = "Static file serving for Actix Web"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
|
@ -17,7 +17,7 @@ name = "actix_files"
|
||||||
path = "src/lib.rs"
|
path = "src/lib.rs"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
actix-web = { version = "4.0.0-beta.1", default-features = false }
|
actix-web = { version = "4.0.0-beta.2", default-features = false }
|
||||||
actix-service = "2.0.0-beta.4"
|
actix-service = "2.0.0-beta.4"
|
||||||
|
|
||||||
askama_escape = "0.10"
|
askama_escape = "0.10"
|
||||||
|
@ -33,4 +33,4 @@ percent-encoding = "2.1"
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
actix-rt = "2"
|
actix-rt = "2"
|
||||||
actix-web = "4.0.0-beta.1"
|
actix-web = "4.0.0-beta.2"
|
||||||
|
|
|
@ -3,6 +3,10 @@
|
||||||
## Unreleased - 2021-xx-xx
|
## Unreleased - 2021-xx-xx
|
||||||
|
|
||||||
|
|
||||||
|
## 3.0.0-beta.2 - 2021-02-10
|
||||||
|
* No notable changes.
|
||||||
|
|
||||||
|
|
||||||
## 3.0.0-beta.1 - 2021-01-07
|
## 3.0.0-beta.1 - 2021-01-07
|
||||||
* Update `bytes` to `1.0`. [#1813]
|
* Update `bytes` to `1.0`. [#1813]
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "actix-http-test"
|
name = "actix-http-test"
|
||||||
version = "3.0.0-beta.1"
|
version = "3.0.0-beta.2"
|
||||||
authors = ["Nikolay Kim <fafhrd91@gmail.com>"]
|
authors = ["Nikolay Kim <fafhrd91@gmail.com>"]
|
||||||
description = "Various helpers for Actix applications to use during testing"
|
description = "Various helpers for Actix applications to use during testing"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
|
@ -35,7 +35,7 @@ actix-tls = "3.0.0-beta.3"
|
||||||
actix-utils = "3.0.0-beta.2"
|
actix-utils = "3.0.0-beta.2"
|
||||||
actix-rt = "2"
|
actix-rt = "2"
|
||||||
actix-server = "2.0.0-beta.3"
|
actix-server = "2.0.0-beta.3"
|
||||||
awc = "3.0.0-beta.1"
|
awc = "3.0.0-beta.2"
|
||||||
|
|
||||||
base64 = "0.13"
|
base64 = "0.13"
|
||||||
bytes = "1"
|
bytes = "1"
|
||||||
|
@ -51,5 +51,5 @@ time = { version = "0.2.23", default-features = false, features = ["std"] }
|
||||||
tls-openssl = { version = "0.10.9", package = "openssl", optional = true }
|
tls-openssl = { version = "0.10.9", package = "openssl", optional = true }
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
actix-web = "4.0.0-beta.1"
|
actix-web = "4.0.0-beta.2"
|
||||||
actix-http = "3.0.0-beta.1"
|
actix-http = "3.0.0-beta.2"
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
[![crates.io](https://img.shields.io/crates/v/actix-http-test?label=latest)](https://crates.io/crates/actix-http-test)
|
[![crates.io](https://img.shields.io/crates/v/actix-http-test?label=latest)](https://crates.io/crates/actix-http-test)
|
||||||
[![Documentation](https://docs.rs/actix-http-test/badge.svg?version=2.1.0)](https://docs.rs/actix-http-test/2.1.0)
|
[![Documentation](https://docs.rs/actix-http-test/badge.svg?version=2.1.0)](https://docs.rs/actix-http-test/2.1.0)
|
||||||
![Apache 2.0 or MIT licensed](https://img.shields.io/crates/l/actix-http-test)
|
![MIT or Apache 2.0 licensed](https://img.shields.io/crates/l/actix-http-test)
|
||||||
[![Dependency Status](https://deps.rs/crate/actix-http-test/2.1.0/status.svg)](https://deps.rs/crate/actix-http-test/2.1.0)
|
[![Dependency Status](https://deps.rs/crate/actix-http-test/2.1.0/status.svg)](https://deps.rs/crate/actix-http-test/2.1.0)
|
||||||
[![Join the chat at https://gitter.im/actix/actix-web](https://badges.gitter.im/actix/actix-web.svg)](https://gitter.im/actix/actix-web?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
[![Join the chat at https://gitter.im/actix/actix-web](https://badges.gitter.im/actix/actix-web.svg)](https://gitter.im/actix/actix-web?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
# Changes
|
# Changes
|
||||||
|
|
||||||
## Unreleased - 2021-xx-xx
|
## Unreleased - 2021-xx-xx
|
||||||
|
|
||||||
|
|
||||||
|
## 3.0.0-beta.2 - 2021-02-19
|
||||||
### Added
|
### Added
|
||||||
* `IntoHeaderPair` trait that allows using typed and untyped headers in the same methods. [#1869]
|
* `IntoHeaderPair` trait that allows using typed and untyped headers in the same methods. [#1869]
|
||||||
* `ResponseBuilder::insert_header` method which allows using typed headers. [#1869]
|
* `ResponseBuilder::insert_header` method which allows using typed headers. [#1869]
|
||||||
|
@ -18,11 +21,12 @@
|
||||||
* Renamed `IntoHeaderValue::{try_into => try_into_value}` to avoid ambiguity with std
|
* Renamed `IntoHeaderValue::{try_into => try_into_value}` to avoid ambiguity with std
|
||||||
`TryInto` trait. [#1894]
|
`TryInto` trait. [#1894]
|
||||||
* `Extensions::insert` returns Option of replaced item. [#1904]
|
* `Extensions::insert` returns Option of replaced item. [#1904]
|
||||||
* Remove `HttpResponseBuilder::json2()` and make `HttpResponseBuilder::json()` take a value by
|
* Remove `HttpResponseBuilder::json2()`. [#1903]
|
||||||
reference. [#1903]
|
* Enable `HttpResponseBuilder::json()` to receive data by value and reference. [#1903]
|
||||||
* `client::error::ConnectError` Resolver variant contains `Box<dyn std::error::Error>` type [#1905]
|
* `client::error::ConnectError` Resolver variant contains `Box<dyn std::error::Error>` type. [#1905]
|
||||||
* `client::ConnectorConfig` default timeout changed to 5 seconds. [#1905]
|
* `client::ConnectorConfig` default timeout changed to 5 seconds. [#1905]
|
||||||
* Simplify `BlockingError` type to a struct. It's only triggered with blocking thread pool is dead. [#1957]
|
* Simplify `BlockingError` type to a unit struct. It's now only triggered when blocking thread pool
|
||||||
|
is dead. [#1957]
|
||||||
* `HeaderMap::len` now returns number of values instead of number of keys. [#1964]
|
* `HeaderMap::len` now returns number of values instead of number of keys. [#1964]
|
||||||
* `HeaderMap::insert` now returns iterator of removed values. [#1964]
|
* `HeaderMap::insert` now returns iterator of removed values. [#1964]
|
||||||
* `HeaderMap::remove` now returns iterator of removed values. [#1964]
|
* `HeaderMap::remove` now returns iterator of removed values. [#1964]
|
||||||
|
@ -123,15 +127,14 @@
|
||||||
* Update actix-connect and actix-tls dependencies.
|
* Update actix-connect and actix-tls dependencies.
|
||||||
|
|
||||||
|
|
||||||
## [2.0.0-beta.3] - 2020-08-14
|
## 2.0.0-beta.3 - 2020-08-14
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
* Memory leak of `client::pool::ConnectorPoolSupport`. [#1626]
|
* Memory leak of `client::pool::ConnectorPoolSupport`. [#1626]
|
||||||
|
|
||||||
[#1626]: https://github.com/actix/actix-web/pull/1626
|
[#1626]: https://github.com/actix/actix-web/pull/1626
|
||||||
|
|
||||||
|
|
||||||
## [2.0.0-beta.2] - 2020-07-21
|
## 2.0.0-beta.2 - 2020-07-21
|
||||||
### Fixed
|
### Fixed
|
||||||
* Potential UB in h1 decoder using uninitialized memory. [#1614]
|
* Potential UB in h1 decoder using uninitialized memory. [#1614]
|
||||||
|
|
||||||
|
@ -142,10 +145,8 @@
|
||||||
[#1615]: https://github.com/actix/actix-web/pull/1615
|
[#1615]: https://github.com/actix/actix-web/pull/1615
|
||||||
|
|
||||||
|
|
||||||
## [2.0.0-beta.1] - 2020-07-11
|
## 2.0.0-beta.1 - 2020-07-11
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
* Migrate cookie handling to `cookie` crate. [#1558]
|
* Migrate cookie handling to `cookie` crate. [#1558]
|
||||||
* Update `sha-1` to 0.9. [#1586]
|
* Update `sha-1` to 0.9. [#1586]
|
||||||
* Fix leak in client pool. [#1580]
|
* Fix leak in client pool. [#1580]
|
||||||
|
@ -155,33 +156,30 @@
|
||||||
[#1586]: https://github.com/actix/actix-web/pull/1586
|
[#1586]: https://github.com/actix/actix-web/pull/1586
|
||||||
[#1580]: https://github.com/actix/actix-web/pull/1580
|
[#1580]: https://github.com/actix/actix-web/pull/1580
|
||||||
|
|
||||||
## [2.0.0-alpha.4] - 2020-05-21
|
|
||||||
|
|
||||||
|
## 2.0.0-alpha.4 - 2020-05-21
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
* Bump minimum supported Rust version to 1.40
|
* Bump minimum supported Rust version to 1.40
|
||||||
* content_length function is removed, and you can set Content-Length by calling no_chunking function [#1439]
|
* content_length function is removed, and you can set Content-Length by calling
|
||||||
|
no_chunking function [#1439]
|
||||||
* `BodySize::Sized64` variant has been removed. `BodySize::Sized` now receives a
|
* `BodySize::Sized64` variant has been removed. `BodySize::Sized` now receives a
|
||||||
`u64` instead of a `usize`.
|
`u64` instead of a `usize`.
|
||||||
* Update `base64` dependency to 0.12
|
* Update `base64` dependency to 0.12
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
* Support parsing of `SameSite=None` [#1503]
|
* Support parsing of `SameSite=None` [#1503]
|
||||||
|
|
||||||
[#1439]: https://github.com/actix/actix-web/pull/1439
|
[#1439]: https://github.com/actix/actix-web/pull/1439
|
||||||
[#1503]: https://github.com/actix/actix-web/pull/1503
|
[#1503]: https://github.com/actix/actix-web/pull/1503
|
||||||
|
|
||||||
## [2.0.0-alpha.3] - 2020-05-08
|
|
||||||
|
|
||||||
|
## 2.0.0-alpha.3 - 2020-05-08
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
* Correct spelling of ConnectError::Unresolved [#1487]
|
* Correct spelling of ConnectError::Unresolved [#1487]
|
||||||
* Fix a mistake in the encoding of websocket continuation messages wherein
|
* Fix a mistake in the encoding of websocket continuation messages wherein
|
||||||
Item::FirstText and Item::FirstBinary are each encoded as the other.
|
Item::FirstText and Item::FirstBinary are each encoded as the other.
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
* Implement `std::error::Error` for our custom errors [#1422]
|
* Implement `std::error::Error` for our custom errors [#1422]
|
||||||
* Remove `failure` support for `ResponseError` since that crate
|
* Remove `failure` support for `ResponseError` since that crate
|
||||||
will be deprecated in the near future.
|
will be deprecated in the near future.
|
||||||
|
@ -189,338 +187,247 @@
|
||||||
[#1422]: https://github.com/actix/actix-web/pull/1422
|
[#1422]: https://github.com/actix/actix-web/pull/1422
|
||||||
[#1487]: https://github.com/actix/actix-web/pull/1487
|
[#1487]: https://github.com/actix/actix-web/pull/1487
|
||||||
|
|
||||||
## [2.0.0-alpha.2] - 2020-03-07
|
|
||||||
|
|
||||||
|
## 2.0.0-alpha.2 - 2020-03-07
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
* Update `actix-connect` and `actix-tls` dependency to 2.0.0-alpha.1. [#1395]
|
* Update `actix-connect` and `actix-tls` dependency to 2.0.0-alpha.1. [#1395]
|
||||||
|
* Change default initial window size and connection window size for HTTP2 to 2MB and 1MB
|
||||||
* Change default initial window size and connection window size for HTTP2 to 2MB and 1MB respectively
|
respectively to improve download speed for awc when downloading large objects. [#1394]
|
||||||
to improve download speed for awc when downloading large objects. [#1394]
|
* client::Connector accepts initial_window_size and initial_connection_window_size
|
||||||
|
HTTP2 configuration. [#1394]
|
||||||
* client::Connector accepts initial_window_size and initial_connection_window_size HTTP2 configuration. [#1394]
|
|
||||||
|
|
||||||
* client::Connector allowing to set max_http_version to limit HTTP version to be used. [#1394]
|
* client::Connector allowing to set max_http_version to limit HTTP version to be used. [#1394]
|
||||||
|
|
||||||
[#1394]: https://github.com/actix/actix-web/pull/1394
|
[#1394]: https://github.com/actix/actix-web/pull/1394
|
||||||
[#1395]: https://github.com/actix/actix-web/pull/1395
|
[#1395]: https://github.com/actix/actix-web/pull/1395
|
||||||
|
|
||||||
## [2.0.0-alpha.1] - 2020-02-27
|
|
||||||
|
|
||||||
|
## 2.0.0-alpha.1 - 2020-02-27
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
* Update the `time` dependency to 0.2.7.
|
* Update the `time` dependency to 0.2.7.
|
||||||
* Moved actors messages support from actix crate, enabled with feature `actors`.
|
* Moved actors messages support from actix crate, enabled with feature `actors`.
|
||||||
* Breaking change: trait MessageBody requires Unpin and accepting Pin<&mut Self> instead of &mut self in the poll_next().
|
* Breaking change: trait MessageBody requires Unpin and accepting `Pin<&mut Self>` instead of
|
||||||
|
`&mut self` in the poll_next().
|
||||||
* MessageBody is not implemented for &'static [u8] anymore.
|
* MessageBody is not implemented for &'static [u8] anymore.
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
* Allow `SameSite=None` cookies to be sent in a response.
|
* Allow `SameSite=None` cookies to be sent in a response.
|
||||||
|
|
||||||
## [1.0.1] - 2019-12-20
|
|
||||||
|
|
||||||
|
## 1.0.1 - 2019-12-20
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
* Poll upgrade service's readiness from HTTP service handlers
|
* Poll upgrade service's readiness from HTTP service handlers
|
||||||
|
|
||||||
* Replace brotli with brotli2 #1224
|
* Replace brotli with brotli2 #1224
|
||||||
|
|
||||||
## [1.0.0] - 2019-12-13
|
|
||||||
|
|
||||||
|
## 1.0.0 - 2019-12-13
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
* Add websockets continuation frame support
|
* Add websockets continuation frame support
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
* Replace `flate2-xxx` features with `compress`
|
* Replace `flate2-xxx` features with `compress`
|
||||||
|
|
||||||
## [1.0.0-alpha.5] - 2019-12-09
|
|
||||||
|
|
||||||
|
## 1.0.0-alpha.5 - 2019-12-09
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
* Check `Upgrade` service readiness before calling it
|
* Check `Upgrade` service readiness before calling it
|
||||||
|
* Fix buffer remaining capacity calculation
|
||||||
* Fix buffer remaining capacity calcualtion
|
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
* Websockets: Ping and Pong should have binary data #1049
|
* Websockets: Ping and Pong should have binary data #1049
|
||||||
|
|
||||||
## [1.0.0-alpha.4] - 2019-12-08
|
|
||||||
|
|
||||||
|
## 1.0.0-alpha.4 - 2019-12-08
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
* Add impl ResponseBuilder for Error
|
* Add impl ResponseBuilder for Error
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
* Use rust based brotli compression library
|
* Use rust based brotli compression library
|
||||||
|
|
||||||
## [1.0.0-alpha.3] - 2019-12-07
|
## 1.0.0-alpha.3 - 2019-12-07
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
* Migrate to tokio 0.2
|
* Migrate to tokio 0.2
|
||||||
|
|
||||||
* Migrate to `std::future`
|
* Migrate to `std::future`
|
||||||
|
|
||||||
|
|
||||||
## [0.2.11] - 2019-11-06
|
## 0.2.11 - 2019-11-06
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
* Add support for serde_json::Value to be passed as argument to ResponseBuilder.body()
|
* Add support for serde_json::Value to be passed as argument to ResponseBuilder.body()
|
||||||
|
* Add an additional `filename*` param in the `Content-Disposition` header of
|
||||||
* Add an additional `filename*` param in the `Content-Disposition` header of `actix_files::NamedFile` to be more compatible. (#1151)
|
`actix_files::NamedFile` to be more compatible. (#1151)
|
||||||
|
|
||||||
* Allow to use `std::convert::Infallible` as `actix_http::error::Error`
|
* Allow to use `std::convert::Infallible` as `actix_http::error::Error`
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
* To be compatible with non-English error responses, `ResponseError` rendered with `text/plain;
|
||||||
|
charset=utf-8` header [#1118]
|
||||||
|
|
||||||
* To be compatible with non-English error responses, `ResponseError` rendered with `text/plain; charset=utf-8` header #1118
|
[#1878]: https://github.com/actix/actix-web/pull/1878
|
||||||
|
|
||||||
|
|
||||||
## [0.2.10] - 2019-09-11
|
## 0.2.10 - 2019-09-11
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
* Add support for sending HTTP requests with `Rc<RequestHead>` in addition to sending HTTP requests
|
||||||
* Add support for sending HTTP requests with `Rc<RequestHead>` in addition to sending HTTP requests with `RequestHead`
|
with `RequestHead`
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
* h2 will use error response #1080
|
* h2 will use error response #1080
|
||||||
|
|
||||||
* on_connect result isn't added to request extensions for http2 requests #1009
|
* on_connect result isn't added to request extensions for http2 requests #1009
|
||||||
|
|
||||||
|
|
||||||
## [0.2.9] - 2019-08-13
|
## 0.2.9 - 2019-08-13
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
* Dropped the `byteorder`-dependency in favor of `stdlib`-implementation
|
* Dropped the `byteorder`-dependency in favor of `stdlib`-implementation
|
||||||
|
|
||||||
* Update percent-encoding to 2.1
|
* Update percent-encoding to 2.1
|
||||||
|
|
||||||
* Update serde_urlencoded to 0.6.1
|
* Update serde_urlencoded to 0.6.1
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
* Fixed a panic in the HTTP2 handshake in client HTTP requests (#1031)
|
* Fixed a panic in the HTTP2 handshake in client HTTP requests (#1031)
|
||||||
|
|
||||||
|
|
||||||
## [0.2.8] - 2019-08-01
|
## 0.2.8 - 2019-08-01
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
* Add `rustls` support
|
* Add `rustls` support
|
||||||
|
|
||||||
* Add `Clone` impl for `HeaderMap`
|
* Add `Clone` impl for `HeaderMap`
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
* awc client panic #1016
|
* awc client panic #1016
|
||||||
|
* Invalid response with compression middleware enabled, but compression-related features
|
||||||
* Invalid response with compression middleware enabled, but compression-related features disabled #997
|
disabled #997
|
||||||
|
|
||||||
|
|
||||||
## [0.2.7] - 2019-07-18
|
## 0.2.7 - 2019-07-18
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
* Add support for downcasting response errors #986
|
* Add support for downcasting response errors #986
|
||||||
|
|
||||||
|
|
||||||
## [0.2.6] - 2019-07-17
|
## 0.2.6 - 2019-07-17
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
* Replace `ClonableService` with local copy
|
* Replace `ClonableService` with local copy
|
||||||
|
|
||||||
* Upgrade `rand` dependency version to 0.7
|
* Upgrade `rand` dependency version to 0.7
|
||||||
|
|
||||||
|
|
||||||
## [0.2.5] - 2019-06-28
|
## 0.2.5 - 2019-06-28
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
* Add `on-connect` callback, `HttpServiceBuilder::on_connect()` #946
|
* Add `on-connect` callback, `HttpServiceBuilder::on_connect()` #946
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
* Use `encoding_rs` crate instead of unmaintained `encoding` crate
|
* Use `encoding_rs` crate instead of unmaintained `encoding` crate
|
||||||
|
|
||||||
* Add `Copy` and `Clone` impls for `ws::Codec`
|
* Add `Copy` and `Clone` impls for `ws::Codec`
|
||||||
|
|
||||||
|
|
||||||
## [0.2.4] - 2019-06-16
|
## 0.2.4 - 2019-06-16
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
* Do not compress NoContent (204) responses #918
|
* Do not compress NoContent (204) responses #918
|
||||||
|
|
||||||
|
|
||||||
## [0.2.3] - 2019-06-02
|
## 0.2.3 - 2019-06-02
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
* Debug impl for ResponseBuilder
|
* Debug impl for ResponseBuilder
|
||||||
|
|
||||||
* From SizedStream and BodyStream for Body
|
* From SizedStream and BodyStream for Body
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
* SizedStream uses u64
|
* SizedStream uses u64
|
||||||
|
|
||||||
|
|
||||||
## [0.2.2] - 2019-05-29
|
## 0.2.2 - 2019-05-29
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
* Parse incoming stream before closing stream on disconnect #868
|
* Parse incoming stream before closing stream on disconnect #868
|
||||||
|
|
||||||
|
|
||||||
## [0.2.1] - 2019-05-25
|
## 0.2.1 - 2019-05-25
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
* Handle socket read disconnect
|
* Handle socket read disconnect
|
||||||
|
|
||||||
|
|
||||||
## [0.2.0] - 2019-05-12
|
## 0.2.0 - 2019-05-12
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
* Update actix-service to 0.4
|
* Update actix-service to 0.4
|
||||||
|
|
||||||
* Expect and upgrade services accept `ServerConfig` config.
|
* Expect and upgrade services accept `ServerConfig` config.
|
||||||
|
|
||||||
### Deleted
|
### Deleted
|
||||||
|
|
||||||
* `OneRequest` service
|
* `OneRequest` service
|
||||||
|
|
||||||
|
|
||||||
## [0.1.5] - 2019-05-04
|
## 0.1.5 - 2019-05-04
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
* Clean up response extensions in response pool #817
|
* Clean up response extensions in response pool #817
|
||||||
|
|
||||||
|
|
||||||
## [0.1.4] - 2019-04-24
|
## 0.1.4 - 2019-04-24
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
* Allow to render h1 request headers in `Camel-Case`
|
* Allow to render h1 request headers in `Camel-Case`
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
* Read until eof for http/1.0 responses #771
|
* Read until eof for http/1.0 responses #771
|
||||||
|
|
||||||
|
|
||||||
## [0.1.3] - 2019-04-23
|
## 0.1.3 - 2019-04-23
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
* Fix http client pool management
|
* Fix http client pool management
|
||||||
|
|
||||||
* Fix http client wait queue management #794
|
* Fix http client wait queue management #794
|
||||||
|
|
||||||
|
|
||||||
## [0.1.2] - 2019-04-23
|
## 0.1.2 - 2019-04-23
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
* Fix BorrowMutError panic in client connector #793
|
* Fix BorrowMutError panic in client connector #793
|
||||||
|
|
||||||
|
|
||||||
## [0.1.1] - 2019-04-19
|
## 0.1.1 - 2019-04-19
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
* Cookie::max_age() accepts value in seconds
|
* Cookie::max_age() accepts value in seconds
|
||||||
|
|
||||||
* Cookie::max_age_time() accepts value in time::Duration
|
* Cookie::max_age_time() accepts value in time::Duration
|
||||||
|
|
||||||
* Allow to specify server address for client connector
|
* Allow to specify server address for client connector
|
||||||
|
|
||||||
|
|
||||||
## [0.1.0] - 2019-04-16
|
## 0.1.0 - 2019-04-16
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
* Expose peer addr via `Request::peer_addr()` and `RequestHead::peer_addr`
|
* Expose peer addr via `Request::peer_addr()` and `RequestHead::peer_addr`
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
* `actix_http::encoding` always available
|
* `actix_http::encoding` always available
|
||||||
|
|
||||||
* use trust-dns-resolver 0.11.0
|
* use trust-dns-resolver 0.11.0
|
||||||
|
|
||||||
|
|
||||||
## [0.1.0-alpha.5] - 2019-04-12
|
## 0.1.0-alpha.5 - 2019-04-12
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
* Allow to use custom service for upgrade requests
|
* Allow to use custom service for upgrade requests
|
||||||
|
|
||||||
* Added `h1::SendResponse` future.
|
* Added `h1::SendResponse` future.
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
* MessageBody::length() renamed to MessageBody::size() for consistency
|
* MessageBody::length() renamed to MessageBody::size() for consistency
|
||||||
|
|
||||||
* ws handshake verification functions take RequestHead instead of Request
|
* ws handshake verification functions take RequestHead instead of Request
|
||||||
|
|
||||||
|
|
||||||
## [0.1.0-alpha.4] - 2019-04-08
|
## 0.1.0-alpha.4 - 2019-04-08
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
* Allow to use custom `Expect` handler
|
* Allow to use custom `Expect` handler
|
||||||
|
|
||||||
* Add minimal `std::error::Error` impl for `Error`
|
* Add minimal `std::error::Error` impl for `Error`
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
* Export IntoHeaderValue
|
* Export IntoHeaderValue
|
||||||
|
|
||||||
* Render error and return as response body
|
* Render error and return as response body
|
||||||
|
* Use thread pool for response body compression
|
||||||
* Use thread pool for response body comression
|
|
||||||
|
|
||||||
### Deleted
|
### Deleted
|
||||||
|
|
||||||
* Removed PayloadBuffer
|
* Removed PayloadBuffer
|
||||||
|
|
||||||
|
|
||||||
## [0.1.0-alpha.3] - 2019-04-02
|
## 0.1.0-alpha.3 - 2019-04-02
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
* Warn when an unsealed private cookie isn't valid UTF-8
|
* Warn when an unsealed private cookie isn't valid UTF-8
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
* Rust 1.31.0 compatibility
|
* Rust 1.31.0 compatibility
|
||||||
|
|
||||||
* Preallocate read buffer for h1 codec
|
* Preallocate read buffer for h1 codec
|
||||||
|
|
||||||
* Detect socket disconnection during protocol selection
|
* Detect socket disconnection during protocol selection
|
||||||
|
|
||||||
|
|
||||||
## [0.1.0-alpha.2] - 2019-03-29
|
## 0.1.0-alpha.2 - 2019-03-29
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
* Added ws::Message::Nop, no-op websockets message
|
* Added ws::Message::Nop, no-op websockets message
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
* Do not use thread pool for decompression if chunk size is smaller than 2048.
|
||||||
* Do not use thread pool for decomression if chunk size is smaller than 2048.
|
|
||||||
|
|
||||||
|
|
||||||
## [0.1.0-alpha.1] - 2019-03-28
|
## 0.1.0-alpha.1 - 2019-03-28
|
||||||
|
|
||||||
* Initial impl
|
* Initial impl
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "actix-http"
|
name = "actix-http"
|
||||||
version = "3.0.0-beta.1"
|
version = "3.0.0-beta.2"
|
||||||
authors = ["Nikolay Kim <fafhrd91@gmail.com>"]
|
authors = ["Nikolay Kim <fafhrd91@gmail.com>"]
|
||||||
description = "HTTP primitives for the Actix ecosystem"
|
description = "HTTP primitives for the Actix ecosystem"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
|
@ -86,7 +86,7 @@ trust-dns-resolver = { version = "0.20.0", optional = true }
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
actix-server = "2.0.0-beta.3"
|
actix-server = "2.0.0-beta.3"
|
||||||
actix-http-test = { version = "3.0.0-beta.1", features = ["openssl"] }
|
actix-http-test = { version = "3.0.0-beta.2", features = ["openssl"] }
|
||||||
actix-tls = { version = "3.0.0-beta.2", features = ["openssl"] }
|
actix-tls = { version = "3.0.0-beta.2", features = ["openssl"] }
|
||||||
criterion = "0.3"
|
criterion = "0.3"
|
||||||
env_logger = "0.8"
|
env_logger = "0.8"
|
||||||
|
|
|
@ -3,10 +3,13 @@
|
||||||
> HTTP primitives for the Actix ecosystem.
|
> HTTP primitives for the Actix ecosystem.
|
||||||
|
|
||||||
[![crates.io](https://img.shields.io/crates/v/actix-http?label=latest)](https://crates.io/crates/actix-http)
|
[![crates.io](https://img.shields.io/crates/v/actix-http?label=latest)](https://crates.io/crates/actix-http)
|
||||||
[![Documentation](https://docs.rs/actix-http/badge.svg?version=2.2.0)](https://docs.rs/actix-http/2.2.0)
|
[![Documentation](https://docs.rs/actix-http/badge.svg?version=3.0.0-beta.2)](https://docs.rs/actix-http/3.0.0-beta.2)
|
||||||
![Apache 2.0 or MIT licensed](https://img.shields.io/crates/l/actix-http)
|
[![Version](https://img.shields.io/badge/rustc-1.46+-ab6000.svg)](https://blog.rust-lang.org/2020/03/12/Rust-1.46.html)
|
||||||
[![Dependency Status](https://deps.rs/crate/actix-http/2.2.0/status.svg)](https://deps.rs/crate/actix-http/2.2.0)
|
![MIT or Apache 2.0 licensed](https://img.shields.io/crates/l/actix-http.svg)
|
||||||
[![Join the chat at https://gitter.im/actix/actix-web](https://badges.gitter.im/actix/actix-web.svg)](https://gitter.im/actix/actix-web?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
<br />
|
||||||
|
[![dependency status](https://deps.rs/crate/actix-http/3.0.0-beta.2/status.svg)](https://deps.rs/crate/actix-http/3.0.0-beta.2)
|
||||||
|
[![Download](https://img.shields.io/crates/d/actix-http.svg)](https://crates.io/crates/actix-http)
|
||||||
|
[![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)
|
||||||
|
|
||||||
## Documentation & Resources
|
## Documentation & Resources
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,10 @@
|
||||||
## Unreleased - 2021-xx-xx
|
## Unreleased - 2021-xx-xx
|
||||||
|
|
||||||
|
|
||||||
|
## 0.4.0-beta.2 - 2021-02-10
|
||||||
|
* No notable changes.
|
||||||
|
|
||||||
|
|
||||||
## 0.4.0-beta.1 - 2021-01-07
|
## 0.4.0-beta.1 - 2021-01-07
|
||||||
* Fix multipart consuming payload before header checks. [#1513]
|
* Fix multipart consuming payload before header checks. [#1513]
|
||||||
* Update `bytes` to `1.0`. [#1813]
|
* Update `bytes` to `1.0`. [#1813]
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
[package]
|
[package]
|
||||||
name = "actix-multipart"
|
name = "actix-multipart"
|
||||||
version = "0.4.0-beta.1"
|
version = "0.4.0-beta.2"
|
||||||
authors = ["Nikolay Kim <fafhrd91@gmail.com>"]
|
authors = ["Nikolay Kim <fafhrd91@gmail.com>"]
|
||||||
description = "Multipart support for actix web framework."
|
description = "Multipart form support for Actix Web"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
keywords = ["http", "web", "framework", "async", "futures"]
|
keywords = ["http", "web", "framework", "async", "futures"]
|
||||||
homepage = "https://actix.rs"
|
homepage = "https://actix.rs"
|
||||||
|
@ -16,7 +16,7 @@ name = "actix_multipart"
|
||||||
path = "src/lib.rs"
|
path = "src/lib.rs"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
actix-web = { version = "4.0.0-beta.1", default-features = false }
|
actix-web = { version = "4.0.0-beta.2", default-features = false }
|
||||||
actix-utils = "3.0.0-beta.2"
|
actix-utils = "3.0.0-beta.2"
|
||||||
|
|
||||||
bytes = "1"
|
bytes = "1"
|
||||||
|
@ -29,4 +29,4 @@ twoway = "0.2"
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
actix-rt = "2"
|
actix-rt = "2"
|
||||||
actix-http = "3.0.0-beta.1"
|
actix-http = "3.0.0-beta.2"
|
||||||
|
|
|
@ -1,8 +1,18 @@
|
||||||
# Multipart 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-multipart)](https://crates.io/crates/actix-multipart) [![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-multipart
|
||||||
|
|
||||||
## Documentation & community resources
|
> Multipart form support for Actix Web.
|
||||||
|
|
||||||
* [API Documentation](https://docs.rs/actix-multipart/)
|
[![crates.io](https://img.shields.io/crates/v/actix-multipart?label=latest)](https://crates.io/crates/actix-multipart)
|
||||||
* [Chat on gitter](https://gitter.im/actix/actix)
|
[![Documentation](https://docs.rs/actix-multipart/badge.svg?version=0.4.0-beta.2)](https://docs.rs/actix-multipart/0.4.0-beta.2)
|
||||||
* Cargo package: [actix-multipart](https://crates.io/crates/actix-multipart)
|
[![Version](https://img.shields.io/badge/rustc-1.46+-ab6000.svg)](https://blog.rust-lang.org/2020/03/12/Rust-1.46.html)
|
||||||
* Minimum supported Rust version: 1.40 or later
|
![MIT or Apache 2.0 licensed](https://img.shields.io/crates/l/actix-multipart.svg)
|
||||||
|
<br />
|
||||||
|
[![dependency status](https://deps.rs/crate/actix-multipart/0.4.0-beta.2/status.svg)](https://deps.rs/crate/actix-multipart/0.4.0-beta.2)
|
||||||
|
[![Download](https://img.shields.io/crates/d/actix-multipart.svg)](https://crates.io/crates/actix-multipart)
|
||||||
|
[![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)
|
||||||
|
|
||||||
|
## Documentation & Resources
|
||||||
|
|
||||||
|
- [API Documentation](https://docs.rs/actix-multipart)
|
||||||
|
- [Chat on Gitter](https://gitter.im/actix/actix-web)
|
||||||
|
- Minimum Supported Rust Version (MSRV): 1.46.0
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
//! Multipart form support for Actix web.
|
//! Multipart form support for Actix Web.
|
||||||
|
|
||||||
#![deny(rust_2018_idioms)]
|
#![deny(rust_2018_idioms)]
|
||||||
#![allow(clippy::borrow_interior_mutable_const)]
|
#![allow(clippy::borrow_interior_mutable_const)]
|
||||||
|
|
|
@ -3,6 +3,10 @@
|
||||||
## Unreleased - 2021-xx-xx
|
## Unreleased - 2021-xx-xx
|
||||||
|
|
||||||
|
|
||||||
|
## 4.0.0-beta.2 - 2021-02-10
|
||||||
|
* No notable changes.
|
||||||
|
|
||||||
|
|
||||||
## 4.0.0-beta.1 - 2021-01-07
|
## 4.0.0-beta.1 - 2021-01-07
|
||||||
* Update `pin-project` to `1.0`.
|
* Update `pin-project` to `1.0`.
|
||||||
* Update `bytes` to `1.0`. [#1813]
|
* Update `bytes` to `1.0`. [#1813]
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
[package]
|
[package]
|
||||||
name = "actix-web-actors"
|
name = "actix-web-actors"
|
||||||
version = "4.0.0-beta.1"
|
version = "4.0.0-beta.2"
|
||||||
authors = ["Nikolay Kim <fafhrd91@gmail.com>"]
|
authors = ["Nikolay Kim <fafhrd91@gmail.com>"]
|
||||||
description = "Actix actors support for actix web framework."
|
description = "Actix actors support for Actix Web"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
keywords = ["actix", "http", "web", "framework", "async"]
|
keywords = ["actix", "http", "web", "framework", "async"]
|
||||||
homepage = "https://actix.rs"
|
homepage = "https://actix.rs"
|
||||||
|
@ -18,8 +18,8 @@ path = "src/lib.rs"
|
||||||
[dependencies]
|
[dependencies]
|
||||||
actix = { version = "0.11.0-beta.2", default-features = false }
|
actix = { version = "0.11.0-beta.2", default-features = false }
|
||||||
actix-codec = "0.4.0-beta.1"
|
actix-codec = "0.4.0-beta.1"
|
||||||
actix-http = "3.0.0-beta.1"
|
actix-http = "3.0.0-beta.2"
|
||||||
actix-web = { version = "4.0.0-beta.1", default-features = false }
|
actix-web = { version = "4.0.0-beta.2", default-features = false }
|
||||||
|
|
||||||
bytes = "1"
|
bytes = "1"
|
||||||
bytestring = "1"
|
bytestring = "1"
|
||||||
|
|
|
@ -1,8 +1,18 @@
|
||||||
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)
|
# actix-web-actors
|
||||||
|
|
||||||
## Documentation & community resources
|
> Actix actors support for Actix Web.
|
||||||
|
|
||||||
* [API Documentation](https://docs.rs/actix-web-actors/)
|
[![crates.io](https://img.shields.io/crates/v/actix-web-actors?label=latest)](https://crates.io/crates/actix-web-actors)
|
||||||
* [Chat on gitter](https://gitter.im/actix/actix)
|
[![Documentation](https://docs.rs/actix-web-actors/badge.svg?version=0.5.0)](https://docs.rs/actix-web-actors/0.5.0)
|
||||||
* Cargo package: [actix-web-actors](https://crates.io/crates/actix-web-actors)
|
[![Version](https://img.shields.io/badge/rustc-1.46+-ab6000.svg)](https://blog.rust-lang.org/2020/03/12/Rust-1.46.html)
|
||||||
* Minimum supported Rust version: 1.40 or later
|
![License](https://img.shields.io/crates/l/actix-web-actors.svg)
|
||||||
|
<br />
|
||||||
|
[![dependency status](https://deps.rs/crate/actix-web-actors/0.5.0/status.svg)](https://deps.rs/crate/actix-web-actors/0.5.0)
|
||||||
|
[![Download](https://img.shields.io/crates/d/actix-web-actors.svg)](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)
|
||||||
|
|
||||||
|
## Documentation & Resources
|
||||||
|
|
||||||
|
- [API Documentation](https://docs.rs/actix-web-actors)
|
||||||
|
- [Chat on Gitter](https://gitter.im/actix/actix-web)
|
||||||
|
- Minimum supported Rust version: 1.46 or later
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
//! Actix actors integration for Actix web framework
|
//! Actix actors support for Actix Web.
|
||||||
|
|
||||||
#![deny(rust_2018_idioms)]
|
#![deny(rust_2018_idioms)]
|
||||||
#![allow(clippy::borrow_interior_mutable_const)]
|
#![allow(clippy::borrow_interior_mutable_const)]
|
||||||
|
|
|
@ -20,7 +20,7 @@ proc-macro2 = "1"
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
actix-rt = "2"
|
actix-rt = "2"
|
||||||
actix-web = "4.0.0-beta.1"
|
actix-web = "4.0.0-beta.2"
|
||||||
futures-util = { version = "0.3.7", default-features = false }
|
futures-util = { version = "0.3.7", default-features = false }
|
||||||
trybuild = "1"
|
trybuild = "1"
|
||||||
rustversion = "1"
|
rustversion = "1"
|
||||||
|
|
|
@ -159,7 +159,7 @@ method_macro! {
|
||||||
/// # Actix Web Re-export
|
/// # Actix Web Re-export
|
||||||
/// This macro can be applied with `#[actix_web::main]` when used in Actix Web applications.
|
/// This macro can be applied with `#[actix_web::main]` when used in Actix Web applications.
|
||||||
///
|
///
|
||||||
/// # Usage
|
/// # Examples
|
||||||
/// ```rust
|
/// ```rust
|
||||||
/// #[actix_web_codegen::main]
|
/// #[actix_web_codegen::main]
|
||||||
/// async fn main() {
|
/// async fn main() {
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
# Changes
|
# Changes
|
||||||
|
|
||||||
## Unreleased - 2021-xx-xx
|
## Unreleased - 2021-xx-xx
|
||||||
|
|
||||||
|
|
||||||
|
## 3.0.0-beta.2 - 2021-02-10
|
||||||
### Added
|
### Added
|
||||||
* `ClientRequest::insert_header` method which allows using typed headers. [#1869]
|
* `ClientRequest::insert_header` method which allows using typed headers. [#1869]
|
||||||
* `ClientRequest::append_header` method which allows using typed headers. [#1869]
|
* `ClientRequest::append_header` method which allows using typed headers. [#1869]
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "awc"
|
name = "awc"
|
||||||
version = "3.0.0-beta.1"
|
version = "3.0.0-beta.2"
|
||||||
authors = ["Nikolay Kim <fafhrd91@gmail.com>"]
|
authors = ["Nikolay Kim <fafhrd91@gmail.com>"]
|
||||||
description = "Async HTTP and WebSocket client library built on the Actix ecosystem"
|
description = "Async HTTP and WebSocket client library built on the Actix ecosystem"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
|
@ -42,7 +42,7 @@ trust-dns = ["actix-http/trust-dns"]
|
||||||
[dependencies]
|
[dependencies]
|
||||||
actix-codec = "0.4.0-beta.1"
|
actix-codec = "0.4.0-beta.1"
|
||||||
actix-service = "2.0.0-beta.4"
|
actix-service = "2.0.0-beta.4"
|
||||||
actix-http = "3.0.0-beta.1"
|
actix-http = "3.0.0-beta.2"
|
||||||
actix-rt = "2"
|
actix-rt = "2"
|
||||||
|
|
||||||
base64 = "0.13"
|
base64 = "0.13"
|
||||||
|
@ -61,9 +61,9 @@ tls-openssl = { version = "0.10.9", package = "openssl", optional = true }
|
||||||
tls-rustls = { version = "0.19.0", package = "rustls", optional = true, features = ["dangerous_configuration"] }
|
tls-rustls = { version = "0.19.0", package = "rustls", optional = true, features = ["dangerous_configuration"] }
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
actix-web = { version = "4.0.0-beta.1", features = ["openssl"] }
|
actix-web = { version = "4.0.0-beta.2", features = ["openssl"] }
|
||||||
actix-http = { version = "3.0.0-beta.1", features = ["openssl"] }
|
actix-http = { version = "3.0.0-beta.2", features = ["openssl"] }
|
||||||
actix-http-test = { version = "3.0.0-beta.1", features = ["openssl"] }
|
actix-http-test = { version = "3.0.0-beta.2", features = ["openssl"] }
|
||||||
actix-utils = "3.0.0-beta.1"
|
actix-utils = "3.0.0-beta.1"
|
||||||
actix-server = "2.0.0-beta.3"
|
actix-server = "2.0.0-beta.3"
|
||||||
actix-tls = { version = "3.0.0-beta.3", features = ["openssl", "rustls"] }
|
actix-tls = { version = "3.0.0-beta.3", features = ["openssl", "rustls"] }
|
||||||
|
|
|
@ -3,9 +3,9 @@
|
||||||
> Async HTTP and WebSocket client library.
|
> Async HTTP and WebSocket client library.
|
||||||
|
|
||||||
[![crates.io](https://img.shields.io/crates/v/awc?label=latest)](https://crates.io/crates/awc)
|
[![crates.io](https://img.shields.io/crates/v/awc?label=latest)](https://crates.io/crates/awc)
|
||||||
[![Documentation](https://docs.rs/awc/badge.svg?version=2.0.3)](https://docs.rs/awc/2.0.3)
|
[![Documentation](https://docs.rs/awc/badge.svg?version=3.0.0-beta.2)](https://docs.rs/awc/3.0.0-beta.2)
|
||||||
![Apache 2.0 or MIT licensed](https://img.shields.io/crates/l/awc)
|
![MIT or Apache 2.0 licensed](https://img.shields.io/crates/l/awc)
|
||||||
[![Dependency Status](https://deps.rs/crate/awc/2.0.3/status.svg)](https://deps.rs/crate/awc/2.0.3)
|
[![Dependency Status](https://deps.rs/crate/awc/3.0.0-beta.2/status.svg)](https://deps.rs/crate/awc/3.0.0-beta.2)
|
||||||
[![Join the chat at https://gitter.im/actix/actix-web](https://badges.gitter.im/actix/actix-web.svg)](https://gitter.im/actix/actix-web?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
[![Join the chat at https://gitter.im/actix/actix-web](https://badges.gitter.im/actix/actix-web.svg)](https://gitter.im/actix/actix-web?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
||||||
|
|
||||||
## Documentation & Resources
|
## Documentation & Resources
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
digraph {
|
digraph {
|
||||||
subgraph cluster_web {
|
subgraph cluster_web {
|
||||||
label="actix/actix-web"
|
label="actix/actix-web"
|
||||||
|
|
||||||
"awc"
|
"awc"
|
||||||
"actix-web"
|
"actix-web"
|
||||||
"actix-files"
|
"actix-files"
|
||||||
|
@ -16,7 +17,7 @@ digraph {
|
||||||
"actix-web-actors" -> { "actix" "actix-web" "actix-http" "actix-codec" }
|
"actix-web-actors" -> { "actix" "actix-web" "actix-http" "actix-codec" }
|
||||||
"actix-multipart" -> { "actix-web" "actix-service" "actix-utils" }
|
"actix-multipart" -> { "actix-web" "actix-service" "actix-utils" }
|
||||||
"actix-http" -> { "actix-service" "actix-codec" "actix-tls" "actix-utils" "actix-rt" "threadpool" }
|
"actix-http" -> { "actix-service" "actix-codec" "actix-tls" "actix-utils" "actix-rt" "threadpool" }
|
||||||
"actix-http" -> { "actix" "actix-tls" }[color=blue] // optional
|
"actix-http" -> { "actix-tls" }[color=blue] // optional
|
||||||
"actix-files" -> { "actix-web" }
|
"actix-files" -> { "actix-web" }
|
||||||
"actix-http-test" -> { "actix-service" "actix-codec" "actix-tls" "actix-utils" "actix-rt" "actix-server" "awc" }
|
"actix-http-test" -> { "actix-service" "actix-codec" "actix-tls" "actix-utils" "actix-rt" "actix-server" "awc" }
|
||||||
|
|
||||||
|
@ -27,4 +28,8 @@ digraph {
|
||||||
"actix-tls" -> { "actix-service" "actix-codec" "actix-utils" }
|
"actix-tls" -> { "actix-service" "actix-codec" "actix-utils" }
|
||||||
"actix-server" -> { "actix-service" "actix-rt" "actix-codec" "actix-utils" }
|
"actix-server" -> { "actix-service" "actix-rt" "actix-codec" "actix-utils" }
|
||||||
"actix-rt" -> { "macros" "threadpool" }
|
"actix-rt" -> { "macros" "threadpool" }
|
||||||
|
|
||||||
|
// actix
|
||||||
|
|
||||||
|
"actix" -> { "actix-rt" }
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,7 +15,6 @@ digraph {
|
||||||
"awc" -> { "actix-http" }
|
"awc" -> { "actix-http" }
|
||||||
"actix-web-actors" -> { "actix" "actix-web" "actix-http" }
|
"actix-web-actors" -> { "actix" "actix-web" "actix-http" }
|
||||||
"actix-multipart" -> { "actix-web" }
|
"actix-multipart" -> { "actix-web" }
|
||||||
"actix-http" -> { "actix" }[color=blue] // optional
|
|
||||||
"actix-files" -> { "actix-web" }
|
"actix-files" -> { "actix-web" }
|
||||||
"actix-http-test" -> { "awc" }
|
"actix-http-test" -> { "awc" }
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,7 +15,7 @@ use crate::{error::Error, service::ServiceResponse};
|
||||||
/// Middleware for enabling any middleware to be used in [`Resource::wrap`](crate::Resource::wrap),
|
/// Middleware for enabling any middleware to be used in [`Resource::wrap`](crate::Resource::wrap),
|
||||||
/// [`Scope::wrap`](crate::Scope::wrap) and [`Condition`](super::Condition).
|
/// [`Scope::wrap`](crate::Scope::wrap) and [`Condition`](super::Condition).
|
||||||
///
|
///
|
||||||
/// # Usage
|
/// # Examples
|
||||||
/// ```rust
|
/// ```rust
|
||||||
/// use actix_web::middleware::{Logger, Compat};
|
/// use actix_web::middleware::{Logger, Compat};
|
||||||
/// use actix_web::{App, web};
|
/// use actix_web::{App, web};
|
||||||
|
|
|
@ -30,7 +30,7 @@ use crate::{
|
||||||
/// Use `BodyEncoding` trait for overriding response compression. To disable compression set
|
/// Use `BodyEncoding` trait for overriding response compression. To disable compression set
|
||||||
/// encoding to `ContentEncoding::Identity`.
|
/// encoding to `ContentEncoding::Identity`.
|
||||||
///
|
///
|
||||||
/// # Usage
|
/// # Examples
|
||||||
/// ```rust
|
/// ```rust
|
||||||
/// use actix_web::{web, middleware, App, HttpResponse};
|
/// use actix_web::{web, middleware, App, HttpResponse};
|
||||||
///
|
///
|
||||||
|
|
|
@ -11,7 +11,7 @@ use futures_util::future::{Either, FutureExt, LocalBoxFuture};
|
||||||
/// control such middlewares like `Logger` or `Compress` directly. See the [`Compat`](super::Compat)
|
/// control such middlewares like `Logger` or `Compress` directly. See the [`Compat`](super::Compat)
|
||||||
/// middleware for a workaround.
|
/// middleware for a workaround.
|
||||||
///
|
///
|
||||||
/// # Usage
|
/// # Examples
|
||||||
/// ```rust
|
/// ```rust
|
||||||
/// use actix_web::middleware::{Condition, NormalizePath};
|
/// use actix_web::middleware::{Condition, NormalizePath};
|
||||||
/// use actix_web::App;
|
/// use actix_web::App;
|
||||||
|
|
|
@ -28,7 +28,7 @@ use crate::{
|
||||||
///
|
///
|
||||||
/// Headers with the same key that are already set in a response will *not* be overwritten.
|
/// Headers with the same key that are already set in a response will *not* be overwritten.
|
||||||
///
|
///
|
||||||
/// # Usage
|
/// # Examples
|
||||||
/// ```rust
|
/// ```rust
|
||||||
/// use actix_web::{web, http, middleware, App, HttpResponse};
|
/// use actix_web::{web, http, middleware, App, HttpResponse};
|
||||||
///
|
///
|
||||||
|
|
|
@ -33,7 +33,7 @@ type ErrorHandler<B> = dyn Fn(ServiceResponse<B>) -> Result<ErrorHandlerResponse
|
||||||
/// Register handlers with the `ErrorHandlers::handler()` method to register a custom error handler
|
/// Register handlers with the `ErrorHandlers::handler()` method to register a custom error handler
|
||||||
/// for a given status code. Handlers can modify existing responses or create completely new ones.
|
/// for a given status code. Handlers can modify existing responses or create completely new ones.
|
||||||
///
|
///
|
||||||
/// # Usage
|
/// # Examples
|
||||||
/// ```rust
|
/// ```rust
|
||||||
/// use actix_web::middleware::{ErrorHandlers, ErrorHandlerResponse};
|
/// use actix_web::middleware::{ErrorHandlers, ErrorHandlerResponse};
|
||||||
/// use actix_web::{web, http, dev, App, HttpRequest, HttpResponse, Result};
|
/// use actix_web::{web, http, dev, App, HttpRequest, HttpResponse, Result};
|
||||||
|
|
|
@ -42,7 +42,7 @@ use crate::{
|
||||||
/// 127.0.0.1:54278 "GET /test HTTP/1.1" 404 20 "-" "HTTPie/2.2.0" 0.001074
|
/// 127.0.0.1:54278 "GET /test HTTP/1.1" 404 20 "-" "HTTPie/2.2.0" 0.001074
|
||||||
/// ```
|
/// ```
|
||||||
///
|
///
|
||||||
/// # Usage
|
/// # Examples
|
||||||
/// ```rust
|
/// ```rust
|
||||||
/// use actix_web::{middleware::Logger, App};
|
/// use actix_web::{middleware::Logger, App};
|
||||||
///
|
///
|
||||||
|
|
|
@ -53,7 +53,7 @@ impl Default for TrailingSlash {
|
||||||
/// trailing slashes or else they will be inaccessible (or vice versa when using the
|
/// trailing slashes or else they will be inaccessible (or vice versa when using the
|
||||||
/// `TrailingSlash::Always` behavior), as shown in the example tests below.
|
/// `TrailingSlash::Always` behavior), as shown in the example tests below.
|
||||||
///
|
///
|
||||||
/// # Usage
|
/// # Examples
|
||||||
/// ```rust
|
/// ```rust
|
||||||
/// use actix_web::{web, middleware, App};
|
/// use actix_web::{web, middleware, App};
|
||||||
///
|
///
|
||||||
|
|
|
@ -197,7 +197,7 @@ where
|
||||||
|
|
||||||
/// `Json` extractor configuration.
|
/// `Json` extractor configuration.
|
||||||
///
|
///
|
||||||
/// # Usage
|
/// # Examples
|
||||||
/// ```
|
/// ```
|
||||||
/// use actix_web::{error, post, web, App, FromRequest, HttpResponse};
|
/// use actix_web::{error, post, web, App, FromRequest, HttpResponse};
|
||||||
/// use serde::Deserialize;
|
/// use serde::Deserialize;
|
||||||
|
|
|
@ -13,7 +13,7 @@ use crate::{dev::Payload, error::PathError, FromRequest, HttpRequest};
|
||||||
///
|
///
|
||||||
/// Use [`PathConfig`] to configure extraction process.
|
/// Use [`PathConfig`] to configure extraction process.
|
||||||
///
|
///
|
||||||
/// # Usage
|
/// # Examples
|
||||||
/// ```
|
/// ```
|
||||||
/// use actix_web::{get, web};
|
/// use actix_web::{get, web};
|
||||||
///
|
///
|
||||||
|
|
|
@ -23,7 +23,7 @@ use crate::{dev, http::header, web, Error, FromRequest, HttpMessage, HttpRequest
|
||||||
///
|
///
|
||||||
/// See [`PayloadConfig`] for important notes when using this advanced extractor.
|
/// See [`PayloadConfig`] for important notes when using this advanced extractor.
|
||||||
///
|
///
|
||||||
/// # Usage
|
/// # Examples
|
||||||
/// ```
|
/// ```
|
||||||
/// use std::future::Future;
|
/// use std::future::Future;
|
||||||
/// use futures_util::stream::{Stream, StreamExt};
|
/// use futures_util::stream::{Stream, StreamExt};
|
||||||
|
@ -81,7 +81,7 @@ impl FromRequest for Payload {
|
||||||
///
|
///
|
||||||
/// Use [`PayloadConfig`] to configure extraction process.
|
/// Use [`PayloadConfig`] to configure extraction process.
|
||||||
///
|
///
|
||||||
/// # Usage
|
/// # Examples
|
||||||
/// ```
|
/// ```
|
||||||
/// use actix_web::{post, web};
|
/// use actix_web::{post, web};
|
||||||
///
|
///
|
||||||
|
@ -118,7 +118,7 @@ impl FromRequest for Bytes {
|
||||||
/// [**PayloadConfig**](PayloadConfig) allows to configure
|
/// [**PayloadConfig**](PayloadConfig) allows to configure
|
||||||
/// extraction process.
|
/// extraction process.
|
||||||
///
|
///
|
||||||
/// # Usage
|
/// # Examples
|
||||||
/// ```
|
/// ```
|
||||||
/// use actix_web::{post, web, FromRequest};
|
/// use actix_web::{post, web, FromRequest};
|
||||||
///
|
///
|
||||||
|
|
|
@ -18,7 +18,7 @@ use crate::{dev::Payload, error::QueryPayloadError, Error, FromRequest, HttpRequ
|
||||||
/// A query string consists of unordered `key=value` pairs, therefore it cannot be decoded into any
|
/// A query string consists of unordered `key=value` pairs, therefore it cannot be decoded into any
|
||||||
/// type which depends upon data ordering (eg. tuples). Trying to do so will result in a panic.
|
/// type which depends upon data ordering (eg. tuples). Trying to do so will result in a panic.
|
||||||
///
|
///
|
||||||
/// # Usage
|
/// # Examples
|
||||||
/// ```
|
/// ```
|
||||||
/// use actix_web::{get, web};
|
/// use actix_web::{get, web};
|
||||||
/// use serde::Deserialize;
|
/// use serde::Deserialize;
|
||||||
|
@ -138,7 +138,7 @@ where
|
||||||
|
|
||||||
/// Query extractor configuration.
|
/// Query extractor configuration.
|
||||||
///
|
///
|
||||||
/// # Usage
|
/// # Examples
|
||||||
/// ```
|
/// ```
|
||||||
/// use actix_web::{error, get, web, App, FromRequest, HttpResponse};
|
/// use actix_web::{error, get, web, App, FromRequest, HttpResponse};
|
||||||
/// use serde::Deserialize;
|
/// use serde::Deserialize;
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
//! Essentials helper functions and types for application registration.
|
//! Essentials helper functions and types for application registration.
|
||||||
|
|
||||||
use actix_http::http::Method;
|
use actix_http::http::Method;
|
||||||
use actix_router::IntoPattern;
|
use actix_router::IntoPattern;
|
||||||
use std::future::Future;
|
use std::future::Future;
|
||||||
|
|
Loading…
Reference in a new issue