2019-03-26 18:54:35 +00:00
# Changes
2021-01-02 00:12:18 +00:00
## Unreleased - 2021-xx-xx
2021-12-02 18:16:34 +00:00
### Added
* Add timeout for canceling HTTP/2 server side connection handshake. Default to 5 seconds. [#2483]
2021-12-04 19:40:47 +00:00
* HTTP/2 handshake timeout can be configured with `ServiceConfig::client_timeout` . [#2483]
* `Response::map_into_boxed_body` . [#2468]
* `body::EitherBody` enum. [#2468]
* `body::None` struct. [#2468]
* Impl `MessageBody` for `bytestring::ByteString` . [#2468]
* `impl Clone for ws::HandshakeError` . [#2468]
2021-12-04 22:32:44 +00:00
* `#[must_use]` for `ws::Codec` to prevent subtle bugs. [#1920]
* `impl Default ` for `ws::Codec` . [#1920]
2021-12-05 03:38:08 +00:00
* `header::QualityItem::{max, min}` . [#2486]
* `header::Quality::{MAX, MIN}` . [#2486]
* `impl Display` for `header::Quality` . [#2486]
2021-12-07 17:23:34 +00:00
* Connection data set through the `on_connect_ext` callbacks is now accessible only from the new `Request::conn_data()` method. [#2491]
* `Request::take_conn_data()` . [#2491]
2021-12-08 22:58:50 +00:00
* `Request::take_req_data()` . [#2487]
* `impl Clone` for `RequestHead` . [#2487]
2021-12-09 13:52:35 +00:00
* New methods on `MessageBody` trait, `is_complete_body` and `take_complete_body` , both with default implementations, for optimisations on body types that are done in exactly one poll/chunk. [#2497]
2021-12-04 19:40:47 +00:00
### Changed
* Rename `body::BoxBody::{from_body => new}` . [#2468]
* Body type for `Responses` returned from `Response::{new, ok, etc...}` is now `BoxBody` . [#2468]
* The `Error` associated type on `MessageBody` type now requires `impl Error` (or similar). [#2468]
* Error types using in service builders now require `Into<Response<BoxBody>>` . [#2468]
* `From` implementations on error types now return a `Response<BoxBody>` . [#2468]
* `ResponseBuilder::body(B)` now returns `Response<EitherBody<B>>` . [#2468]
* `ResponseBuilder::finish()` now returns `Response<EitherBody<()>>` . [#2468]
### Removed
* `ResponseBuilder::streaming` . [#2468]
* `impl Future` for `ResponseBuilder` . [#2468]
* Remove unnecessary `MessageBody` bound on types passed to `body::AnyBody::new` . [#2468]
* Move `body::AnyBody` to `awc` . Replaced with `EitherBody` and `BoxBody` . [#2468]
2021-12-04 22:32:44 +00:00
* `impl Copy` for `ws::Codec` . [#1920]
2021-12-05 14:37:20 +00:00
* `header::qitem` helper. Replaced with `header::QualityItem::max` . [#2486]
* `impl TryFrom<u16>` for `header::Quality` . [#2486]
* `http` module. Most everything it contained is exported at the crate root. [#2488]
2021-11-30 14:12:04 +00:00
2021-12-02 18:16:34 +00:00
[#2483]: https://github.com/actix/actix-web/pull/2483
2021-12-04 19:40:47 +00:00
[#2468]: https://github.com/actix/actix-web/pull/2468
2021-12-04 22:32:44 +00:00
[#1920]: https://github.com/actix/actix-web/pull/1920
2021-12-05 03:38:08 +00:00
[#2486]: https://github.com/actix/actix-web/pull/2486
2021-12-08 22:58:50 +00:00
[#2487]: https://github.com/actix/actix-web/pull/2487
2021-12-05 14:37:20 +00:00
[#2488]: https://github.com/actix/actix-web/pull/2488
2021-12-07 17:23:34 +00:00
[#2491]: https://github.com/actix/actix-web/pull/2491
2021-12-09 13:52:35 +00:00
[#2497]: https://github.com/actix/actix-web/pull/2497
2021-12-04 19:40:47 +00:00
2021-11-30 14:12:04 +00:00
## 3.0.0-beta.14 - 2021-11-30
2021-11-28 19:23:29 +00:00
### Changed
* Guarantee ordering of `header::GetAll` iterator to be same as insertion order. [#2467]
2021-11-29 02:22:47 +00:00
* Expose `header::map` module. [#2467]
* Implement `ExactSizeIterator` and `FusedIterator` for all `HeaderMap` iterators. [#2470]
2021-11-30 14:12:04 +00:00
* Update `actix-tls` to `3.0.0-rc.1` . [#2474]
2021-11-28 19:23:29 +00:00
[#2467]: https://github.com/actix/actix-web/pull/2467
2021-11-29 02:22:47 +00:00
[#2470]: https://github.com/actix/actix-web/pull/2470
2021-11-30 14:12:04 +00:00
[#2474]: https://github.com/actix/actix-web/pull/2474
2021-11-22 18:19:09 +00:00
## 3.0.0-beta.13 - 2021-11-22
2021-11-16 09:21:10 +00:00
### Added
2021-11-16 21:41:35 +00:00
* `body::AnyBody::empty` for quickly creating an empty body. [#2446]
2021-11-22 15:37:23 +00:00
* `body::AnyBody::none` for quickly creating a "none" body. [#2456]
2021-11-16 21:41:35 +00:00
* `impl Clone` for `body::AnyBody<S> where S: Clone` . [#2448]
* `body::AnyBody::into_boxed` for quickly converting to a type-erased, boxed body type. [#2448]
2021-11-16 09:21:10 +00:00
### Changed
2021-11-16 21:41:35 +00:00
* Rename `body::AnyBody::{Message => Body}` . [#2446]
* Rename `body::AnyBody::{from_message => new_boxed}` . [#2448]
* Rename `body::AnyBody::{from_slice => copy_from_slice}` . [#2448]
* Rename `body::{BoxAnyBody => BoxBody}` . [#2448]
* Change representation of `AnyBody` to include a type parameter in `Body` variant. Defaults to `BoxBody` . [#2448]
* `Encoder::response` now returns `AnyBody<Encoder<B>>` . [#2448]
2021-11-16 09:21:10 +00:00
### Removed
2021-11-16 21:41:35 +00:00
* `body::AnyBody::Empty` ; an empty body can now only be represented as a zero-length `Bytes` variant. [#2446]
* `body::BodySize::Empty` ; an empty body can now only be represented as a `Sized(0)` variant. [#2446]
* `EncoderError::Boxed` ; it is no longer required. [#2446]
* `body::ResponseBody` ; is function is replaced by the new `body::AnyBody` enum. [#2446]
2021-11-16 09:21:10 +00:00
[#2446]: https://github.com/actix/actix-web/pull/2446
2021-11-22 18:20:55 +00:00
[#2448]: https://github.com/actix/actix-web/pull/2448
2021-11-22 15:37:23 +00:00
[#2456]: https://github.com/actix/actix-web/pull/2456
2021-11-15 04:03:33 +00:00
## 3.0.0-beta.12 - 2021-11-15
### Changed
* Update `actix-server` to `2.0.0-beta.9` . [#2442]
2021-10-25 23:37:40 +00:00
### Removed
* `client` module. [#2425]
* `trust-dns` feature. [#2425]
[#2425]: https://github.com/actix/actix-web/pull/2425
2021-11-15 04:03:33 +00:00
[#2442]: https://github.com/actix/actix-web/pull/2442
2021-10-20 21:32:05 +00:00
## 3.0.0-beta.11 - 2021-10-20
2021-10-20 01:00:11 +00:00
### Changed
* Updated rustls to v0.20. [#2414]
2021-10-19 00:59:28 +00:00
* Minimum supported Rust version (MSRV) is now 1.52.
2021-09-09 00:35:41 +00:00
2021-10-20 01:00:11 +00:00
[#2414]: https://github.com/actix/actix-web/pull/2414
2021-09-09 00:35:41 +00:00
## 3.0.0-beta.10 - 2021-09-09
2021-09-01 08:08:29 +00:00
### Changed
2021-09-01 08:53:26 +00:00
* `ContentEncoding` is now marked `#[non_exhaustive]` . [#2377]
2021-08-30 22:19:03 +00:00
* Minimum supported Rust version (MSRV) is now 1.51.
2021-06-26 15:33:36 +00:00
2021-08-13 17:41:19 +00:00
### Fixed
* Remove slice creation pointing to potential uninitialized data on h1 encoder. [#2364]
2021-08-31 03:18:54 +00:00
* Remove `Into<Error>` bound on `Encoder` body types. [#2375]
2021-09-01 08:08:29 +00:00
* Fix quality parse error in Accept-Encoding header. [#2344]
2021-08-13 17:41:19 +00:00
[#2364]: https://github.com/actix/actix-web/pull/2364
2021-08-31 03:18:54 +00:00
[#2375]: https://github.com/actix/actix-web/pull/2375
2021-09-01 08:08:29 +00:00
[#2344]: https://github.com/actix/actix-web/pull/2344
2021-09-01 08:53:26 +00:00
[#2377]: https://github.com/actix/actix-web/pull/2377
2021-06-26 15:33:36 +00:00
2021-08-30 22:19:03 +00:00
2021-09-09 00:35:41 +00:00
## 3.0.0-beta.9 - 2021-08-09
2021-08-12 19:18:09 +00:00
### Fixed
* Potential HTTP request smuggling vulnerabilities. [RUSTSEC-2021-0081 ](https://github.com/rustsec/advisory-db/pull/977 )
2021-09-01 08:53:26 +00:00
2021-06-26 15:33:36 +00:00
## 3.0.0-beta.8 - 2021-06-26
2021-06-19 19:21:13 +00:00
### Changed
* Change compression algorithm features flags. [#2250]
2021-06-25 09:53:53 +00:00
### Removed
* `downcast` and `downcast_get_type_id` macros. [#2291]
[#2291]: https://github.com/actix/actix-web/pull/2291
2021-06-19 19:21:13 +00:00
[#2250]: https://github.com/actix/actix-web/pull/2250
2021-06-19 10:51:20 +00:00
2021-06-19 19:23:06 +00:00
2021-06-19 10:51:20 +00:00
## 3.0.0-beta.7 - 2021-06-17
2021-04-19 02:29:38 +00:00
### Added
2021-05-14 15:40:00 +00:00
* Alias `body::Body` as `body::AnyBody` . [#2215]
2021-05-05 17:36:02 +00:00
* `BoxAnyBody` : a boxed message body with boxed errors. [#2183]
2021-04-19 02:29:38 +00:00
* Re-export `http` crate's `Error` type as `error::HttpError` . [#2171]
* Re-export `StatusCode` , `Method` , `Version` and `Uri` at the crate root. [#2171]
* Re-export `ContentEncoding` and `ConnectionType` at the crate root. [#2171]
2021-05-09 19:12:48 +00:00
* `Response::into_body` that consumes response and returns body type. [#2201]
* `impl Default` for `Response` . [#2201]
2021-06-03 20:32:52 +00:00
* Add zstd support for `ContentEncoding` . [#2244]
2021-04-19 02:29:38 +00:00
### Changed
2021-05-05 17:36:02 +00:00
* The `MessageBody` trait now has an associated `Error` type. [#2183]
2021-06-17 16:57:58 +00:00
* All error trait bounds in server service builders have changed from `Into<Error>` to `Into<Response<AnyBody>>` . [#2253]
* All error trait bounds in message body and stream impls changed from `Into<Error>` to `Into<Box<dyn std::error::Error>>` . [#2253]
2021-05-09 19:12:48 +00:00
* Places in `Response` where `ResponseBody<B>` was received or returned now simply use `B` . [#2201]
2021-04-19 02:29:38 +00:00
* `header` mod is now public. [#2171]
* `uri` mod is now public. [#2171]
2021-04-28 00:23:12 +00:00
* Update `language-tags` to `0.3` .
2021-05-09 19:12:48 +00:00
* Reduce the level from `error` to `debug` for the log line that is emitted when a `500 Internal Server Error` is built using `HttpResponse::from_error` . [#2201]
* `ResponseBuilder::message_body` now returns a `Result` . [#2201]
2021-06-17 16:57:58 +00:00
* Remove `Unpin` bound on `ResponseBuilder::streaming` . [#2253]
2021-06-10 15:25:21 +00:00
* `HttpServer::{listen_rustls(), bind_rustls()}` now honor the ALPN protocols in the configuation parameter. [#2226]
2021-04-19 02:29:38 +00:00
### Removed
* Stop re-exporting `http` crate's `HeaderMap` types in addition to ours. [#2171]
2021-05-05 17:36:02 +00:00
* Down-casting for `MessageBody` types. [#2183]
2021-05-09 19:12:48 +00:00
* `error::Result` alias. [#2201]
2021-05-09 02:44:14 +00:00
* Error field from `Response` and `Response::error` . [#2205]
2021-05-09 19:12:48 +00:00
* `impl Future` for `Response` . [#2201]
* `Response::take_body` and old `Response::into_body` method that casted body type. [#2201]
2021-05-14 15:40:00 +00:00
* `InternalError` and all the error types it constructed. [#2215]
* Conversion (`impl Into`) of `Response<Body>` and `ResponseBuilder` to `Error` . [#2215]
2021-04-19 02:29:38 +00:00
[#2171]: https://github.com/actix/actix-web/pull/2171
2021-05-05 17:36:02 +00:00
[#2183]: https://github.com/actix/actix-web/pull/2183
2021-05-02 23:58:14 +00:00
[#2196]: https://github.com/actix/actix-web/pull/2196
2021-05-09 19:12:48 +00:00
[#2201]: https://github.com/actix/actix-web/pull/2201
2021-05-09 02:44:14 +00:00
[#2205]: https://github.com/actix/actix-web/pull/2205
2021-05-14 15:40:00 +00:00
[#2215]: https://github.com/actix/actix-web/pull/2215
2021-06-17 16:57:58 +00:00
[#2253]: https://github.com/actix/actix-web/pull/2253
2021-06-03 20:32:52 +00:00
[#2244]: https://github.com/actix/actix-web/pull/2244
2021-04-17 14:24:18 +00:00
## 3.0.0-beta.6 - 2021-04-17
2021-04-13 10:16:12 +00:00
### Added
* `impl<T: MessageBody> MessageBody for Pin<Box<T>>` . [#2152]
2021-04-14 01:00:14 +00:00
* `Response::{ok, bad_request, not_found, internal_server_error}` . [#2159]
2021-04-13 12:34:22 +00:00
* Helper `body::to_bytes` for async collecting message body into Bytes. [#2158]
2021-04-13 10:16:12 +00:00
### Changes
* The type parameter of `Response` no longer has a default. [#2152]
* The `Message` variant of `body::Body` is now `Pin<Box<dyn MessageBody>>` . [#2152]
* `BodyStream` and `SizedStream` are no longer restricted to Unpin types. [#2152]
2021-04-14 05:07:59 +00:00
* Error enum types are marked `#[non_exhaustive]` . [#2161]
2021-04-13 10:16:12 +00:00
2021-04-09 17:07:10 +00:00
### Removed
* `cookies` feature flag. [#2065]
* Top-level `cookies` mod (re-export). [#2065]
* `HttpMessage` trait loses the `cookies` and `cookie` methods. [#2065]
* `impl ResponseError for CookieParseError` . [#2065]
2021-04-12 09:30:28 +00:00
* Deprecated methods on `ResponseBuilder` : `if_true` , `if_some` . [#2148]
* `ResponseBuilder::json` . [#2148]
* `ResponseBuilder::{set_header, header}` . [#2148]
* `impl From<serde_json::Value> for Body` . [#2148]
2021-04-14 01:00:14 +00:00
* `Response::build_from` . [#2159]
* Most of the status code builders on `Response` . [#2159]
2021-04-09 17:07:10 +00:00
[#2065]: https://github.com/actix/actix-web/pull/2065
2021-04-12 09:30:28 +00:00
[#2148]: https://github.com/actix/actix-web/pull/2148
2021-04-13 10:16:12 +00:00
[#2152]: https://github.com/actix/actix-web/pull/2152
2021-04-14 01:00:14 +00:00
[#2159]: https://github.com/actix/actix-web/pull/2159
2021-04-13 12:34:22 +00:00
[#2158]: https://github.com/actix/actix-web/pull/2158
2021-04-14 05:07:59 +00:00
[#2161]: https://github.com/actix/actix-web/pull/2161
2021-04-02 08:27:11 +00:00
## 3.0.0-beta.5 - 2021-04-02
2021-03-18 17:53:22 +00:00
### Added
2021-04-02 08:27:11 +00:00
* `client::Connector::handshake_timeout` method for customizing TLS connection handshake timeout. [#2081]
2021-03-18 17:53:22 +00:00
* `client::ConnectorService` as `client::Connector::finish` method's return type [#2081]
* `client::ConnectionIo` trait alias [#2081]
2021-03-29 09:18:05 +00:00
### Changed
2021-03-10 23:57:32 +00:00
* `client::Connector` type now only have one generic type for `actix_service::Service` . [#2063]
2021-04-01 14:26:13 +00:00
### Removed
2021-04-02 08:27:11 +00:00
* Common typed HTTP headers were moved to actix-web. [2094]
2021-04-01 14:26:13 +00:00
* `ResponseError` impl for `actix_utils::timeout::TimeoutError` . [#2127]
2021-03-10 23:57:32 +00:00
[#2063]: https://github.com/actix/actix-web/pull/2063
2021-03-18 17:53:22 +00:00
[#2081]: https://github.com/actix/actix-web/pull/2081
2021-04-01 15:42:18 +00:00
[#2094]: https://github.com/actix/actix-web/pull/2094
2021-04-01 14:26:13 +00:00
[#2127]: https://github.com/actix/actix-web/pull/2127
2021-03-08 23:07:40 +00:00
## 3.0.0-beta.4 - 2021-03-08
2021-02-13 15:08:43 +00:00
### Changed
* Feature `cookies` is now optional and disabled by default. [#1981]
2021-02-28 19:55:34 +00:00
* `ws::hash_key` now returns array. [#2035]
2021-03-07 22:11:39 +00:00
* `ResponseBuilder::json` now takes `impl Serialize` . [#2052]
2021-02-13 15:08:43 +00:00
2021-02-16 08:27:14 +00:00
### Removed
2021-03-08 23:07:40 +00:00
* Re-export of `futures_channel::oneshot::Canceled` is removed from `error` mod. [#1994]
2021-02-16 08:27:14 +00:00
* `ResponseError` impl for `futures_channel::oneshot::Canceled` is removed. [#1994]
2021-02-13 15:08:43 +00:00
[#1981]: https://github.com/actix/actix-web/pull/1981
2021-02-16 08:27:14 +00:00
[#1994]: https://github.com/actix/actix-web/pull/1994
2021-02-28 19:55:34 +00:00
[#2035]: https://github.com/actix/actix-web/pull/2035
2021-03-07 22:11:39 +00:00
[#2052]: https://github.com/actix/actix-web/pull/2052
2021-02-10 12:10:03 +00:00
2021-02-10 18:36:14 +00:00
## 3.0.0-beta.3 - 2021-02-10
* No notable changes.
## 3.0.0-beta.2 - 2021-02-10
2021-01-15 02:11:10 +00:00
### Added
* `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::append_header` method which allows using typed headers. [#1869]
* `TestRequest::insert_header` method which allows using typed headers. [#1869]
2021-01-17 05:19:32 +00:00
* `ContentEncoding` implements all necessary header traits. [#1912]
2021-02-09 22:59:17 +00:00
* `HeaderMap::len_keys` has the behavior of the old `len` method. [#1964]
* `HeaderMap::drain` as an efficient draining iterator. [#1964]
* Implement `IntoIterator` for owned `HeaderMap` . [#1964]
2021-02-09 10:41:20 +00:00
* `trust-dns` optional feature to enable `trust-dns-resolver` as client dns resolver. [#1969]
2021-01-15 02:11:10 +00:00
### Changed
* `ResponseBuilder::content_type` now takes an `impl IntoHeaderValue` to support using typed
`mime` types. [#1894]
* Renamed `IntoHeaderValue::{try_into => try_into_value}` to avoid ambiguity with std
`TryInto` trait. [#1894]
2021-01-15 04:22:42 +00:00
* `Extensions::insert` returns Option of replaced item. [#1904]
2021-02-10 12:10:03 +00:00
* Remove `HttpResponseBuilder::json2()` . [#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]
2021-02-07 01:00:40 +00:00
* `client::ConnectorConfig` default timeout changed to 5 seconds. [#1905]
2021-02-10 12:10:03 +00:00
* Simplify `BlockingError` type to a unit struct. It's now only triggered when blocking thread pool
is dead. [#1957]
2021-02-09 22:59:17 +00:00
* `HeaderMap::len` now returns number of values instead of number of keys. [#1964]
* `HeaderMap::insert` now returns iterator of removed values. [#1964]
* `HeaderMap::remove` now returns iterator of removed values. [#1964]
2021-01-09 13:17:19 +00:00
2021-01-15 02:11:10 +00:00
### Removed
* `ResponseBuilder::set` ; use `ResponseBuilder::insert_header` . [#1869]
* `ResponseBuilder::set_header` ; use `ResponseBuilder::insert_header` . [#1869]
* `ResponseBuilder::header` ; use `ResponseBuilder::append_header` . [#1869]
* `TestRequest::with_hdr` ; use `TestRequest::default().insert_header()` . [#1869]
* `TestRequest::with_header` ; use `TestRequest::default().insert_header()` . [#1869]
2021-02-09 10:41:20 +00:00
* `actors` optional feature. [#1969]
* `ResponseError` impl for `actix::MailboxError` . [#1969]
2021-01-15 02:11:10 +00:00
2021-02-09 22:59:17 +00:00
### Documentation
* Vastly improve docs and add examples for `HeaderMap` . [#1964]
2021-01-15 02:11:10 +00:00
[#1869]: https://github.com/actix/actix-web/pull/1869
2021-01-09 13:17:19 +00:00
[#1894]: https://github.com/actix/actix-web/pull/1894
2021-01-18 12:14:29 +00:00
[#1903]: https://github.com/actix/actix-web/pull/1903
2021-01-15 04:22:42 +00:00
[#1904]: https://github.com/actix/actix-web/pull/1904
2021-02-07 01:00:40 +00:00
[#1905]: https://github.com/actix/actix-web/pull/1905
2021-01-17 05:19:32 +00:00
[#1912]: https://github.com/actix/actix-web/pull/1912
2021-02-06 16:23:59 +00:00
[#1957]: https://github.com/actix/actix-web/pull/1957
2021-02-09 22:59:17 +00:00
[#1964]: https://github.com/actix/actix-web/pull/1964
2021-02-09 10:41:20 +00:00
[#1969]: https://github.com/actix/actix-web/pull/1969
2021-01-07 20:02:08 +00:00
## 3.0.0-beta.1 - 2021-01-07
2021-01-06 18:58:24 +00:00
### Added
* Add `Http3` to `Protocol` enum for future compatibility and also mark `#[non_exhaustive]` .
2020-12-22 23:45:31 +00:00
### Changed
2021-01-03 23:47:04 +00:00
* Update `actix-*` dependencies to tokio `1.0` based versions. [#1813]
2021-01-04 11:27:32 +00:00
* Bumped `rand` to `0.8` .
2021-01-03 23:47:04 +00:00
* Update `bytes` to `1.0` . [#1813]
* Update `h2` to `0.3` . [#1813]
2021-01-04 11:27:32 +00:00
* The `ws::Message::Text` enum variant now contains a `bytestring::ByteString` . [#1864]
2021-01-02 00:12:18 +00:00
2020-12-27 23:23:30 +00:00
### Removed
* Deprecated `on_connect` methods have been removed. Prefer the new
`on_connect_ext` technique. [#1857]
2021-01-03 23:47:04 +00:00
* Remove `ResponseError` impl for `actix::actors::resolver::ResolverError`
due to deprecate of resolver actor. [#1813]
* Remove `ConnectError::SslHandshakeError` and re-export of `HandshakeError` .
due to the removal of this type from `tokio-openssl` crate. openssl handshake
error would return as `ConnectError::SslError` . [#1813]
2021-01-09 16:04:19 +00:00
* Remove `actix-threadpool` dependency. Use `actix_rt::task::spawn_blocking` .
Due to this change `actix_threadpool::BlockingError` type is moved into
`actix_http::error` module. [#1878]
2020-12-27 23:23:30 +00:00
2021-01-03 23:47:04 +00:00
[#1813]: https://github.com/actix/actix-web/pull/1813
2020-12-27 23:23:30 +00:00
[#1857]: https://github.com/actix/actix-web/pull/1857
2021-01-04 11:27:32 +00:00
[#1864]: https://github.com/actix/actix-web/pull/1864
2021-01-09 16:04:19 +00:00
[#1878]: https://github.com/actix/actix-web/pull/1878
2020-12-27 23:23:30 +00:00
2021-01-15 02:11:10 +00:00
2021-08-12 19:18:09 +00:00
## 2.2.1 - 2021-08-09
### Fixed
* Potential HTTP request smuggling vulnerabilities. [RUSTSEC-2021-0081 ](https://github.com/rustsec/advisory-db/pull/977 )
2020-11-25 00:07:56 +00:00
## 2.2.0 - 2020-11-25
2020-11-02 09:23:18 +00:00
### Added
* HttpResponse builders for 1xx status codes. [#1768]
2020-11-24 10:08:57 +00:00
* `Accept::mime_precedence` and `Accept::mime_preference` . [#1793]
2020-11-24 11:37:05 +00:00
* `TryFrom<u16>` and `TryFrom<f32>` for `http::header::Quality` . [#1797]
2020-11-02 09:23:18 +00:00
2020-11-02 08:44:14 +00:00
### Fixed
* Started dropping `transfer-encoding: chunked` and `Content-Length` for 1XX and 204 responses. [#1767]
2020-11-05 16:36:15 +00:00
### Changed
2020-11-25 00:07:56 +00:00
* Upgrade `serde_urlencoded` to `0.7` . [#1773]
2020-11-05 16:36:15 +00:00
2020-11-25 00:07:56 +00:00
[#1773]: https://github.com/actix/actix-web/pull/1773
2020-11-02 08:44:14 +00:00
[#1767]: https://github.com/actix/actix-web/pull/1767
2020-11-02 09:23:18 +00:00
[#1768]: https://github.com/actix/actix-web/pull/1768
2020-11-24 10:08:57 +00:00
[#1793]: https://github.com/actix/actix-web/pull/1793
2020-11-24 11:37:05 +00:00
[#1797]: https://github.com/actix/actix-web/pull/1797
2020-10-30 02:19:56 +00:00
## 2.1.0 - 2020-10-30
2020-10-30 02:03:26 +00:00
### Added
* Added more flexible `on_connect_ext` methods for on-connect handling. [#1754]
### Changed
2020-10-30 02:19:56 +00:00
* Upgrade `base64` to `0.13` . [#1744]
* Upgrade `pin-project` to `1.0` . [#1733]
2020-10-30 02:10:05 +00:00
* Deprecate `ResponseBuilder::{if_some, if_true}` . [#1760]
[#1760]: https://github.com/actix/actix-web/pull/1760
2020-10-30 02:03:26 +00:00
[#1754]: https://github.com/actix/actix-web/pull/1754
2020-10-30 02:19:56 +00:00
[#1733]: https://github.com/actix/actix-web/pull/1733
[#1744]: https://github.com/actix/actix-web/pull/1744
2020-10-30 02:03:26 +00:00
2020-09-11 12:50:10 +00:00
## 2.0.0 - 2020-09-11
* No significant changes from `2.0.0-beta.4` .
2020-09-09 21:14:11 +00:00
## 2.0.0-beta.4 - 2020-09-09
2020-08-24 09:13:35 +00:00
### Changed
* Update actix-codec and actix-utils dependencies.
2020-09-09 21:14:11 +00:00
* Update actix-connect and actix-tls dependencies.
2020-08-17 15:28:39 +00:00
2021-02-10 12:10:03 +00:00
## 2.0.0-beta.3 - 2020-08-14
2020-08-09 20:49:43 +00:00
### Fixed
* Memory leak of `client::pool::ConnectorPoolSupport` . [#1626]
[#1626]: https://github.com/actix/actix-web/pull/1626
2020-07-21 15:25:33 +00:00
2021-02-10 12:10:03 +00:00
## 2.0.0-beta.2 - 2020-07-21
2020-07-22 00:13:10 +00:00
### Fixed
* Potential UB in h1 decoder using uninitialized memory. [#1614]
2020-07-13 14:35:30 +00:00
2020-07-21 16:24:56 +00:00
### Changed
* Fix illegal chunked encoding. [#1615]
2020-07-22 00:13:10 +00:00
[#1614]: https://github.com/actix/actix-web/pull/1614
2020-07-21 16:24:56 +00:00
[#1615]: https://github.com/actix/actix-web/pull/1615
2020-07-22 00:13:10 +00:00
2021-02-10 12:10:03 +00:00
## 2.0.0-beta.1 - 2020-07-11
2020-06-19 13:34:14 +00:00
### Changed
2020-07-13 14:35:30 +00:00
* Migrate cookie handling to `cookie` crate. [#1558]
* Update `sha-1` to 0.9. [#1586]
* Fix leak in client pool. [#1580]
* MSRV is now 1.41.1.
[#1558]: https://github.com/actix/actix-web/pull/1558
[#1586]: https://github.com/actix/actix-web/pull/1586
[#1580]: https://github.com/actix/actix-web/pull/1580
2020-06-19 13:34:14 +00:00
2020-05-12 16:48:35 +00:00
2021-02-10 12:10:03 +00:00
## 2.0.0-alpha.4 - 2020-05-21
2020-05-13 00:57:37 +00:00
### Changed
* Bump minimum supported Rust version to 1.40
2021-02-10 12:10:03 +00:00
* content_length function is removed, and you can set Content-Length by calling
no_chunking function [#1439]
2020-05-17 23:42:51 +00:00
* `BodySize::Sized64` variant has been removed. `BodySize::Sized` now receives a
`u64` instead of a `usize` .
2020-05-21 00:51:32 +00:00
* Update `base64` dependency to 0.12
2020-05-17 23:42:51 +00:00
2020-05-12 16:48:35 +00:00
### Fixed
* Support parsing of `SameSite=None` [#1503]
2020-05-18 22:46:31 +00:00
[#1439]: https://github.com/actix/actix-web/pull/1439
[#1503]: https://github.com/actix/actix-web/pull/1503
2020-05-07 17:33:33 +00:00
2021-02-10 12:10:03 +00:00
## 2.0.0-alpha.3 - 2020-05-08
2020-05-07 17:33:33 +00:00
### Fixed
* Correct spelling of ConnectError::Unresolved [#1487]
* Fix a mistake in the encoding of websocket continuation messages wherein
Item::FirstText and Item::FirstBinary are each encoded as the other.
2020-03-18 01:51:06 +00:00
### Changed
* Implement `std::error::Error` for our custom errors [#1422]
2020-04-15 21:54:34 +00:00
* Remove `failure` support for `ResponseError` since that crate
will be deprecated in the near future.
2020-03-18 01:51:06 +00:00
[#1422]: https://github.com/actix/actix-web/pull/1422
2020-05-07 17:33:33 +00:00
[#1487]: https://github.com/actix/actix-web/pull/1487
2020-03-18 01:51:06 +00:00
2020-03-04 06:20:14 +00:00
2021-02-10 12:10:03 +00:00
## 2.0.0-alpha.2 - 2020-03-07
2020-03-04 06:20:14 +00:00
### Changed
2020-03-07 15:43:17 +00:00
* Update `actix-connect` and `actix-tls` dependency to 2.0.0-alpha.1. [#1395]
2021-02-10 12:10:03 +00:00
* Change default initial window size and connection window size for HTTP2 to 2MB and 1MB
respectively 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]
2020-03-07 15:43:17 +00:00
* 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
[#1395]: https://github.com/actix/actix-web/pull/1395
2020-03-04 06:20:14 +00:00
2020-01-23 01:08:23 +00:00
2021-02-10 12:10:03 +00:00
## 2.0.0-alpha.1 - 2020-02-27
Upgrade `time` to 0.2.5 (#1254)
* Use `OffsetDateTime` instead of `PrimitiveDateTime`
* Parse time strings with `PrimitiveDateTime::parse` instead of `OffsetDateTime::parse`
* Remove unused `time` dependency from actix-multipart
* Fix a few errors with time related tests from the `time` upgrade
* Implement logic to convert a RFC 850 two-digit year into a full length year, and organize time parsing related functions
* Upgrade `time` to 0.2.2
* Correctly parse C's asctime time format using time 0.2's new format patterns
* Update CHANGES.md
* Use `time` without any of its deprecated functions
* Enforce a UTC time offset when converting an `OffsetDateTime` into a Header value
* Use the more readable version of `Duration::seconds(0)`, `Duration::zero()`
* Remove unneeded conversion of time::Duration to std::time::Duration
* Use `OffsetDateTime::as_seconds_f64` instead of manually calculating the amount of seconds from nanoseconds
* Replace a few additional instances of `Duration::seconds(0)` with `Duration::zero()`
* Truncate any nanoseconds from a supplied `Duration` within `Cookie::set_max_age` to ensure two Cookies with the same amount whole seconds equate to one another
* Fix the actix-http::cookie::do_not_panic_on_large_max_ages test
* Convert `Cookie::max_age` and `Cookie::expires` examples to `time` 0.2
Mainly minor changes. Type inference can be used alongside the new
`time::parse` method, such that the type doesn't need to be specified.
This will be useful if a refactoring takes place that changes the type.
There are also new macros, which are used where possible.
One change that is not immediately obvious, in `HttpDate`, there was an
unnecessary conditional. As the time crate allows for negative durations
(and can perform arithmetic with such), the if/else can be removed
entirely.
Time v0.2.3 also has some bug fixes, which is why I am not using a more
general v0.2 in Cargo.toml.
v0.2.3 has been yanked, as it was backwards imcompatible. This version
reverts the breaking change, while still supporting rustc back to
1.34.0.
* Add missing `time::offset` macro import
* Fix type confusion when using `time::parse` followed by `using_offset`
* Update `time` to 0.2.5
* Update CHANGES.md
Co-authored-by: Jacob Pratt <the.z.cuber@gmail.com>
2020-01-28 11:44:22 +00:00
### Changed
2020-02-27 02:20:41 +00:00
* Update the `time` dependency to 0.2.7.
2020-02-27 00:34:49 +00:00
* Moved actors messages support from actix crate, enabled with feature `actors` .
2021-02-10 12:10:03 +00:00
* Breaking change: trait MessageBody requires Unpin and accepting `Pin<&mut Self>` instead of
`&mut self` in the poll_next().
2020-01-29 08:15:13 +00:00
* MessageBody is not implemented for & 'static [u8] anymore.
2020-01-23 01:08:23 +00:00
### Fixed
* Allow `SameSite=None` cookies to be sent in a response.
2019-12-17 07:34:25 +00:00
2021-02-10 12:10:03 +00:00
## 1.0.1 - 2019-12-20
2019-12-17 07:34:25 +00:00
### Fixed
* Poll upgrade service's readiness from HTTP service handlers
2019-12-20 07:50:07 +00:00
* Replace brotli with brotli2 #1224
2019-12-12 08:06:54 +00:00
2021-02-10 12:10:03 +00:00
## 1.0.0 - 2019-12-13
2019-12-12 08:06:54 +00:00
### Added
* Add websockets continuation frame support
2019-12-12 09:08:08 +00:00
### Changed
* Replace `flate2-xxx` features with `compress`
2019-12-09 11:40:15 +00:00
2021-02-10 12:10:03 +00:00
## 1.0.0-alpha.5 - 2019-12-09
2019-12-09 11:40:15 +00:00
### Fixed
* Check `Upgrade` service readiness before calling it
2021-02-10 12:10:03 +00:00
* Fix buffer remaining capacity calculation
2019-12-09 15:44:26 +00:00
2019-12-09 01:01:22 +00:00
### Changed
* Websockets: Ping and Pong should have binary data #1049
2019-12-08 14:15:51 +00:00
2021-02-10 12:10:03 +00:00
## 1.0.0-alpha.4 - 2019-12-08
2019-12-07 15:41:34 +00:00
### Added
* Add impl ResponseBuilder for Error
2019-12-07 16:01:55 +00:00
### Changed
* Use rust based brotli compression library
2021-02-10 12:10:03 +00:00
## 1.0.0-alpha.3 - 2019-12-07
2019-12-07 07:00:03 +00:00
### Changed
* Migrate to tokio 0.2
* Migrate to `std::future`
2021-02-10 12:10:03 +00:00
## 0.2.11 - 2019-11-06
2019-09-25 03:33:52 +00:00
### Added
* Add support for serde_json::Value to be passed as argument to ResponseBuilder.body()
2021-02-10 12:10:03 +00:00
* Add an additional `filename*` param in the `Content-Disposition` header of
`actix_files::NamedFile` to be more compatible. (#1151)
2019-11-06 18:35:13 +00:00
* Allow to use `std::convert::Infallible` as `actix_http::error::Error`
2019-10-07 04:56:24 +00:00
### Fixed
2021-02-10 12:10:03 +00:00
* To be compatible with non-English error responses, `ResponseError` rendered with `text/plain;
charset=utf-8` header [#1118]
2019-10-07 04:56:24 +00:00
2021-02-10 12:10:03 +00:00
[#1878]: https://github.com/actix/actix-web/pull/1878
2019-09-25 03:33:52 +00:00
2019-09-10 04:29:32 +00:00
2021-02-10 12:10:03 +00:00
## 0.2.10 - 2019-09-11
2019-09-10 04:29:32 +00:00
### Added
2021-02-10 12:10:03 +00:00
* Add support for sending HTTP requests with `Rc<RequestHead>` in addition to sending HTTP requests
with `RequestHead`
2019-09-10 04:29:32 +00:00
2019-09-01 07:15:02 +00:00
### Fixed
2019-09-13 05:56:24 +00:00
* h2 will use error response #1080
2019-09-01 07:15:02 +00:00
* on_connect result isn't added to request extensions for http2 requests #1009
2021-02-10 12:10:03 +00:00
## 0.2.9 - 2019-08-13
2019-08-07 14:43:03 +00:00
### Changed
* Dropped the `byteorder` -dependency in favor of `stdlib` -implementation
2019-08-13 17:48:11 +00:00
* Update percent-encoding to 2.1
* Update serde_urlencoded to 0.6.1
2019-08-13 13:20:29 +00:00
### Fixed
* Fixed a panic in the HTTP2 handshake in client HTTP requests (#1031)
2019-08-07 14:43:03 +00:00
2021-02-10 12:10:03 +00:00
## 0.2.8 - 2019-08-01
2019-08-01 22:26:30 +00:00
### Added
2019-07-31 20:02:56 +00:00
* Add `rustls` support
2019-08-01 22:26:30 +00:00
* Add `Clone` impl for `HeaderMap`
2019-07-22 05:35:00 +00:00
### Fixed
2019-07-30 15:00:46 +00:00
* awc client panic #1016
2021-02-10 12:10:03 +00:00
* Invalid response with compression middleware enabled, but compression-related features
disabled #997
2019-07-30 15:00:46 +00:00
2019-07-18 11:37:41 +00:00
2021-02-10 12:10:03 +00:00
## 0.2.7 - 2019-07-18
2019-07-18 11:37:41 +00:00
### Added
* Add support for downcasting response errors #986
2021-02-10 12:10:03 +00:00
## 0.2.6 - 2019-07-17
2019-07-01 03:37:03 +00:00
### Changed
2019-07-17 07:55:44 +00:00
* Replace `ClonableService` with local copy
2019-07-01 03:37:03 +00:00
* Upgrade `rand` dependency version to 0.7
2019-07-17 07:55:44 +00:00
2021-02-10 12:10:03 +00:00
## 0.2.5 - 2019-06-28
2019-06-28 08:34:26 +00:00
### Added
* Add `on-connect` callback, `HttpServiceBuilder::on_connect()` #946
2019-06-18 06:43:25 +00:00
### Changed
2019-06-28 06:34:43 +00:00
* Use `encoding_rs` crate instead of unmaintained `encoding` crate
* Add `Copy` and `Clone` impls for `ws::Codec`
2019-06-18 06:43:25 +00:00
2021-02-10 12:10:03 +00:00
## 0.2.4 - 2019-06-16
2019-06-16 15:54:17 +00:00
### Fixed
* Do not compress NoContent (204) responses #918
2021-02-10 12:10:03 +00:00
## 0.2.3 - 2019-06-02
2019-06-01 11:57:25 +00:00
### Added
* Debug impl for ResponseBuilder
* From SizedStream and BodyStream for Body
### Changed
2019-06-02 07:05:22 +00:00
* SizedStream uses u64
2019-06-01 11:57:25 +00:00
2021-02-10 12:10:03 +00:00
## 0.2.2 - 2019-05-29
2019-05-29 23:15:12 +00:00
### Fixed
* Parse incoming stream before closing stream on disconnect #868
2021-02-10 12:10:03 +00:00
## 0.2.1 - 2019-05-25
2019-05-25 10:07:40 +00:00
### Fixed
* Handle socket read disconnect
2021-02-10 12:10:03 +00:00
## 0.2.0 - 2019-05-12
2019-05-12 15:34:51 +00:00
### Changed
* Update actix-service to 0.4
* Expect and upgrade services accept `ServerConfig` config.
2019-05-12 16:56:55 +00:00
### Deleted
* `OneRequest` service
2019-05-12 15:34:51 +00:00
2021-02-10 12:10:03 +00:00
## 0.1.5 - 2019-05-04
2019-05-03 22:26:34 +00:00
### Fixed
* Clean up response extensions in response pool #817
2021-02-10 12:10:03 +00:00
## 0.1.4 - 2019-04-24
2019-04-24 18:27:57 +00:00
### Added
* Allow to render h1 request headers in `Camel-Case`
2019-04-24 18:57:40 +00:00
### Fixed
* Read until eof for http/1.0 responses #771
2019-04-24 18:27:57 +00:00
2021-02-10 12:10:03 +00:00
## 0.1.3 - 2019-04-23
2019-04-23 21:57:03 +00:00
### Fixed
* Fix http client pool management
* Fix http client wait queue management #794
2021-02-10 12:10:03 +00:00
## 0.1.2 - 2019-04-23
2019-04-23 16:42:19 +00:00
### Fixed
* Fix BorrowMutError panic in client connector #793
2021-02-10 12:10:03 +00:00
## 0.1.1 - 2019-04-19
2019-06-18 06:43:25 +00:00
### Changed
2019-04-20 00:23:17 +00:00
* Cookie::max_age() accepts value in seconds
* Cookie::max_age_time() accepts value in time::Duration
2019-04-20 01:03:44 +00:00
* Allow to specify server address for client connector
2019-04-20 00:23:17 +00:00
2021-02-10 12:10:03 +00:00
## 0.1.0 - 2019-04-16
2019-04-16 16:54:02 +00:00
### Added
* Expose peer addr via `Request::peer_addr()` and `RequestHead::peer_addr`
2019-04-15 03:45:44 +00:00
### Changed
2019-04-16 17:27:58 +00:00
* `actix_http::encoding` always available
2019-04-15 03:45:44 +00:00
* use trust-dns-resolver 0.11.0
2021-02-10 12:10:03 +00:00
## 0.1.0-alpha.5 - 2019-04-12
2019-04-09 00:49:27 +00:00
### Added
* Allow to use custom service for upgrade requests
2019-04-10 19:24:17 +00:00
* Added `h1::SendResponse` future.
### Changed
* MessageBody::length() renamed to MessageBody::size() for consistency
2019-04-11 21:00:32 +00:00
* ws handshake verification functions take RequestHead instead of Request
2019-04-09 00:49:27 +00:00
2021-02-10 12:10:03 +00:00
## 0.1.0-alpha.4 - 2019-04-08
2019-04-04 20:23:38 +00:00
### Added
2019-04-09 00:49:27 +00:00
* Allow to use custom `Expect` handler
2019-04-04 20:23:38 +00:00
* Add minimal `std::error::Error` impl for `Error`
2019-04-03 19:44:47 +00:00
### Changed
* Export IntoHeaderValue
2019-04-04 02:55:19 +00:00
* Render error and return as response body
2021-02-10 12:10:03 +00:00
* Use thread pool for response body compression
2019-04-04 20:17:55 +00:00
2019-04-03 10:20:20 +00:00
### Deleted
* Removed PayloadBuffer
2019-04-04 20:17:55 +00:00
2021-02-10 12:10:03 +00:00
## 0.1.0-alpha.3 - 2019-04-02
2019-04-03 04:49:31 +00:00
### Added
* Warn when an unsealed private cookie isn't valid UTF-8
2019-04-01 17:26:09 +00:00
### Fixed
* Rust 1.31.0 compatibility
2019-04-02 17:19:56 +00:00
* Preallocate read buffer for h1 codec
2019-04-03 03:50:25 +00:00
* Detect socket disconnection during protocol selection
2019-04-01 17:26:09 +00:00
2021-02-10 12:10:03 +00:00
## 0.1.0-alpha.2 - 2019-03-29
2019-03-30 01:22:49 +00:00
### Added
* Added ws::Message::Nop, no-op websockets message
2019-03-29 04:15:26 +00:00
### Changed
2021-02-10 12:10:03 +00:00
* Do not use thread pool for decompression if chunk size is smaller than 2048.
2019-03-29 04:15:26 +00:00
2019-03-26 18:54:35 +00:00
2021-02-10 12:10:03 +00:00
## 0.1.0-alpha.1 - 2019-03-28
2019-03-26 18:54:35 +00:00
* Initial impl