fix changelog

This commit is contained in:
Rob Ede 2022-09-26 00:29:31 +01:00
parent 6e0633473d
commit 98ea147b97
No known key found for this signature in database
GPG Key ID: 97C636207D3EF933
1 changed files with 129 additions and 157 deletions

View File

@ -4,7 +4,9 @@
### Added
- Add `ContentDisposition::attachment` constructor. [#2867]
- Add `ErrorHandlers::default_handler()` (as well as `default_handler_{server, client}()`) to make registering handlers for groups of response statuses easier. [#2784]
- Add `Logger::custom_status_replace()`. [#2631]
[#2631]: https://github.com/actix/actix-web/pull/2631
[#2784]: https://github.com/actix/actix-web/pull/2784
[#2867]: https://github.com/actix/actix-web/pull/2867
@ -49,11 +51,6 @@
[#2742]: https://github.com/actix/actix-web/pull/2742
[#2743]: https://github.com/actix/actix-web/pull/2743
### Added
- `middleware::logger::custom_status_replace`. [#2631]
[#2631]: https://github.com/actix/actix-web/pull/2631
## 4.0.1 - 2022-02-25
### Fixed
@ -333,52 +330,45 @@
<summary>4.0.0 Pre-Releases</summary>
## 4.0.0-rc.3 - 2022-02-08
### Changed
- `middleware::Condition` gained a broader compatibility; `Compat` is needed in fewer cases. [#2635]
### Added
- Implement `Responder` for `Vec<u8>`. [#2625]
- Re-export `KeepAlive` in `http` mod. [#2625]
[#2625]: https://github.com/actix/actix-web/pull/2625
[#2635]: https://github.com/actix/actix-web/pull/2635
## 4.0.0-rc.2 - 2022-02-02
### Added
- On-by-default `macros` feature flag to enable routing and runtime macros. [#2619]
### Removed
- `rt::{Arbiter, ArbiterHandle}` re-exports. [#2619]
[#2619]: https://github.com/actix/actix-web/pull/2619
## 4.0.0-rc.1 - 2022-01-31
### Changed
- Rename `HttpServer::{client_timeout => client_request_timeout}`. [#2611]
- Rename `HttpServer::{client_shutdown => client_disconnect_timeout}`. [#2611]
### Removed
- `impl Future for HttpResponse`. [#2601]
[#2601]: https://github.com/actix/actix-web/pull/2601
[#2611]: https://github.com/actix/actix-web/pull/2611
## 4.0.0-beta.21 - 2022-01-21
### Added
- `HttpResponse::add_removal_cookie`. [#2586]
- `Logger::log_target`. [#2594]
### Removed
- `HttpRequest::req_data[_mut]()`; request-local data is still available through `.extensions()`. [#2585]
- `HttpRequestBuilder::del_cookie`. [#2591]
@ -387,15 +377,13 @@
[#2591]: https://github.com/actix/actix-web/pull/2591
[#2594]: https://github.com/actix/actix-web/pull/2594
## 4.0.0-beta.20 - 2022-01-14
### Added
- `GuardContext::header` [#2569]
- `ServiceConfig::configure` to allow easy nesting of configuration functions. [#1988]
### Changed
- `HttpResponse` can now be used as a `Responder` with any body type. [#2567]
- `Result` extractor wrapper can now convert error types. [#2581]
- Associated types in `FromRequest` impl for `Option` and `Result` has changed. [#2581]
@ -409,61 +397,52 @@
[#2582]: https://github.com/actix/actix-web/pull/2582
[#2584]: https://github.com/actix/actix-web/pull/2584
## 4.0.0-beta.19 - 2022-01-04
### Added
- `impl Hash` for `http::header::Encoding`. [#2501]
- `AcceptEncoding::negotiate()`. [#2501]
### Changed
- `AcceptEncoding::preference` now returns `Option<Preference<Encoding>>`. [#2501]
- Rename methods `BodyEncoding::{encoding => encode_with, get_encoding => preferred_encoding}`. [#2501]
- `http::header::Encoding` now only represents `Content-Encoding` types. [#2501]
### Fixed
- Auto-negotiation of content encoding is more fault-tolerant when using the `Compress` middleware. [#2501]
### Removed
- `Compress::new`; restricting compression algorithm is done through feature flags. [#2501]
- `BodyEncoding` trait; signalling content encoding is now only done via the `Content-Encoding` header. [#2565]
[#2501]: https://github.com/actix/actix-web/pull/2501
[#2565]: https://github.com/actix/actix-web/pull/2565
## 4.0.0-beta.18 - 2021-12-29
### Changed
- Update `cookie` dependency (re-exported) to `0.16`. [#2555]
- Minimum supported Rust version (MSRV) is now 1.54.
### Security
- `cookie` upgrade addresses [`RUSTSEC-2020-0071`].
[#2555]: https://github.com/actix/actix-web/pull/2555
[`rustsec-2020-0071`]: https://rustsec.org/advisories/RUSTSEC-2020-0071.html
[`RUSTSEC-2020-0071`]: https://rustsec.org/advisories/RUSTSEC-2020-0071.html
## 4.0.0-beta.17 - 2021-12-29
### Added
- `guard::GuardContext` for use with the `Guard` trait. [#2552]
- `ServiceRequest::guard_ctx` for obtaining a guard context. [#2552]
### Changed
- `Guard` trait now receives a `&GuardContext`. [#2552]
- `guard::fn_guard` functions now receives a `&GuardContext`. [#2552]
- Some guards now return `impl Guard` and their concrete types are made private: `guard::Header` and all the method guards. [#2552]
- The `Not` guard is now generic over the type of guard it wraps. [#2552]
### Fixed
- Rename `ConnectionInfo::{remote_addr => peer_addr}`, deprecating the old name. [#2554]
- `ConnectionInfo::peer_addr` will not return the port number. [#2554]
- `ConnectionInfo::realip_remote_addr` will not return the port number if sourcing the IP from the peer's socket address. [#2554]
@ -471,25 +450,22 @@
[#2552]: https://github.com/actix/actix-web/pull/2552
[#2554]: https://github.com/actix/actix-web/pull/2554
## 4.0.0-beta.16 - 2021-12-27
### Changed
- No longer require `Scope` service body type to be boxed. [#2523]
- No longer require `Resource` service body type to be boxed. [#2526]
[#2523]: https://github.com/actix/actix-web/pull/2523
[#2526]: https://github.com/actix/actix-web/pull/2526
## 4.0.0-beta.15 - 2021-12-17
### Added
- Method on `Responder` trait (`customize`) for customizing responders and `CustomizeResponder` struct. [#2510]
- Implement `Debug` for `DefaultHeaders`. [#2510]
### Changed
- Align `DefaultHeader` method terminology, deprecating previous methods. [#2510]
- Response service types in `ErrorHandlers` middleware now use `ServiceResponse<EitherBody<B>>` to allow changing the body type. [#2515]
- Both variants in `ErrorHandlerResponse` now use `ServiceResponse<EitherBody<B>>`. [#2515]
@ -499,7 +475,6 @@
- Relax body type and error bounds on test utilities. [#2518]
### Removed
- Top-level `EitherExtractError` export. [#2510]
- Conversion implementations for `either` crate. [#2516]
- `test::load_stream` and `test::load_body`; replace usage with `body::to_bytes`. [#2518]
@ -509,10 +484,9 @@
[#2516]: https://github.com/actix/actix-web/pull/2516
[#2518]: https://github.com/actix/actix-web/pull/2518
## 4.0.0-beta.14 - 2021-12-11
### Added
- Methods on `AcceptLanguage`: `ranked` and `preference`. [#2480]
- `AcceptEncoding` typed header. [#2482]
- `Range` typed header. [#2485]
@ -523,7 +497,6 @@
- `ServiceResponse::into_parts`. [#2499]
### Changed
- Rename `Accept::{mime_precedence => ranked}`. [#2480]
- Rename `Accept::{mime_preference => preference}`. [#2480]
- Un-deprecate `App::data_factory`. [#2484]
@ -533,13 +506,11 @@
- Request-local data container is no longer part of a `RequestHead`. Instead it is a distinct part of a `Request`. [#2487]
### Fixed
- Accept wildcard `*` items in `AcceptLanguage`. [#2480]
- Re-exports `dev::{BodySize, MessageBody, SizedStream}`. They are exposed through the `body` module. [#2468]
- Typed headers containing lists that require one or more items now enforce this minimum. [#2482]
### Removed
- `ConnectionInfo::get`. [#2487]
[#2430]: https://github.com/actix/actix-web/pull/2430
@ -554,54 +525,46 @@
[#2493]: https://github.com/actix/actix-web/pull/2493
[#2499]: https://github.com/actix/actix-web/pull/2499
## 4.0.0-beta.13 - 2021-11-30
### Changed
- Update `actix-tls` to `3.0.0-rc.1`. [#2474]
[#2474]: https://github.com/actix/actix-web/pull/2474
## 4.0.0-beta.12 - 2021-11-22
### Changed
- Compress middleware's response type is now `AnyBody<Encoder<B>>`. [#2448]
### Fixed
- Relax `Unpin` bound on `S` (stream) parameter of `HttpResponseBuilder::streaming`. [#2448]
### Removed
- `dev::ResponseBody` re-export; is function is replaced by the new `dev::AnyBody` enum. [#2446]
[#2446]: https://github.com/actix/actix-web/pull/2446
[#2448]: https://github.com/actix/actix-web/pull/2448
## 4.0.0-beta.11 - 2021-11-15
### Added
- Re-export `dev::ServerHandle` from `actix-server`. [#2442]
### Changed
- `ContentType::html` now produces `text/html; charset=utf-8` instead of `text/html`. [#2423]
- Update `actix-server` to `2.0.0-beta.9`. [#2442]
[#2423]: https://github.com/actix/actix-web/pull/2423
[#2442]: https://github.com/actix/actix-web/pull/2442
## 4.0.0-beta.10 - 2021-10-20
### Added
- Option to allow `Json` extractor to work without a `Content-Type` header present. [#2362]
- `#[actix_web::test]` macro for setting up tests with a runtime. [#2409]
### Changed
- Associated type `FromRequest::Config` was removed. [#2233]
- Inner field made private on `web::Payload`. [#2384]
- `Data::into_inner` and `Data::get_ref` no longer requires `T: Sized`. [#2403]
@ -609,7 +572,6 @@
- Minimum supported Rust version (MSRV) is now 1.52.
### Removed
- Useless `ServiceResponse::checked_expr` method. [#2401]
[#2233]: https://github.com/actix/actix-web/pull/2233
@ -620,21 +582,18 @@
[#2409]: https://github.com/actix/actix-web/pull/2409
[#2414]: https://github.com/actix/actix-web/pull/2414
## 4.0.0-beta.9 - 2021-09-09
### Added
- Re-export actix-service `ServiceFactory` in `dev` module. [#2325]
### Changed
- Compress middleware will return 406 Not Acceptable when no content encoding is acceptable to the client. [#2344]
- Move `BaseHttpResponse` to `dev::Response`. [#2379]
- Enable `TestRequest::param` to accept more than just static strings. [#2172]
- Minimum supported Rust version (MSRV) is now 1.51.
### Fixed
- Fix quality parse error in Accept-Encoding header. [#2344]
- Re-export correct type at `web::HttpResponse`. [#2379]
@ -643,23 +602,20 @@
[#2344]: https://github.com/actix/actix-web/pull/2344
[#2379]: https://github.com/actix/actix-web/pull/2379
## 4.0.0-beta.8 - 2021-06-26
### Added
- Add `ServiceRequest::parts_mut`. [#2177]
- Add extractors for `Uri` and `Method`. [#2263]
- Add extractors for `ConnectionInfo` and `PeerAddr`. [#2263]
- Add `Route::service` for using hand-written services as handlers. [#2262]
### Changed
- Change compression algorithm features flags. [#2250]
- Deprecate `App::data` and `App::data_factory`. [#2271]
- Smarter extraction of `ConnectionInfo` parts. [#2282]
### Fixed
- Scope and Resource middleware can access data items set on their own layer. [#2288]
[#2177]: https://github.com/actix/actix-web/pull/2177
@ -670,14 +626,12 @@
[#2282]: https://github.com/actix/actix-web/pull/2282
[#2288]: https://github.com/actix/actix-web/pull/2288
## 4.0.0-beta.7 - 2021-06-17
### Added
- `HttpServer::worker_max_blocking_threads` for setting block thread pool. [#2200]
### Changed
- Adjusted default JSON payload limit to 2MB (from 32kb) and included size and limits in the `JsonPayloadError::Overflow` error variant. [#2162]
- `ServiceResponse::error_response` now uses body type of `Body`. [#2201]
- `ServiceResponse::checked_expr` now returns a `Result`. [#2201]
@ -690,7 +644,6 @@
- `middleware::normalize` now will not try to normalize URIs with no valid path [#2246]
### Removed
- `HttpResponse::take_body` and old `HttpResponse::into_body` method that casted body type. [#2201]
[#2162]: https://github.com/actix/actix-web/pull/2162
@ -699,39 +652,36 @@
[#2253]: https://github.com/actix/actix-web/pull/2253
[#2246]: https://github.com/actix/actix-web/pull/2246
## 4.0.0-beta.6 - 2021-04-17
### Added
- `HttpResponse` and `HttpResponseBuilder` types. [#2065]
### Changed
- Most error types are now marked `#[non_exhaustive]`. [#2148]
- Methods on `ContentDisposition` that took `T: AsRef<str>` now take `impl AsRef<str>`.
[#2065]: https://github.com/actix/actix-web/pull/2065
[#2148]: https://github.com/actix/actix-web/pull/2148
## 4.0.0-beta.5 - 2021-04-02
### Added
- `Header` extractor for extracting common HTTP headers in handlers. [#2094]
- Added `TestServer::client_headers` method. [#2097]
### Changed
- `CustomResponder` would return error as `HttpResponse` when `CustomResponder::with_header` failed instead of skipping. (Only the first error is kept when multiple error occur) [#2093]
- `CustomResponder` would return error as `HttpResponse` when `CustomResponder::with_header` failed
instead of skipping. (Only the first error is kept when multiple error occur) [#2093]
### Fixed
- Double ampersand in Logger format is escaped correctly. [#2067]
### Removed
- The `client` mod was removed. Clients should now use `awc` directly. [871ca5e4](https://github.com/actix/actix-web/commit/871ca5e4ae2bdc22d1ea02701c2992fa8d04aed7)
- Integration testing was moved to new `actix-test` crate. Namely these items from the `test` module: `TestServer`, `TestServerConfig`, `start`, `start_with`, and `unused_addr`. [#2112]
- The `client` mod was removed. Clients should now use `awc` directly.
[871ca5e4](https://github.com/actix/actix-web/commit/871ca5e4ae2bdc22d1ea02701c2992fa8d04aed7)
- Integration testing was moved to new `actix-test` crate. Namely these items from the `test`
module: `TestServer`, `TestServerConfig`, `start`, `start_with`, and `unused_addr`. [#2112]
[#2067]: https://github.com/actix/actix-web/pull/2067
[#2093]: https://github.com/actix/actix-web/pull/2093
@ -739,48 +689,50 @@
[#2097]: https://github.com/actix/actix-web/pull/2097
[#2112]: https://github.com/actix/actix-web/pull/2112
## 4.0.0-beta.4 - 2021-03-09
### Changed
- Feature `cookies` is now optional and enabled by default. [#1981]
- `JsonBody::new` returns a default limit of 32kB to be consistent with `JsonConfig` and the default behaviour of the `web::Json<T>` extractor. [#2010]
- `JsonBody::new` returns a default limit of 32kB to be consistent with `JsonConfig` and the default
behaviour of the `web::Json<T>` extractor. [#2010]
[#1981]: https://github.com/actix/actix-web/pull/1981
[#2010]: https://github.com/actix/actix-web/pull/2010
## 4.0.0-beta.3 - 2021-02-10
## 4.0.0-beta.3 - 2021-02-10
- Update `actix-web-codegen` to `0.5.0-beta.1`.
## 4.0.0-beta.2 - 2021-02-10
### Added
- 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]
- 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]
- Add `services!` macro for helping register multiple services to `App`. [#1933]
- Enable registering a vec of services of the same type to `App` [#1933]
### Changed
- Rework `Responder` trait to be sync and returns `Response`/`HttpResponse` directly. Making it simpler and more performant. [#1891]
- Rework `Responder` trait to be sync and returns `Response`/`HttpResponse` directly.
Making it simpler and more performant. [#1891]
- `ServiceRequest::into_parts` and `ServiceRequest::from_parts` can no longer fail. [#1893]
- `ServiceRequest::from_request` can no longer fail. [#1893]
- 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` in argument [#1905]
- `App::wrap_fn`, `Resource::wrap_fn` and `Scope::wrap_fn` provide `&Service` in closure argument. [#1905]
- `test::{call_service, read_response, read_response_json, send_request}` take `&Service`
in argument [#1905]
- `App::wrap_fn`, `Resource::wrap_fn` and `Scope::wrap_fn` provide `&Service` in closure
argument. [#1905]
- `web::block` no longer requires the output is a Result. [#1957]
### Fixed
- Multiple calls to `App::data` with the same type now keeps the latest call's data. [#1906]
### Removed
- Public field of `web::Path` has been made private. [#1894]
- Public field of `web::Query` has been made private. [#1894]
- `TestRequest::with_header`; use `TestRequest::default().insert_header()`. [#1869]
- `AppService::set_service_data`; for custom HTTP service factories adding application data, use the layered data model by calling `ServiceRequest::add_data_container` when handling requests instead. [#1906]
- `AppService::set_service_data`; for custom HTTP service factories adding application data, use the
layered data model by calling `ServiceRequest::add_data_container` when handling
requests instead. [#1906]
[#1891]: https://github.com/actix/actix-web/pull/1891
[#1893]: https://github.com/actix/actix-web/pull/1893
@ -791,30 +743,30 @@
[#1933]: https://github.com/actix/actix-web/pull/1933
[#1957]: https://github.com/actix/actix-web/pull/1957
## 4.0.0-beta.1 - 2021-01-07
### Added
- `Compat` middleware enabling generic response body/error type of middlewares like `Logger` and `Compress` to be used in `middleware::Condition` and `Resource`, `Scope` services. [#1865]
- `Compat` middleware enabling generic response body/error type of middlewares like `Logger` and
`Compress` to be used in `middleware::Condition` and `Resource`, `Scope` services. [#1865]
### Changed
- Update `actix-*` dependencies to tokio `1.0` based versions. [#1813]
- Bumped `rand` to `0.8`.
- Update `rust-tls` to `0.19`. [#1813]
- Rename `Handler` to `HandlerService` and rename `Factory` to `Handler`. [#1852]
- The default `TrailingSlash` is now `Trim`, in line with existing documentation. See migration guide for implications. [#1875]
- The default `TrailingSlash` is now `Trim`, in line with existing documentation. See migration
guide for implications. [#1875]
- Rename `DefaultHeaders::{content_type => add_content_type}`. [#1875]
- MSRV is now 1.46.0.
### Fixed
- Added the underlying parse error to `test::read_body_json`'s panic message. [#1812]
### Removed
- Public modules `middleware::{normalize, err_handlers}`. All necessary middleware types are now exposed directly by the `middleware` module.
- Remove `actix-threadpool` as dependency. `actix_threadpool::BlockingError` error type can be imported from `actix_web::error` module. [#1878]
- Public modules `middleware::{normalize, err_handlers}`. All necessary middleware types are now
exposed directly by the `middleware` module.
- Remove `actix-threadpool` as dependency. `actix_threadpool::BlockingError` error type can be imported
from `actix_web::error` module. [#1878]
[#1812]: https://github.com/actix/actix-web/pull/1812
[#1813]: https://github.com/actix/actix-web/pull/1813
@ -826,17 +778,14 @@
</details>
## 3.3.3 - 2021-12-18
### Changed
- Soft-deprecate `NormalizePath::default()`, noting upcoming behavior change in v4. [#2529]
[#2529]: https://github.com/actix/actix-web/pull/2529
## 3.3.2 - 2020-12-01
### Fixed
- Removed an occasional `unwrap` on `None` panic in `NormalizePathNormalization`. [#1762]
- Fix `match_pattern()` returning `None` for scope with empty path resource. [#1798]
- Increase minimum `socket2` version. [#1803]
@ -845,27 +794,24 @@
[#1798]: https://github.com/actix/actix-web/pull/1798
[#1803]: https://github.com/actix/actix-web/pull/1803
## 3.3.1 - 2020-11-29
## 3.3.1 - 2020-11-29
- Ensure `actix-http` dependency uses same `serde_urlencoded`.
## 3.3.0 - 2020-11-25
### Added
- Add `Either<A, B>` extractor helper. [#1788]
### Changed
- Upgrade `serde_urlencoded` to `0.7`. [#1773]
[#1773]: https://github.com/actix/actix-web/pull/1773
[#1788]: https://github.com/actix/actix-web/pull/1788
## 3.2.0 - 2020-10-30
### Added
- Implement `exclude_regex` for Logger middleware. [#1723]
- Add request-local data extractor `web::ReqData`. [#1748]
- Add ability to register closure for request middleware logging. [#1749]
@ -873,7 +819,6 @@
- Expose `on_connect` for access to the connection stream before request is handled. [#1754]
### Changed
- Updated actix-web-codegen dependency for access to new `#[route(...)]` multi-method macro.
- Print non-configured `Data<T>` type when attempting extraction. [#1743]
- Re-export bytes::Buf{Mut} in web module. [#1750]
@ -886,53 +831,52 @@
[#1754]: https://github.com/actix/actix-web/pull/1754
[#1749]: https://github.com/actix/actix-web/pull/1749
## 3.1.0 - 2020-09-29
### Changed
- Add `TrailingSlash::MergeOnly` behaviour to `NormalizePath`, which allows `NormalizePath` to retain any trailing slashes. [#1695]
- Remove bound `std::marker::Sized` from `web::Data` to support storing `Arc<dyn Trait>` via `web::Data::from` [#1710]
- Add `TrailingSlash::MergeOnly` behaviour to `NormalizePath`, which allows `NormalizePath`
to retain any trailing slashes. [#1695]
- Remove bound `std::marker::Sized` from `web::Data` to support storing `Arc<dyn Trait>`
via `web::Data::from` [#1710]
### Fixed
- `ResourceMap` debug printing is no longer infinitely recursive. [#1708]
[#1695]: https://github.com/actix/actix-web/pull/1695
[#1708]: https://github.com/actix/actix-web/pull/1708
[#1710]: https://github.com/actix/actix-web/pull/1710
## 3.0.2 - 2020-09-15
### Fixed
- `NormalizePath` when used with `TrailingSlash::Trim` no longer trims the root path "/". [#1678]
[#1678]: https://github.com/actix/actix-web/pull/1678
## 3.0.1 - 2020-09-13
### Changed
- `middleware::normalize::TrailingSlash` enum is now accessible. [#1673]
[#1673]: https://github.com/actix/actix-web/pull/1673
## 3.0.0 - 2020-09-11
## 3.0.0 - 2020-09-11
- No significant changes from `3.0.0-beta.4`.
## 3.0.0-beta.4 - 2020-09-09
### Added
- `middleware::NormalizePath` now has configurable behavior for either always having a trailing slash, or as the new addition, always trimming trailing slashes. [#1639]
- `middleware::NormalizePath` now has configurable behavior for either always having a trailing
slash, or as the new addition, always trimming trailing slashes. [#1639]
### Changed
- Update actix-codec and actix-utils dependencies. [#1634]
- `FormConfig` and `JsonConfig` configurations are now also considered when set using `App::data`. [#1641]
- `FormConfig` and `JsonConfig` configurations are now also considered when set
using `App::data`. [#1641]
- `HttpServer::maxconn` is renamed to the more expressive `HttpServer::max_connections`. [#1655]
- `HttpServer::maxconnrate` is renamed to the more expressive `HttpServer::max_connection_rate`. [#1655]
- `HttpServer::maxconnrate` is renamed to the more expressive
`HttpServer::max_connection_rate`. [#1655]
[#1639]: https://github.com/actix/actix-web/pull/1639
[#1641]: https://github.com/actix/actix-web/pull/1641
@ -940,23 +884,22 @@
[#1655]: https://github.com/actix/actix-web/pull/1655
## 3.0.0-beta.3 - 2020-08-17
### Changed
- Update `rustls` to 0.18
## 3.0.0-beta.2 - 2020-08-17
### Changed
- `PayloadConfig` is now also considered in `Bytes` and `String` extractors when set using `App::data`. [#1610]
- `web::Path` now has a public representation: `web::Path(pub T)` that enables destructuring. [#1594]
- `ServiceRequest::app_data` allows retrieval of non-Data data without splitting into parts to access `HttpRequest` which already allows this. [#1618]
- `PayloadConfig` is now also considered in `Bytes` and `String` extractors when set
using `App::data`. [#1610]
- `web::Path` now has a public representation: `web::Path(pub T)` that enables
destructuring. [#1594]
- `ServiceRequest::app_data` allows retrieval of non-Data data without splitting into parts to
access `HttpRequest` which already allows this. [#1618]
- Re-export all error types from `awc`. [#1621]
- MSRV is now 1.42.0.
### Fixed
- Memory leak of app data in pooled requests. [#1609]
[#1594]: https://github.com/actix/actix-web/pull/1594
@ -965,32 +908,28 @@
[#1618]: https://github.com/actix/actix-web/pull/1618
[#1621]: https://github.com/actix/actix-web/pull/1621
## 3.0.0-beta.1 - 2020-07-13
### Added
- Re-export `actix_rt::main` as `actix_web::main`.
- `HttpRequest::match_pattern` and `ServiceRequest::match_pattern` for extracting the matched resource pattern.
- `HttpRequest::match_pattern` and `ServiceRequest::match_pattern` for extracting the matched
resource pattern.
- `HttpRequest::match_name` and `ServiceRequest::match_name` for extracting matched resource name.
### Changed
- Fix actix_http::h1::dispatcher so it returns when HW_BUFFER_SIZE is reached. Should reduce peak memory consumption during large uploads. [#1550]
- Migrate cookie handling to `cookie` crate. Actix-web no longer requires `ring` dependency.
- MSRV is now 1.41.1
### Fixed
- `NormalizePath` improved consistency when path needs slashes added _and_ removed.
## 3.0.0-alpha.3 - 2020-05-21
### Added
- Add option to create `Data<T>` from `Arc<T>` [#1509]
### Changed
- Resources and Scopes can now access non-overridden data types set on App (or containing scopes) when setting their own data. [#1486]
- Fix audit issue logging by default peer address [#1485]
- Bump minimum supported Rust version to 1.40
@ -1013,6 +952,7 @@
[#1452]: https://github.com/actix/actix-web/pull/1452
[#1486]: https://github.com/actix/actix-web/pull/1486
## [3.0.0-alpha.1] - 2020-03-11
### Added
@ -1058,6 +998,7 @@
- Fix `AppConfig::secure()` is always false. #1202
## [2.0.0-alpha.6] - 2019-12-15
### Fixed
@ -1082,6 +1023,7 @@
- Migrate to tokio 0.2
## [2.0.0-alpha.1] - 2019-11-22
### Changed
@ -1090,6 +1032,7 @@
- Remove implementation of `Responder` for `()`. (#1167)
## [1.0.9] - 2019-11-14
### Added
@ -1100,17 +1043,20 @@
- Support `Host` guards when the `Host` header is unset (e.g. HTTP/2 requests) (#1129)
## [1.0.8] - 2019-09-25
### Added
- Add `Scope::register_data` and `Resource::register_data` methods, parallel to `App::register_data`.
- Add `Scope::register_data` and `Resource::register_data` methods, parallel to
`App::register_data`.
- Add `middleware::Condition` that conditionally enables another middleware
- Allow to re-construct `ServiceRequest` from `HttpRequest` and `Payload`
- Add `HttpServer::listen_uds` for ability to listen on UDS FD rather than path, which is useful for example with systemd.
- Add `HttpServer::listen_uds` for ability to listen on UDS FD rather than path,
which is useful for example with systemd.
### Changed
@ -1118,12 +1064,14 @@
- Use actix-testing for testing utils
## [1.0.7] - 2019-08-29
### Fixed
- Request Extensions leak #1062
## [1.0.6] - 2019-08-28
### Added
@ -1134,7 +1082,8 @@
- Add `into_inner` to `Data`
- Add `test::TestRequest::set_form()` convenience method to automatically serialize data and set the header in test requests.
- Add `test::TestRequest::set_form()` convenience method to automatically serialize data and set
the header in test requests.
### Changed
@ -1146,30 +1095,35 @@
- Update url to 2.1
## [1.0.5] - 2019-07-18
### Added
- Unix domain sockets (HttpServer::bind_uds) #92
- Actix now logs errors resulting in "internal server error" responses always, with the `error` logging level
- Actix now logs errors resulting in "internal server error" responses always, with the `error`
logging level
### Fixed
- Restored logging of errors through the `Logger` middleware
## [1.0.4] - 2019-07-17
### Added
- Add `Responder` impl for `(T, StatusCode) where T: Responder`
- Allow to access app's resource map via `ServiceRequest::resource_map()` and `HttpRequest::resource_map()` methods.
- Allow to access app's resource map via
`ServiceRequest::resource_map()` and `HttpRequest::resource_map()` methods.
### Changed
- Upgrade `rand` dependency version to 0.7
## [1.0.3] - 2019-06-28
### Added
@ -1178,7 +1132,8 @@
### Changed
- Use `encoding_rs` crate instead of unmaintained `encoding` crate
- Use `encoding_rs` crate instead of unmaintained `encoding` crate
## [1.0.2] - 2019-06-17
@ -1188,6 +1143,7 @@
- Move identity middleware to `actix-identity` crate.
## [1.0.1] - 2019-06-17
### Added
@ -1212,6 +1168,7 @@
- HttpRequest::url_for is broken with nested scopes #915
## [1.0.0] - 2019-06-05
### Added
@ -1220,7 +1177,8 @@
- Add `ServiceRequest::set_payload()` method.
- Add `test::TestRequest::set_json()` convenience method to automatically serialize data and set header in test requests.
- Add `test::TestRequest::set_json()` convenience method to automatically
serialize data and set header in test requests.
- Add macros for head, options, trace, connect and patch http methods
@ -1234,6 +1192,7 @@
- Clear http requests pool on app service drop #860
## [1.0.0-rc] - 2019-05-18
### Added
@ -1249,6 +1208,7 @@
- Codegen with parameters in the path only resolves the first registered endpoint #841
## [1.0.0-beta.4] - 2019-05-12
### Added
@ -1260,6 +1220,7 @@
- `App::configure` take an `FnOnce` instead of `Fn`
- Upgrade actix-net crates
## [1.0.0-beta.3] - 2019-05-04
### Added
@ -1268,9 +1229,11 @@
### Changed
- Extractor configuration could be registered with `App::data()` or with `Resource::data()` #775
- Extractor configuration could be registered with `App::data()`
or with `Resource::data()` #775
- Route data is unified with app data, `Route::data()` moved to resource level to `Resource::data()`
- Route data is unified with app data, `Route::data()` moved to resource
level to `Resource::data()`
- CORS handling without headers #702
@ -1284,6 +1247,7 @@
- `App::data_factory()` is deleted.
## [1.0.0-beta.2] - 2019-04-24
### Added
@ -1292,7 +1256,7 @@
- Add helper functions for reading response body `test::read_body()`
- Add support for `remainder match` (i.e "/path/{tail}\*")
- Add support for `remainder match` (i.e "/path/{tail}*")
- Extend `Responder` trait, allow to override status code and headers.
@ -1306,11 +1270,13 @@
- Fix async web::Data factory handling
## [1.0.0-beta.1] - 2019-04-20
### Added
- Add helper functions for reading test response body, `test::read_response()` and test::read_response_json()`
- Add helper functions for reading test response body,
`test::read_response()` and test::read_response_json()`
- Add `.peer_addr()` #744
@ -1330,6 +1296,7 @@
- Fixed `TestRequest::app_data()`
## [1.0.0-alpha.6] - 2019-04-14
### Changed
@ -1338,10 +1305,12 @@
- Remove generic type for request payload, always use default.
- Removed `Decompress` middleware. Bytes, String, Json, Form extractors automatically decompress payload.
- Removed `Decompress` middleware. Bytes, String, Json, Form extractors
automatically decompress payload.
- Make extractor config type explicit. Add `FromRequest::Config` associated type.
## [1.0.0-alpha.5] - 2019-04-12
### Added
@ -1352,6 +1321,7 @@
- Removed native-tls support
## [1.0.0-alpha.4] - 2019-04-08
### Added
@ -1374,6 +1344,7 @@
- Fix body propagation in Response::from_error. #760
## [1.0.0-alpha.3] - 2019-04-02
### Changed
@ -1388,6 +1359,7 @@
- Removed unused `actix_web::web::md()`
## [1.0.0-alpha.2] - 2019-03-29
### Added