1
0
mirror of https://github.com/fafhrd91/actix-web synced 2024-11-30 18:44:35 +01:00
actix-web/actix-http/CHANGES.md

447 lines
13 KiB
Markdown
Raw Normal View History

2019-03-26 19:54:35 +01:00
# Changes
2021-01-02 01:12:18 +01:00
## Unreleased - 2021-xx-xx
2021-02-13 16:08:43 +01:00
### Changed
* Feature `cookies` is now optional and disabled by default. [#1981]
2021-02-16 09:27:14 +01:00
### Removed
* re-export of `futures_channel::oneshot::Canceled` is removed from `error` mod. [#1994]
* `ResponseError` impl for `futures_channel::oneshot::Canceled` is removed. [#1994]
2021-02-13 16:08:43 +01:00
[#1981]: https://github.com/actix/actix-web/pull/1981
2021-02-16 09:27:14 +01:00
[#1994]: https://github.com/actix/actix-web/pull/1994
2021-02-10 13:10:03 +01:00
## 3.0.0-beta.3 - 2021-02-10
* No notable changes.
## 3.0.0-beta.2 - 2021-02-10
2021-01-15 03:11:10 +01: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 06:19:32 +01:00
* `ContentEncoding` implements all necessary header traits. [#1912]
2021-02-09 23:59:17 +01: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]
* `trust-dns` optional feature to enable `trust-dns-resolver` as client dns resolver. [#1969]
2021-01-15 03:11:10 +01: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]
* `Extensions::insert` returns Option of replaced item. [#1904]
2021-02-10 13:10:03 +01: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]
* `client::ConnectorConfig` default timeout changed to 5 seconds. [#1905]
2021-02-10 13:10:03 +01:00
* Simplify `BlockingError` type to a unit struct. It's now only triggered when blocking thread pool
is dead. [#1957]
2021-02-09 23:59:17 +01: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-15 03:11:10 +01: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]
* `actors` optional feature. [#1969]
* `ResponseError` impl for `actix::MailboxError`. [#1969]
2021-01-15 03:11:10 +01:00
2021-02-09 23:59:17 +01:00
### Documentation
* Vastly improve docs and add examples for `HeaderMap`. [#1964]
2021-01-15 03:11:10 +01:00
[#1869]: https://github.com/actix/actix-web/pull/1869
[#1894]: https://github.com/actix/actix-web/pull/1894
[#1903]: https://github.com/actix/actix-web/pull/1903
[#1904]: https://github.com/actix/actix-web/pull/1904
[#1905]: https://github.com/actix/actix-web/pull/1905
2021-01-17 06:19:32 +01:00
[#1912]: https://github.com/actix/actix-web/pull/1912
[#1957]: https://github.com/actix/actix-web/pull/1957
2021-02-09 23:59:17 +01:00
[#1964]: https://github.com/actix/actix-web/pull/1964
[#1969]: https://github.com/actix/actix-web/pull/1969
2021-01-07 21:02:08 +01:00
## 3.0.0-beta.1 - 2021-01-07
2021-01-06 19:58:24 +01:00
### Added
* Add `Http3` to `Protocol` enum for future compatibility and also mark `#[non_exhaustive]`.
2020-12-23 00:45:31 +01:00
### Changed
* Update `actix-*` dependencies to tokio `1.0` based versions. [#1813]
* Bumped `rand` to `0.8`.
* Update `bytes` to `1.0`. [#1813]
* Update `h2` to `0.3`. [#1813]
* The `ws::Message::Text` enum variant now contains a `bytestring::ByteString`. [#1864]
2021-01-02 01:12:18 +01:00
### Removed
* Deprecated `on_connect` methods have been removed. Prefer the new
`on_connect_ext` technique. [#1857]
* 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]
* 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]
[#1813]: https://github.com/actix/actix-web/pull/1813
[#1857]: https://github.com/actix/actix-web/pull/1857
[#1864]: https://github.com/actix/actix-web/pull/1864
[#1878]: https://github.com/actix/actix-web/pull/1878
2021-01-15 03:11:10 +01:00
2020-11-25 01:07:56 +01:00
## 2.2.0 - 2020-11-25
### Added
* HttpResponse builders for 1xx status codes. [#1768]
* `Accept::mime_precedence` and `Accept::mime_preference`. [#1793]
* `TryFrom<u16>` and `TryFrom<f32>` for `http::header::Quality`. [#1797]
### Fixed
* Started dropping `transfer-encoding: chunked` and `Content-Length` for 1XX and 204 responses. [#1767]
### Changed
2020-11-25 01:07:56 +01:00
* Upgrade `serde_urlencoded` to `0.7`. [#1773]
2020-11-25 01:07:56 +01:00
[#1773]: https://github.com/actix/actix-web/pull/1773
[#1767]: https://github.com/actix/actix-web/pull/1767
[#1768]: https://github.com/actix/actix-web/pull/1768
[#1793]: https://github.com/actix/actix-web/pull/1793
[#1797]: https://github.com/actix/actix-web/pull/1797
2020-10-30 03:19:56 +01:00
## 2.1.0 - 2020-10-30
### Added
* Added more flexible `on_connect_ext` methods for on-connect handling. [#1754]
### Changed
2020-10-30 03:19:56 +01:00
* Upgrade `base64` to `0.13`. [#1744]
* Upgrade `pin-project` to `1.0`. [#1733]
2020-10-30 03:10:05 +01:00
* Deprecate `ResponseBuilder::{if_some, if_true}`. [#1760]
[#1760]: https://github.com/actix/actix-web/pull/1760
[#1754]: https://github.com/actix/actix-web/pull/1754
2020-10-30 03:19:56 +01:00
[#1733]: https://github.com/actix/actix-web/pull/1733
[#1744]: https://github.com/actix/actix-web/pull/1744
2020-09-11 14:50:10 +02:00
## 2.0.0 - 2020-09-11
* No significant changes from `2.0.0-beta.4`.
2020-09-09 23:14:11 +02:00
## 2.0.0-beta.4 - 2020-09-09
### Changed
* Update actix-codec and actix-utils dependencies.
2020-09-09 23:14:11 +02:00
* Update actix-connect and actix-tls dependencies.
2020-08-17 17:28:39 +02:00
2021-02-10 13:10:03 +01:00
## 2.0.0-beta.3 - 2020-08-14
2020-08-09 22:49:43 +02:00
### Fixed
* Memory leak of `client::pool::ConnectorPoolSupport`. [#1626]
[#1626]: https://github.com/actix/actix-web/pull/1626
2021-02-10 13:10:03 +01:00
## 2.0.0-beta.2 - 2020-07-21
2020-07-22 02:13:10 +02:00
### Fixed
* Potential UB in h1 decoder using uninitialized memory. [#1614]
### Changed
* Fix illegal chunked encoding. [#1615]
2020-07-22 02:13:10 +02:00
[#1614]: https://github.com/actix/actix-web/pull/1614
[#1615]: https://github.com/actix/actix-web/pull/1615
2020-07-22 02:13:10 +02:00
2021-02-10 13:10:03 +01:00
## 2.0.0-beta.1 - 2020-07-11
### Changed
* 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
2021-02-10 13:10:03 +01:00
## 2.0.0-alpha.4 - 2020-05-21
2020-05-13 02:57:37 +02:00
### Changed
* Bump minimum supported Rust version to 1.40
2021-02-10 13:10:03 +01:00
* 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
`u64` instead of a `usize`.
2020-05-21 02:51:32 +02:00
* Update `base64` dependency to 0.12
### Fixed
* Support parsing of `SameSite=None` [#1503]
[#1439]: https://github.com/actix/actix-web/pull/1439
[#1503]: https://github.com/actix/actix-web/pull/1503
2020-05-07 19:33:33 +02:00
2021-02-10 13:10:03 +01:00
## 2.0.0-alpha.3 - 2020-05-08
2020-05-07 19:33:33 +02: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.
### Changed
* Implement `std::error::Error` for our custom errors [#1422]
* Remove `failure` support for `ResponseError` since that crate
will be deprecated in the near future.
[#1422]: https://github.com/actix/actix-web/pull/1422
2020-05-07 19:33:33 +02:00
[#1487]: https://github.com/actix/actix-web/pull/1487
2020-03-04 07:20:14 +01:00
2021-02-10 13:10:03 +01:00
## 2.0.0-alpha.2 - 2020-03-07
2020-03-04 07:20:14 +01:00
### Changed
2020-03-07 16:43:17 +01:00
* Update `actix-connect` and `actix-tls` dependency to 2.0.0-alpha.1. [#1395]
2021-02-10 13:10:03 +01: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 16:43:17 +01: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 07:20:14 +01:00
2021-02-10 13:10:03 +01: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 12:44:22 +01:00
### Changed
2020-02-27 03:20:41 +01:00
* Update the `time` dependency to 0.2.7.
* Moved actors messages support from actix crate, enabled with feature `actors`.
2021-02-10 13:10:03 +01:00
* 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.
### Fixed
* Allow `SameSite=None` cookies to be sent in a response.
2021-02-10 13:10:03 +01:00
## 1.0.1 - 2019-12-20
### Fixed
* Poll upgrade service's readiness from HTTP service handlers
2019-12-20 08:50:07 +01:00
* Replace brotli with brotli2 #1224
2021-02-10 13:10:03 +01:00
## 1.0.0 - 2019-12-13
### Added
* Add websockets continuation frame support
### Changed
* Replace `flate2-xxx` features with `compress`
2021-02-10 13:10:03 +01:00
## 1.0.0-alpha.5 - 2019-12-09
### Fixed
* Check `Upgrade` service readiness before calling it
2021-02-10 13:10:03 +01:00
* Fix buffer remaining capacity calculation
2019-12-09 02:01:22 +01:00
### Changed
* Websockets: Ping and Pong should have binary data #1049
2019-12-08 15:15:51 +01:00
2021-02-10 13:10:03 +01:00
## 1.0.0-alpha.4 - 2019-12-08
2019-12-07 16:41:34 +01:00
### Added
* Add impl ResponseBuilder for Error
2019-12-07 17:01:55 +01:00
### Changed
* Use rust based brotli compression library
2021-02-10 13:10:03 +01:00
## 1.0.0-alpha.3 - 2019-12-07
2019-12-07 08:00:03 +01:00
### Changed
* Migrate to tokio 0.2
* Migrate to `std::future`
2021-02-10 13:10:03 +01:00
## 0.2.11 - 2019-11-06
### Added
* Add support for serde_json::Value to be passed as argument to ResponseBuilder.body()
2021-02-10 13:10:03 +01:00
* Add an additional `filename*` param in the `Content-Disposition` header of
`actix_files::NamedFile` to be more compatible. (#1151)
2019-11-06 19:35:13 +01:00
* Allow to use `std::convert::Infallible` as `actix_http::error::Error`
### Fixed
2021-02-10 13:10:03 +01:00
* To be compatible with non-English error responses, `ResponseError` rendered with `text/plain;
charset=utf-8` header [#1118]
2021-02-10 13:10:03 +01:00
[#1878]: https://github.com/actix/actix-web/pull/1878
2021-02-10 13:10:03 +01:00
## 0.2.10 - 2019-09-11
### Added
2021-02-10 13:10:03 +01:00
* Add support for sending HTTP requests with `Rc<RequestHead>` in addition to sending HTTP requests
with `RequestHead`
### Fixed
* h2 will use error response #1080
* on_connect result isn't added to request extensions for http2 requests #1009
2021-02-10 13:10:03 +01:00
## 0.2.9 - 2019-08-13
2019-08-07 16:43:03 +02:00
### Changed
* Dropped the `byteorder`-dependency in favor of `stdlib`-implementation
2019-08-13 19:48:11 +02:00
* Update percent-encoding to 2.1
* Update serde_urlencoded to 0.6.1
2019-08-13 15:20:29 +02:00
### Fixed
* Fixed a panic in the HTTP2 handshake in client HTTP requests (#1031)
2019-08-07 16:43:03 +02:00
2021-02-10 13:10:03 +01:00
## 0.2.8 - 2019-08-01
2019-08-02 00:26:30 +02:00
### Added
* Add `rustls` support
2019-08-02 00:26:30 +02:00
* Add `Clone` impl for `HeaderMap`
### Fixed
2019-07-30 17:00:46 +02:00
* awc client panic #1016
2021-02-10 13:10:03 +01:00
* Invalid response with compression middleware enabled, but compression-related features
disabled #997
2019-07-30 17:00:46 +02:00
2019-07-18 13:37:41 +02:00
2021-02-10 13:10:03 +01:00
## 0.2.7 - 2019-07-18
2019-07-18 13:37:41 +02:00
### Added
* Add support for downcasting response errors #986
2021-02-10 13:10:03 +01:00
## 0.2.6 - 2019-07-17
2019-07-01 05:37:03 +02:00
### Changed
* Replace `ClonableService` with local copy
2019-07-01 05:37:03 +02:00
* Upgrade `rand` dependency version to 0.7
2021-02-10 13:10:03 +01:00
## 0.2.5 - 2019-06-28
2019-06-28 10:34:26 +02:00
### Added
* Add `on-connect` callback, `HttpServiceBuilder::on_connect()` #946
### Changed
2019-06-28 08:34:43 +02:00
* Use `encoding_rs` crate instead of unmaintained `encoding` crate
* Add `Copy` and `Clone` impls for `ws::Codec`
2021-02-10 13:10:03 +01:00
## 0.2.4 - 2019-06-16
### Fixed
* Do not compress NoContent (204) responses #918
2021-02-10 13:10:03 +01:00
## 0.2.3 - 2019-06-02
2019-06-01 13:57:25 +02:00
### Added
* Debug impl for ResponseBuilder
* From SizedStream and BodyStream for Body
### Changed
2019-06-02 09:05:22 +02:00
* SizedStream uses u64
2019-06-01 13:57:25 +02:00
2021-02-10 13:10:03 +01:00
## 0.2.2 - 2019-05-29
2019-05-30 01:15:12 +02:00
### Fixed
* Parse incoming stream before closing stream on disconnect #868
2021-02-10 13:10:03 +01:00
## 0.2.1 - 2019-05-25
2019-05-25 12:07:40 +02:00
### Fixed
* Handle socket read disconnect
2021-02-10 13:10:03 +01:00
## 0.2.0 - 2019-05-12
2019-05-12 17:34:51 +02:00
### Changed
* Update actix-service to 0.4
* Expect and upgrade services accept `ServerConfig` config.
2019-05-12 18:56:55 +02:00
### Deleted
* `OneRequest` service
2019-05-12 17:34:51 +02:00
2021-02-10 13:10:03 +01:00
## 0.1.5 - 2019-05-04
### Fixed
* Clean up response extensions in response pool #817
2021-02-10 13:10:03 +01:00
## 0.1.4 - 2019-04-24
### Added
* Allow to render h1 request headers in `Camel-Case`
### Fixed
* Read until eof for http/1.0 responses #771
2021-02-10 13:10:03 +01:00
## 0.1.3 - 2019-04-23
### Fixed
* Fix http client pool management
* Fix http client wait queue management #794
2021-02-10 13:10:03 +01:00
## 0.1.2 - 2019-04-23
### Fixed
* Fix BorrowMutError panic in client connector #793
2021-02-10 13:10:03 +01:00
## 0.1.1 - 2019-04-19
### Changed
2019-04-20 02:23:17 +02:00
* Cookie::max_age() accepts value in seconds
* Cookie::max_age_time() accepts value in time::Duration
* Allow to specify server address for client connector
2019-04-20 02:23:17 +02:00
2021-02-10 13:10:03 +01:00
## 0.1.0 - 2019-04-16
### Added
* Expose peer addr via `Request::peer_addr()` and `RequestHead::peer_addr`
2019-04-15 05:45:44 +02:00
### Changed
2019-04-16 19:27:58 +02:00
* `actix_http::encoding` always available
2019-04-15 05:45:44 +02:00
* use trust-dns-resolver 0.11.0
2021-02-10 13:10:03 +01:00
## 0.1.0-alpha.5 - 2019-04-12
### Added
* Allow to use custom service for upgrade requests
* Added `h1::SendResponse` future.
### Changed
* MessageBody::length() renamed to MessageBody::size() for consistency
* ws handshake verification functions take RequestHead instead of Request
2021-02-10 13:10:03 +01:00
## 0.1.0-alpha.4 - 2019-04-08
### Added
* Allow to use custom `Expect` handler
* Add minimal `std::error::Error` impl for `Error`
2019-04-03 21:44:47 +02:00
### Changed
* Export IntoHeaderValue
* Render error and return as response body
2021-02-10 13:10:03 +01:00
* Use thread pool for response body compression
2019-04-03 12:20:20 +02:00
### Deleted
* Removed PayloadBuffer
2021-02-10 13:10:03 +01:00
## 0.1.0-alpha.3 - 2019-04-02
2019-04-03 06:49:31 +02:00
### Added
* Warn when an unsealed private cookie isn't valid UTF-8
2019-04-01 19:26:09 +02:00
### Fixed
* Rust 1.31.0 compatibility
* Preallocate read buffer for h1 codec
* Detect socket disconnection during protocol selection
2019-04-01 19:26:09 +02:00
2021-02-10 13:10:03 +01:00
## 0.1.0-alpha.2 - 2019-03-29
### Added
* Added ws::Message::Nop, no-op websockets message
### Changed
2021-02-10 13:10:03 +01:00
* Do not use thread pool for decompression if chunk size is smaller than 2048.
2019-03-26 19:54:35 +01:00
2021-02-10 13:10:03 +01:00
## 0.1.0-alpha.1 - 2019-03-28
2019-03-26 19:54:35 +01:00
* Initial impl