2017-10-30 20:46:39 -07:00
# Changes
2019-09-25 10:28:41 +06:00
2021-01-02 00:12:18 +00:00
## Unreleased - 2021-xx-xx
2022-01-14 20:00:26 +00:00
## 4.0.0-beta.20 - 2022-01-14
2022-01-05 11:47:14 +00:00
### Added
- `GuardContext::header` [#2569 ]
2022-01-05 13:31:39 +01:00
- `ServiceConfig::configure` to allow easy nesting of configuration functions. [#1988 ]
2022-01-05 11:47:14 +00:00
2022-01-05 07:42:52 +03:00
### Changed
2022-01-05 11:47:14 +00:00
- `HttpResponse` can now be used as a `Responder` with any body type. [#2567 ]
2022-01-12 21:59:22 +03:00
- `Result` extractor wrapper can now convert error types. [#2581 ]
- Associated types in `FromRequest` impl for `Option` and `Result` has changed. [#2581 ]
2022-01-14 20:01:11 +00:00
- Maximum number of handler extractors has increased to 12. [#2582 ]
2022-01-14 22:45:32 +03:00
- Removed bound `<B as MessageBody>::Error: Debug` in test utility functions in order to support returning opaque apps. [#2584 ]
2022-01-05 07:42:52 +03:00
2022-01-05 13:31:39 +01:00
[#1988 ]: https://github.com/actix/actix-web/pull/1988
2022-01-05 11:47:14 +00:00
[#2567 ]: https://github.com/actix/actix-web/pull/2567
[#2569 ]: https://github.com/actix/actix-web/pull/2569
2022-01-12 21:59:22 +03:00
[#2581 ]: https://github.com/actix/actix-web/pull/2581
2022-01-12 21:31:48 +03:00
[#2582 ]: https://github.com/actix/actix-web/pull/2582
2022-01-14 22:45:32 +03:00
[#2584 ]: https://github.com/actix/actix-web/pull/2584
2022-01-04 15:35:08 +00:00
## 4.0.0-beta.19 - 2022-01-04
2022-01-03 13:17:57 +00:00
### 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 ]
2022-01-03 18:46:04 +00:00
- `BodyEncoding` trait; signalling content encoding is now only done via the `Content-Encoding` header. [#2565 ]
2022-01-03 13:17:57 +00:00
[#2501 ]: https://github.com/actix/actix-web/pull/2501
2022-01-03 18:46:04 +00:00
[#2565 ]: https://github.com/actix/actix-web/pull/2565
2021-12-29 10:17:11 +00:00
## 4.0.0-beta.18 - 2021-12-29
2021-12-29 08:59:15 +00:00
### Changed
2021-12-29 10:06:36 +00:00
- Update `cookie` dependency (re-exported) to `0.16` . [#2555 ]
2021-12-29 08:59:15 +00:00
- Minimum supported Rust version (MSRV) is now 1.54.
2021-12-29 07:07:51 +00:00
2021-12-29 10:06:36 +00:00
### 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
2021-12-29 07:07:51 +00:00
## 4.0.0-beta.17 - 2021-12-29
2021-12-28 02:37:13 +00:00
### 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 ]
2021-12-29 07:07:51 +00:00
- Some guards now return `impl Guard` and their concrete types are made private: `guard::Header` and all the method guards. [#2552 ]
2021-12-28 02:37:13 +00:00
- The `Not` guard is now generic over the type of guard it wraps. [#2552 ]
2021-12-28 14:52:43 +00:00
### 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 ]
2021-12-28 02:37:13 +00:00
[#2552 ]: https://github.com/actix/actix-web/pull/2552
2021-12-28 14:52:43 +00:00
[#2554 ]: https://github.com/actix/actix-web/pull/2554
2021-12-27 18:45:31 +00:00
## 4.0.0-beta.16 - 2021-12-27
2021-12-22 15:00:32 +00:00
### Changed
2021-12-22 18:48:59 +03:00
- No longer require `Scope` service body type to be boxed. [#2523 ]
2021-12-22 15:00:32 +00:00
- No longer require `Resource` service body type to be boxed. [#2526 ]
2021-12-22 18:48:59 +03:00
[#2523 ]: https://github.com/actix/actix-web/pull/2523
2021-12-22 15:00:32 +00:00
[#2526 ]: https://github.com/actix/actix-web/pull/2526
2021-12-17 20:59:01 +00:00
2021-12-22 08:18:44 +00:00
2021-12-17 20:59:01 +00:00
## 4.0.0-beta.15 - 2021-12-17
2021-12-13 16:08:08 +00:00
### Added
2021-12-22 08:21:30 +00:00
- Method on `Responder` trait (`customize` ) for customizing responders and `CustomizeResponder` struct. [#2510 ]
- Implement `Debug` for `DefaultHeaders` . [#2510 ]
2021-12-13 16:08:08 +00:00
### Changed
2021-12-22 08:21:30 +00:00
- 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 ]
- Rename `test::{default_service => simple_service}` . Old name is deprecated. [#2518 ]
- Rename `test::{read_response_json => call_and_read_body_json}` . Old name is deprecated. [#2518 ]
- Rename `test::{read_response => call_and_read_body}` . Old name is deprecated. [#2518 ]
- Relax body type and error bounds on test utilities. [#2518 ]
2021-12-22 08:18:44 +00:00
### Removed
2021-12-22 08:21:30 +00:00
- 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 ]
2021-12-13 16:08:08 +00:00
2021-12-22 08:18:44 +00:00
[#2510 ]: https://github.com/actix/actix-web/pull/2510
[#2515 ]: https://github.com/actix/actix-web/pull/2515
[#2516 ]: https://github.com/actix/actix-web/pull/2516
2021-12-15 01:44:51 +00:00
[#2518 ]: https://github.com/actix/actix-web/pull/2518
2021-12-11 00:30:12 +00:00
## 4.0.0-beta.14 - 2021-12-11
2021-12-02 13:59:25 +00:00
### Added
2021-12-22 08:21:30 +00:00
- Methods on `AcceptLanguage` : `ranked` and `preference` . [#2480 ]
- `AcceptEncoding` typed header. [#2482 ]
- `Range` typed header. [#2485 ]
- `HttpResponse::map_into_{left,right}_body` and `HttpResponse::map_into_boxed_body` . [#2468 ]
- `ServiceResponse::map_into_{left,right}_body` and `HttpResponse::map_into_boxed_body` . [#2468 ]
- Connection data set through the `HttpServer::on_connect` callback is now accessible only from the new `HttpRequest::conn_data()` and `ServiceRequest::conn_data()` methods. [#2491 ]
- `HttpRequest::{req_data,req_data_mut}` . [#2487 ]
- `ServiceResponse::into_parts` . [#2499 ]
2021-12-22 08:18:44 +00:00
### Changed
2021-12-22 08:21:30 +00:00
- Rename `Accept::{mime_precedence => ranked}` . [#2480 ]
- Rename `Accept::{mime_preference => preference}` . [#2480 ]
- Un-deprecate `App::data_factory` . [#2484 ]
- `HttpRequest::url_for` no longer constructs URLs with query or fragment components. [#2430 ]
- Remove `B` (body) type parameter on `App` . [#2493 ]
- Add `B` (body) type parameter on `Scope` . [#2492 ]
- Request-local data container is no longer part of a `RequestHead` . Instead it is a distinct part of a `Request` . [#2487 ]
2021-12-22 08:18:44 +00:00
### Fixed
2021-12-22 08:21:30 +00:00
- 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 ]
2021-12-02 13:59:25 +00:00
2021-12-22 08:18:44 +00:00
### Removed
2021-12-22 08:21:30 +00:00
- `ConnectionInfo::get` . [#2487 ]
2021-12-22 08:18:44 +00:00
2021-12-05 07:39:18 +03:00
[#2430 ]: https://github.com/actix/actix-web/pull/2430
2021-12-04 19:40:47 +00:00
[#2468 ]: https://github.com/actix/actix-web/pull/2468
2021-12-22 08:18:44 +00:00
[#2480 ]: https://github.com/actix/actix-web/pull/2480
2021-12-02 17:04:40 +00:00
[#2482 ]: https://github.com/actix/actix-web/pull/2482
2021-12-04 19:41:15 +00:00
[#2484 ]: https://github.com/actix/actix-web/pull/2484
2021-12-05 00:02:25 +00:00
[#2485 ]: https://github.com/actix/actix-web/pull/2485
2021-12-08 22:58:50 +00:00
[#2487 ]: https://github.com/actix/actix-web/pull/2487
2021-12-07 17:23:34 +00:00
[#2491 ]: https://github.com/actix/actix-web/pull/2491
2021-12-08 00:26:28 +08:00
[#2492 ]: https://github.com/actix/actix-web/pull/2492
[#2493 ]: https://github.com/actix/actix-web/pull/2493
2021-12-09 17:57:27 +03:00
[#2499 ]: https://github.com/actix/actix-web/pull/2499
2021-11-22 18:20:55 +00:00
2021-11-30 14:12:04 +00:00
## 4.0.0-beta.13 - 2021-11-30
### Changed
2021-12-22 08:21:30 +00:00
- Update `actix-tls` to `3.0.0-rc.1` . [#2474 ]
2021-11-30 14:12:04 +00:00
[#2474 ]: https://github.com/actix/actix-web/pull/2474
2021-12-22 08:18:44 +00:00
2021-11-22 18:20:55 +00:00
## 4.0.0-beta.12 - 2021-11-22
2021-11-16 21:41:35 +00:00
### Changed
2021-12-22 08:21:30 +00:00
- Compress middleware's response type is now `AnyBody<Encoder<B>>` . [#2448 ]
2021-11-16 21:41:35 +00:00
### Fixed
2021-12-22 08:21:30 +00:00
- Relax `Unpin` bound on `S` (stream) parameter of `HttpResponseBuilder::streaming` . [#2448 ]
2021-12-22 08:18:44 +00:00
2021-11-16 21:41:35 +00:00
### Removed
2021-12-22 08:21:30 +00:00
- `dev::ResponseBody` re-export; is function is replaced by the new `dev::AnyBody` enum. [#2446 ]
2021-12-22 08:18:44 +00:00
2021-11-22 18:20:55 +00:00
[#2446 ]: https://github.com/actix/actix-web/pull/2446
[#2448 ]: https://github.com/actix/actix-web/pull/2448
2021-12-22 08:18:44 +00:00
2021-11-15 04:03:33 +00:00
## 4.0.0-beta.11 - 2021-11-15
### Added
2021-12-22 08:21:30 +00:00
- Re-export `dev::ServerHandle` from `actix-server` . [#2442 ]
2021-11-15 04:03:33 +00:00
2021-10-26 09:24:38 +01:00
### Changed
2021-12-22 08:21:30 +00:00
- `ContentType::html` now produces `text/html; charset=utf-8` instead of `text/html` . [#2423 ]
- Update `actix-server` to `2.0.0-beta.9` . [#2442 ]
2021-11-15 04:03:33 +00:00
[#2423 ]: https://github.com/actix/actix-web/pull/2423
2021-12-22 08:18:44 +00:00
[#2442 ]: https://github.com/actix/actix-web/pull/2442
2021-10-20 22:32:05 +01:00
## 4.0.0-beta.10 - 2021-10-20
2021-09-11 09:27:50 -07:00
### Added
2021-12-22 08:21:30 +00:00
- 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 ]
2021-09-11 09:27:50 -07:00
2021-09-11 08:11:16 +08:00
### Changed
2021-12-22 08:21:30 +00:00
- 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 ]
- Updated rustls to v0.20. [#2414 ]
- Minimum supported Rust version (MSRV) is now 1.52.
2021-12-22 08:18:44 +00:00
### Removed
2021-12-22 08:21:30 +00:00
- Useless `ServiceResponse::checked_expr` method. [#2401 ]
2021-12-22 08:18:44 +00:00
2021-09-11 08:11:16 +08:00
[#2233 ]: https://github.com/actix/actix-web/pull/2233
2021-09-11 09:27:50 -07:00
[#2362 ]: https://github.com/actix/actix-web/pull/2362
2021-12-22 08:18:44 +00:00
[#2384 ]: https://github.com/actix/actix-web/pull/2384
2021-10-11 19:28:09 +02:00
[#2401 ]: https://github.com/actix/actix-web/pull/2401
2021-10-20 23:31:46 +01:00
[#2403 ]: https://github.com/actix/actix-web/pull/2403
2021-10-20 22:32:05 +01:00
[#2409 ]: https://github.com/actix/actix-web/pull/2409
2021-10-20 02:00:11 +01:00
[#2414 ]: https://github.com/actix/actix-web/pull/2414
2021-09-11 16:48:47 +01:00
2021-09-09 01:35:41 +01:00
## 4.0.0-beta.9 - 2021-09-09
2021-07-12 16:55:41 +01:00
### Added
2021-12-22 08:21:30 +00:00
- Re-export actix-service `ServiceFactory` in `dev` module. [#2325 ]
2021-07-12 16:55:41 +01:00
2021-09-01 10:08:29 +02:00
### Changed
2021-12-22 08:21:30 +00:00
- 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.
2021-12-22 08:18:44 +00:00
### Fixed
2021-12-22 08:21:30 +00:00
- Fix quality parse error in Accept-Encoding header. [#2344 ]
- Re-export correct type at `web::HttpResponse` . [#2379 ]
2021-08-30 23:19:03 +01:00
2021-09-08 19:42:40 -04:00
[#2172 ]: https://github.com/actix/actix-web/pull/2172
2021-12-22 08:18:44 +00:00
[#2325 ]: https://github.com/actix/actix-web/pull/2325
[#2344 ]: https://github.com/actix/actix-web/pull/2344
2021-09-03 18:00:43 +01:00
[#2379 ]: https://github.com/actix/actix-web/pull/2379
2021-06-26 16:33:36 +01:00
## 4.0.0-beta.8 - 2021-06-26
2021-06-22 12:32:03 -04:00
### Added
2021-12-22 08:21:30 +00:00
- 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 ]
2021-12-22 08:18:44 +00:00
### Changed
2021-12-22 08:21:30 +00:00
- Change compression algorithm features flags. [#2250 ]
- Deprecate `App::data` and `App::data_factory` . [#2271 ]
- Smarter extraction of `ConnectionInfo` parts. [#2282 ]
2021-06-19 21:21:13 +02:00
2021-12-22 08:18:44 +00:00
### Fixed
2021-12-22 08:21:30 +00:00
- Scope and Resource middleware can access data items set on their own layer. [#2288 ]
2021-12-22 08:18:44 +00:00
2021-06-22 19:42:00 -04:00
[#2177 ]: https://github.com/actix/actix-web/pull/2177
2021-06-19 21:21:13 +02:00
[#2250 ]: https://github.com/actix/actix-web/pull/2250
2021-12-22 08:18:44 +00:00
[#2271 ]: https://github.com/actix/actix-web/pull/2271
2021-06-23 16:30:06 -04:00
[#2262 ]: https://github.com/actix/actix-web/pull/2262
2021-06-22 12:32:03 -04:00
[#2263 ]: https://github.com/actix/actix-web/pull/2263
2021-06-25 19:39:06 -04:00
[#2282 ]: https://github.com/actix/actix-web/pull/2282
2021-06-25 13:19:42 +01:00
[#2288 ]: https://github.com/actix/actix-web/pull/2288
2021-06-19 11:51:20 +01:00
2021-06-19 20:23:06 +01:00
2021-06-19 11:51:20 +01:00
## 4.0.0-beta.7 - 2021-06-17
2021-05-07 01:35:04 +08:00
### Added
2021-12-22 08:21:30 +00:00
- `HttpServer::worker_max_blocking_threads` for setting block thread pool. [#2200 ]
2021-05-07 01:35:04 +08:00
2021-04-28 02:23:12 +02:00
### Changed
2021-12-22 08:21:30 +00:00
- Adjusted default JSON payload limit to 2MB (from 32kb) and included size and limits in the `JsonPayloadError::Overflow` error variant. [#2162 ]
2021-12-22 08:18:44 +00:00
[#2162 ]: (https://github.com/actix/actix-web/pull/2162)
2021-12-22 08:21:30 +00:00
- `ServiceResponse::error_response` now uses body type of `Body` . [#2201 ]
- `ServiceResponse::checked_expr` now returns a `Result` . [#2201 ]
- Update `language-tags` to `0.3` .
- `ServiceResponse::take_body` . [#2201 ]
- `ServiceResponse::map_body` closure receives and returns `B` instead of `ResponseBody<B>` types. [#2201 ]
- 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 ]
- `HttpServer::{listen_rustls(), bind_rustls()}` now honor the ALPN protocols in the configuation parameter. [#2226 ]
- `middleware::normalize` now will not try to normalize URIs with no valid path [#2246 ]
2021-12-22 08:18:44 +00:00
### Removed
2021-12-22 08:21:30 +00:00
- `HttpResponse::take_body` and old `HttpResponse::into_body` method that casted body type. [#2201 ]
2021-12-22 08:18:44 +00:00
2021-05-07 01:35:04 +08:00
[#2200 ]: https://github.com/actix/actix-web/pull/2200
2021-05-09 20:12:48 +01:00
[#2201 ]: https://github.com/actix/actix-web/pull/2201
2021-12-22 08:18:44 +00:00
[#2253 ]: https://github.com/actix/actix-web/pull/2253
2021-06-05 13:19:45 -03:00
[#2246 ]: https://github.com/actix/actix-web/pull/2246
2021-05-07 01:35:04 +08:00
2021-04-17 15:28:13 +01:00
## 4.0.0-beta.6 - 2021-04-17
2021-04-09 18:07:10 +01:00
### Added
2021-12-22 08:21:30 +00:00
- `HttpResponse` and `HttpResponseBuilder` structs. [#2065 ]
2021-04-02 09:37:51 +01:00
2021-04-12 10:30:28 +01:00
### Changed
2021-12-22 08:21:30 +00:00
- Most error types are now marked `#[non_exhaustive]` . [#2148 ]
- Methods on `ContentDisposition` that took `T: AsRef<str>` now take `impl AsRef<str>` .
2021-04-12 10:30:28 +01:00
2021-04-09 18:07:10 +01:00
[#2065 ]: https://github.com/actix/actix-web/pull/2065
2021-12-22 08:18:44 +00:00
[#2148 ]: https://github.com/actix/actix-web/pull/2148
2021-04-02 09:37:51 +01:00
## 4.0.0-beta.5 - 2021-04-02
2021-04-01 07:40:10 +02:00
### Added
2021-12-22 08:21:30 +00:00
- `Header` extractor for extracting common HTTP headers in handlers. [#2094 ]
- Added `TestServer::client_headers` method. [#2097 ]
2021-04-01 07:40:10 +02:00
2021-03-11 17:12:42 +03:00
### Fixed
2021-12-22 08:21:30 +00:00
- Double ampersand in Logger format is escaped correctly. [#2067 ]
2021-12-22 08:18:44 +00:00
2021-03-19 22:18:06 -07:00
### Changed
2021-12-22 08:21:30 +00:00
- `CustomResponder` would return error as `HttpResponse` when `CustomResponder::with_header` failed
2021-12-22 08:18:44 +00:00
instead of skipping. (Only the first error is kept when multiple error occur) [#2093 ]
2021-03-19 22:18:06 -07:00
2021-03-11 17:12:42 +03:00
### Removed
2021-12-22 08:21:30 +00:00
- The `client` mod was removed. Clients should now use `awc` directly.
2021-03-11 00:43:03 +00:00
[871ca5e4 ](https://github.com/actix/actix-web/commit/871ca5e4ae2bdc22d1ea02701c2992fa8d04aed7 )
2021-12-22 08:21:30 +00:00
- Integration testing was moved to new `actix-test` crate. Namely these items from the `test`
2021-04-02 08:26:59 +01:00
module: `TestServer` , `TestServerConfig` , `start` , `start_with` , and `unused_addr` . [#2112 ]
2021-12-22 08:18:44 +00:00
2021-03-11 17:12:42 +03:00
[#2067 ]: https://github.com/actix/actix-web/pull/2067
2021-12-22 08:18:44 +00:00
[#2093 ]: https://github.com/actix/actix-web/pull/2093
2021-04-01 11:42:18 -04:00
[#2094 ]: https://github.com/actix/actix-web/pull/2094
[#2097 ]: https://github.com/actix/actix-web/pull/2097
2021-04-02 08:26:59 +01:00
[#2112 ]: https://github.com/actix/actix-web/pull/2112
2021-03-11 17:12:42 +03:00
2021-03-09 23:31:44 +00:00
## 4.0.0-beta.4 - 2021-03-09
2021-02-13 15:08:43 +00:00
### Changed
2021-12-22 08:21:30 +00:00
- 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
2021-03-09 23:31:44 +00:00
behaviour of the `web::Json<T>` extractor. [#2010 ]
2021-02-13 15:08:43 +00:00
2021-12-22 08:18:44 +00:00
[#1981 ]: https://github.com/actix/actix-web/pull/1981
[#2010 ]: https://github.com/actix/actix-web/pull/2010
2021-02-10 12:10:03 +00:00
2021-02-10 12:45:46 +00:00
## 4.0.0-beta.3 - 2021-02-10
2021-12-22 08:21:30 +00:00
- Update `actix-web-codegen` to `0.5.0-beta.1` .
2021-02-10 12:45:46 +00:00
## 4.0.0-beta.2 - 2021-02-10
2021-12-22 08:18:44 +00:00
### Added
2021-12-22 08:21:30 +00:00
- The method `Either<web::Json<T>, web::Form<T>>::into_inner()` which returns the inner type for
2021-01-09 13:17:19 +00:00
whichever variant was created. Also works for `Either<web::Form<T>, web::Json<T>>` . [#1894 ]
2021-12-22 08:21:30 +00:00
- Add `services!` macro for helping register multiple services to `App` . [#1933 ]
- Enable registering a vec of services of the same type to `App` [#1933 ]
2021-12-22 08:18:44 +00:00
2021-01-09 06:17:19 +08:00
### Changed
2021-12-22 08:21:30 +00:00
- Rework `Responder` trait to be sync and returns `Response` /`HttpResponse` directly.
2021-12-22 08:18:44 +00:00
Making it simpler and more performant. [#1891 ]
2021-12-22 08:21:30 +00:00
- `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`
2021-12-22 08:18:44 +00:00
in argument [#1905 ]
2021-12-22 08:21:30 +00:00
- `App::wrap_fn` , `Resource::wrap_fn` and `Scope::wrap_fn` provide `&Service` in closure
2021-12-22 08:18:44 +00:00
argument. [#1905 ]
2021-12-22 08:21:30 +00:00
- `web::block` no longer requires the output is a Result. [#1957 ]
2021-02-10 12:10:03 +00:00
2021-12-22 08:18:44 +00:00
### Fixed
2021-12-22 08:21:30 +00:00
- Multiple calls to `App::data` with the same type now keeps the latest call's data. [#1906 ]
2021-12-22 08:18:44 +00:00
2021-01-09 13:17:19 +00:00
### Removed
2021-12-22 08:21:30 +00:00
- 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
2021-12-22 08:18:44 +00:00
layered data model by calling `ServiceRequest::add_data_container` when handling
requests instead. [#1906 ]
[#1891 ]: https://github.com/actix/actix-web/pull/1891
2021-01-11 09:29:16 +08:00
[#1893 ]: https://github.com/actix/actix-web/pull/1893
2021-01-09 13:17:19 +00:00
[#1894 ]: https://github.com/actix/actix-web/pull/1894
2021-01-15 02:11:10 +00:00
[#1869 ]: https://github.com/actix/actix-web/pull/1869
2021-02-06 17:00:40 -08:00
[#1905 ]: https://github.com/actix/actix-web/pull/1905
2021-01-15 23:37:33 +00:00
[#1906 ]: https://github.com/actix/actix-web/pull/1906
2021-02-07 15:47:51 -08:00
[#1933 ]: https://github.com/actix/actix-web/pull/1933
2021-02-06 08:23:59 -08:00
[#1957 ]: https://github.com/actix/actix-web/pull/1957
2021-01-07 20:02:08 +00:00
2021-01-11 09:29:16 +08:00
2021-01-07 20:02:08 +00:00
## 4.0.0-beta.1 - 2021-01-07
2021-01-05 08:22:57 +08:00
### Added
2021-12-22 08:21:30 +00:00
- `Compat` middleware enabling generic response body/error type of middlewares like `Logger` and
2021-01-05 09:51:58 +00:00
`Compress` to be used in `middleware::Condition` and `Resource` , `Scope` services. [#1865 ]
2021-01-05 08:22:57 +08:00
2020-12-22 14:45:31 -09:00
### Changed
2021-12-22 08:21:30 +00:00
- 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
2021-12-22 08:18:44 +00:00
guide for implications. [#1875 ]
2021-12-22 08:21:30 +00:00
- Rename `DefaultHeaders::{content_type => add_content_type}` . [#1875 ]
- MSRV is now 1.46.0.
2021-12-22 08:18:44 +00:00
2020-12-04 20:57:56 +01:00
### Fixed
2021-12-22 08:21:30 +00:00
- Added the underlying parse error to `test::read_body_json` 's panic message. [#1812 ]
2021-12-22 08:18:44 +00:00
2021-01-05 09:51:58 +00:00
### Removed
2021-12-22 08:21:30 +00:00
- Public modules `middleware::{normalize, err_handlers}` . All necessary middleware structs are now
2021-12-22 08:18:44 +00:00
exposed directly by the `middleware` module.
2021-12-22 08:21:30 +00:00
- Remove `actix-threadpool` as dependency. `actix_threadpool::BlockingError` error type can be imported
2021-01-10 00:04:19 +08:00
from `actix_web::error` module. [#1878 ]
2021-12-22 08:18:44 +00:00
2020-12-04 20:57:56 +01:00
[#1812 ]: https://github.com/actix/actix-web/pull/1812
2021-12-22 08:18:44 +00:00
[#1813 ]: https://github.com/actix/actix-web/pull/1813
2020-12-26 16:46:19 -05:00
[#1852 ]: https://github.com/actix/actix-web/pull/1852
2021-01-05 09:51:58 +00:00
[#1865 ]: https://github.com/actix/actix-web/pull/1865
[#1875 ]: https://github.com/actix/actix-web/pull/1875
2021-01-10 00:04:19 +08:00
[#1878 ]: https://github.com/actix/actix-web/pull/1878
2021-01-02 00:12:18 +00:00
2021-12-22 07:20:53 +00:00
## 3.3.3 - 2021-12-18
### Changed
2021-12-22 08:21:30 +00:00
- Soft-deprecate `NormalizePath::default()` , noting upcoming behavior change in v4. [#2529 ]
2021-12-22 07:20:53 +00:00
[#2529 ]: https://github.com/actix/actix-web/pull/2529
2021-12-22 08:18:44 +00:00
2020-12-01 22:22:46 +00:00
## 3.3.2 - 2020-12-01
2020-11-29 16:35:35 +00:00
### Fixed
2021-12-22 08:21:30 +00:00
- 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 ]
2020-12-01 13:39:41 +00:00
2021-12-22 08:18:44 +00:00
[#1762 ]: https://github.com/actix/actix-web/pull/1762
[#1798 ]: https://github.com/actix/actix-web/pull/1798
[#1803 ]: https://github.com/actix/actix-web/pull/1803
2020-12-01 22:22:46 +00:00
## 3.3.1 - 2020-11-29
2021-12-22 08:21:30 +00:00
- Ensure `actix-http` dependency uses same `serde_urlencoded` .
2020-11-25 00:53:48 +00:00
## 3.3.0 - 2020-11-25
2021-12-22 08:18:44 +00:00
### Added
2021-12-22 08:21:30 +00:00
- Add `Either<A, B>` extractor helper. [#1788 ]
2020-11-20 18:02:41 +00:00
2020-11-06 01:36:15 +09:00
### Changed
2021-12-22 08:21:30 +00:00
- Upgrade `serde_urlencoded` to `0.7` . [#1773 ]
2021-12-22 08:18:44 +00:00
2020-11-25 00:53:48 +00:00
[#1773 ]: https://github.com/actix/actix-web/pull/1773
2020-11-20 18:02:41 +00:00
[#1788 ]: https://github.com/actix/actix-web/pull/1788
2021-12-22 08:18:44 +00:00
2020-10-30 03:15:22 +00:00
## 3.2.0 - 2020-10-30
2020-10-24 18:49:50 +01:00
### Added
2021-12-22 08:21:30 +00:00
- 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 ]
- Add `app_data` to `ServiceConfig` . [#1757 ]
- Expose `on_connect` for access to the connection stream before request is handled. [#1754 ]
2021-12-22 08:18:44 +00:00
### Changed
2021-12-22 08:21:30 +00:00
- 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 ]
- Upgrade `pin-project` to `1.0` .
2021-12-22 08:18:44 +00:00
[#1723 ]: https://github.com/actix/actix-web/pull/1723
[#1743 ]: https://github.com/actix/actix-web/pull/1743
[#1748 ]: https://github.com/actix/actix-web/pull/1748
2020-10-24 21:31:23 +02:00
[#1750 ]: https://github.com/actix/actix-web/pull/1750
2020-10-30 02:03:26 +00:00
[#1754 ]: https://github.com/actix/actix-web/pull/1754
2020-10-29 18:38:49 +00:00
[#1749 ]: https://github.com/actix/actix-web/pull/1749
2020-10-24 18:49:50 +01:00
2020-09-30 11:07:35 +01:00
## 3.1.0 - 2020-09-29
2020-09-25 19:50:59 +08:00
### Changed
2021-12-22 08:21:30 +00:00
- Add `TrailingSlash::MergeOnly` behaviour to `NormalizePath` , which allows `NormalizePath`
2020-09-30 11:07:35 +01:00
to retain any trailing slashes. [#1695 ]
2021-12-22 08:21:30 +00:00
- Remove bound `std::marker::Sized` from `web::Data` to support storing `Arc<dyn Trait>`
2020-09-30 11:07:35 +01:00
via `web::Data::from` [#1710 ]
2021-12-22 08:18:44 +00:00
2020-09-30 11:07:35 +01:00
### Fixed
2021-12-22 08:21:30 +00:00
- `ResourceMap` debug printing is no longer infinitely recursive. [#1708 ]
2020-09-30 11:07:35 +01:00
[#1695 ]: https://github.com/actix/actix-web/pull/1695
2020-09-25 18:42:49 +02:00
[#1708 ]: https://github.com/actix/actix-web/pull/1708
2021-12-22 08:18:44 +00:00
[#1710 ]: https://github.com/actix/actix-web/pull/1710
2020-09-30 11:07:35 +01:00
2020-09-15 13:14:14 +01:00
## 3.0.2 - 2020-09-15
2020-09-15 11:32:31 +01:00
### Fixed
2021-12-22 08:21:30 +00:00
- `NormalizePath` when used with `TrailingSlash::Trim` no longer trims the root path "/". [#1678 ]
2020-09-15 11:32:31 +01:00
[#1678 ]: https://github.com/actix/actix-web/pull/1678
2020-09-13 03:24:44 +01:00
2021-12-22 08:18:44 +00:00
2020-09-13 03:24:44 +01:00
## 3.0.1 - 2020-09-13
2020-09-13 01:55:39 +02:00
### Changed
2021-12-22 08:21:30 +00:00
- `middleware::normalize::TrailingSlash` enum is now accessible. [#1673 ]
2020-09-10 12:54:27 +01:00
2020-09-13 03:24:44 +01:00
[#1673 ]: https://github.com/actix/actix-web/pull/1673
2021-12-22 08:18:44 +00:00
2020-09-11 13:50:10 +01:00
## 3.0.0 - 2020-09-11
2021-12-22 08:21:30 +00:00
- No significant changes from `3.0.0-beta.4` .
2020-09-11 13:50:10 +01:00
2020-09-10 12:54:27 +01:00
## 3.0.0-beta.4 - 2020-09-09
2021-12-22 08:18:44 +00:00
### Added
2021-12-22 08:21:30 +00:00
- `middleware::NormalizePath` now has configurable behavior for either always having a trailing
2020-09-02 22:12:07 +01:00
slash, or as the new addition, always trimming trailing slashes. [#1639 ]
2020-08-24 10:13:35 +01:00
### Changed
2021-12-22 08:21:30 +00:00
- Update actix-codec and actix-utils dependencies. [#1634 ]
- `FormConfig` and `JsonConfig` configurations are now also considered when set
2020-09-02 22:12:07 +01:00
using `App::data` . [#1641 ]
2021-12-22 08:21:30 +00:00
- `HttpServer::maxconn` is renamed to the more expressive `HttpServer::max_connections` . [#1655 ]
- `HttpServer::maxconnrate` is renamed to the more expressive
2021-12-22 08:18:44 +00:00
`HttpServer::max_connection_rate` . [#1655 ]
2020-08-24 10:13:35 +01:00
2021-12-22 08:18:44 +00:00
[#1639 ]: https://github.com/actix/actix-web/pull/1639
[#1641 ]: https://github.com/actix/actix-web/pull/1641
2020-09-02 22:12:07 +01:00
[#1634 ]: https://github.com/actix/actix-web/pull/1634
2020-09-09 09:20:54 +01:00
[#1655 ]: https://github.com/actix/actix-web/pull/1655
2020-08-19 11:21:52 +00:00
2020-08-18 01:08:40 +09:00
## 3.0.0-beta.3 - 2020-08-17
2020-08-18 00:28:39 +09:00
### Changed
2021-12-22 08:21:30 +00:00
- Update `rustls` to 0.18
2020-08-17 19:32:38 +09:00
2020-08-24 10:13:35 +01:00
2020-08-17 19:32:38 +09:00
## 3.0.0-beta.2 - 2020-08-17
2021-12-22 08:18:44 +00:00
### Changed
2021-12-22 08:21:30 +00:00
- `PayloadConfig` is now also considered in `Bytes` and `String` extractors when set
2020-07-20 17:40:58 +01:00
using `App::data` . [#1610 ]
2021-12-22 08:21:30 +00:00
- `web::Path` now has a public representation: `web::Path(pub T)` that enables
2020-07-21 01:54:26 +02:00
destructuring. [#1594 ]
2021-12-22 08:21:30 +00:00
- `ServiceRequest::app_data` allows retrieval of non-Data data without splitting into parts to
2020-08-09 15:51:38 +01:00
access `HttpRequest` which already allows this. [#1618 ]
2021-12-22 08:21:30 +00:00
- Re-export all error types from `awc` . [#1621 ]
- MSRV is now 1.42.0.
2021-12-22 08:18:44 +00:00
2020-07-18 16:17:00 +01:00
### Fixed
2021-12-22 08:21:30 +00:00
- Memory leak of app data in pooled requests. [#1609 ]
2021-12-22 08:18:44 +00:00
2020-07-21 01:54:26 +02:00
[#1594 ]: https://github.com/actix/actix-web/pull/1594
2020-07-18 16:17:00 +01:00
[#1609 ]: https://github.com/actix/actix-web/pull/1609
2021-12-22 08:18:44 +00:00
[#1610 ]: https://github.com/actix/actix-web/pull/1610
2020-08-13 17:24:35 -07:00
[#1618 ]: https://github.com/actix/actix-web/pull/1618
[#1621 ]: https://github.com/actix/actix-web/pull/1621
2020-06-17 00:58:23 -07:00
2020-06-18 15:45:30 +01:00
2020-07-15 00:44:44 +01:00
## 3.0.0-beta.1 - 2020-07-13
### Added
2021-12-22 08:21:30 +00:00
- Re-export `actix_rt::main` as `actix_web::main` .
- `HttpRequest::match_pattern` and `ServiceRequest::match_pattern` for extracting the matched
2020-06-23 00:58:20 +01:00
resource pattern.
2021-12-22 08:21:30 +00:00
- `HttpRequest::match_name` and `ServiceRequest::match_name` for extracting matched resource name.
2021-12-22 08:18:44 +00:00
### Changed
2021-12-22 08:21:30 +00:00
- 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
2020-06-17 00:58:23 -07:00
2021-12-22 08:18:44 +00:00
### Fixed
2021-12-22 08:21:30 +00:00
- `NormalizePath` improved consistency when path needs slashes added _and_ removed.
2021-12-22 08:18:44 +00:00
2020-05-09 00:31:26 +01:00
2020-07-15 00:44:44 +01:00
## 3.0.0-alpha.3 - 2020-05-21
2021-12-22 08:18:44 +00:00
### Added
2021-12-22 08:21:30 +00:00
- Add option to create `Data<T>` from `Arc<T>` [#1509 ]
2020-05-16 01:27:03 +02:00
2020-05-09 00:31:26 +01:00
### Changed
2021-12-22 08:21:30 +00:00
- 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
- Replace deprecated `net2` crate with `socket2`
2021-12-22 08:18:44 +00:00
[#1485 ]: https://github.com/actix/actix-web/pull/1485
[#1509 ]: https://github.com/actix/actix-web/pull/1509
2020-05-08 06:46:13 +09:00
## [3.0.0-alpha.2] - 2020-05-08
2020-03-17 22:51:06 -03:00
### Changed
2021-12-22 08:21:30 +00:00
- `{Resource,Scope}::default_service(f)` handlers now support app data extraction. [#1452 ]
- Implement `std::error::Error` for our custom errors [#1422 ]
- NormalizePath middleware now appends trailing / so that routes of form /example/ respond to /example requests. [#1433 ]
- Remove the `failure` feature and support.
2021-12-22 08:18:44 +00:00
[#1422 ]: https://github.com/actix/actix-web/pull/1422
[#1433 ]: https://github.com/actix/actix-web/pull/1433
[#1452 ]: https://github.com/actix/actix-web/pull/1452
2020-05-09 00:31:26 +01:00
[#1486 ]: https://github.com/actix/actix-web/pull/1486
2020-03-17 22:51:06 -03:00
2020-05-15 02:07:27 +02:00
2020-03-12 03:24:15 +09:00
## [3.0.0-alpha.1] - 2020-03-11
2020-01-10 18:34:31 +01:00
2020-02-23 09:33:28 +01:00
### Added
2021-12-22 08:21:30 +00:00
- Add helper function for creating routes with `TRACE` method guard `web::trace()`
- Add convenience functions `test::read_body_json()` and `test::TestRequest::send_request()` for testing.
2020-02-23 09:33:28 +01:00
2020-01-10 18:34:31 +01:00
### Changed
2021-12-22 08:18:44 +00:00
2021-12-22 08:21:30 +00:00
- Use `sha-1` crate instead of unmaintained `sha1` crate
- Skip empty chunks when returning response from a `Stream` [#1308 ]
- Update the `time` dependency to 0.2.7
- Update `actix-tls` dependency to 2.0.0-alpha.1
- Update `rustls` dependency to 0.17
2021-12-22 08:18:44 +00:00
[#1308 ]: https://github.com/actix/actix-web/pull/1308
## [2.0.0] - 2019-12-25
2019-12-22 17:12:22 +04:00
### Changed
2021-12-22 08:21:30 +00:00
- Rename `HttpServer::start()` to `HttpServer::run()`
2019-12-22 17:12:22 +04:00
2021-12-22 08:21:30 +00:00
- Allow to gracefully stop test server via `TestServer::stop()`
2019-12-25 12:10:28 +04:00
2021-12-22 08:21:30 +00:00
- Allow to specify multi-patterns for resources
2019-12-22 17:12:22 +04:00
2021-12-22 08:18:44 +00:00
## [2.0.0-rc] - 2019-12-20
2019-12-16 17:22:26 +06:00
2021-12-22 08:18:44 +00:00
### Changed
2019-12-16 17:22:26 +06:00
2021-12-22 08:21:30 +00:00
- Move `BodyEncoding` to `dev` module #1220
2019-12-16 17:22:26 +06:00
2021-12-22 08:21:30 +00:00
- Allow to set `peer_addr` for TestRequest #1074
2019-12-20 16:11:51 +06:00
2021-12-22 08:21:30 +00:00
- Make web::Data deref to Arc< T > #1214
2019-12-20 17:45:35 +06:00
2021-12-22 08:21:30 +00:00
- Rename `App::register_data()` to `App::app_data()`
2019-12-20 17:13:09 +06:00
2021-12-22 08:21:30 +00:00
- `HttpRequest::app_data<T>()` returns `Option<&T>` instead of `Option<&Data<T>>`
2019-12-20 17:13:09 +06:00
2021-12-22 08:18:44 +00:00
### Fixed
2019-12-20 16:04:51 +06:00
2021-12-22 08:21:30 +00:00
- Fix `AppConfig::secure()` is always false. #1202
2019-12-20 16:04:51 +06:00
2019-12-15 22:51:14 +06:00
## [2.0.0-alpha.6] - 2019-12-15
2021-12-22 08:18:44 +00:00
2019-12-15 22:51:14 +06:00
### Fixed
2021-12-22 08:21:30 +00:00
- Fixed compilation with default features off
2019-12-15 22:51:14 +06:00
2019-12-13 12:16:43 +06:00
## [2.0.0-alpha.5] - 2019-12-13
2021-12-22 08:18:44 +00:00
### Added
2019-12-13 12:16:43 +06:00
2021-12-22 08:21:30 +00:00
- Add test server, `test::start()` and `test::start_with()`
2019-12-13 12:16:43 +06:00
2019-12-08 20:22:39 +06:00
## [2.0.0-alpha.4] - 2019-12-08
2021-12-22 08:18:44 +00:00
### Deleted
2019-12-08 00:06:04 +06:00
2021-12-22 08:21:30 +00:00
- Delete HttpServer::run(), it is not useful with async/await
2019-12-08 00:06:04 +06:00
2019-12-07 13:00:03 +06:00
## [2.0.0-alpha.3] - 2019-12-07
2019-12-05 23:35:43 +06:00
2021-12-22 08:18:44 +00:00
### Changed
2019-12-05 23:35:43 +06:00
2021-12-22 08:21:30 +00:00
- Migrate to tokio 0.2
2019-12-05 23:35:43 +06:00
2019-11-25 17:59:14 +06:00
## [2.0.0-alpha.1] - 2019-11-22
2021-12-22 08:18:44 +00:00
2019-11-19 20:05:16 -08:00
### Changed
2021-12-22 08:21:30 +00:00
- Migrated to `std::future`
2019-11-25 17:59:14 +06:00
2021-12-22 08:21:30 +00:00
- Remove implementation of `Responder` for `()` . (#1167 )
2019-11-19 20:05:16 -08:00
2021-12-22 08:18:44 +00:00
2019-11-14 08:55:37 +06:00
## [1.0.9] - 2019-11-14
2021-12-22 08:18:44 +00:00
2019-10-01 11:05:38 +03:00
### Added
2021-12-22 08:21:30 +00:00
- Add `Payload::into_inner` method and make stored `def::Payload` public. (#1110 )
2019-10-01 11:05:38 +03:00
2019-10-14 16:05:54 -07:00
### Changed
2021-12-22 08:21:30 +00:00
- Support `Host` guards when the `Host` header is unset (e.g. HTTP/2 requests) (#1129 )
2019-10-14 16:05:54 -07:00
2019-11-14 08:55:37 +06:00
2019-09-25 15:39:09 +06:00
## [1.0.8] - 2019-09-25
2021-12-22 08:18:44 +00:00
2019-09-17 17:36:39 -07:00
### Added
2021-12-22 08:21:30 +00:00
- Add `Scope::register_data` and `Resource::register_data` methods, parallel to
2019-09-17 17:36:39 -07:00
`App::register_data` .
2019-09-13 11:56:24 +06:00
2021-12-22 08:21:30 +00:00
- Add `middleware::Condition` that conditionally enables another middleware
2021-12-22 08:18:44 +00:00
2021-12-22 08:21:30 +00:00
- Allow to re-construct `ServiceRequest` from `HttpRequest` and `Payload`
2019-09-09 18:24:57 +08:00
2021-12-22 08:21:30 +00:00
- Add `HttpServer::listen_uds` for ability to listen on UDS FD rather than path,
2019-09-25 11:16:51 +02:00
which is useful for example with systemd.
2021-12-22 08:18:44 +00:00
2019-09-25 10:28:41 +06:00
### Changed
2021-12-22 08:18:44 +00:00
2021-12-22 08:21:30 +00:00
- Make UrlEncodedError::Overflow more informative
2017-10-23 23:25:32 -07:00
2021-12-22 08:21:30 +00:00
- Use actix-testing for testing utils
2019-09-25 10:28:41 +06:00
2021-12-22 08:18:44 +00:00
2019-08-29 09:36:16 +06:00
## [1.0.7] - 2019-08-29
2021-12-22 08:18:44 +00:00
2019-08-29 09:36:16 +06:00
### Fixed
2021-12-22 08:21:30 +00:00
- Request Extensions leak #1062
2019-08-29 09:36:16 +06:00
2019-08-28 21:40:24 +06:00
## [1.0.6] - 2019-08-28
2021-12-22 08:18:44 +00:00
2019-07-19 11:07:52 +06:00
### Added
2021-12-22 08:21:30 +00:00
- Re-implement Host predicate (#989 )
2019-07-19 11:07:52 +06:00
2021-12-22 08:21:30 +00:00
- Form implements Responder, returning a `application/x-www-form-urlencoded` response
2019-07-20 12:59:10 +01:00
2021-12-22 08:21:30 +00:00
- Add `into_inner` to `Data`
2019-08-23 17:02:03 +02:00
2021-12-22 08:21:30 +00:00
- Add `test::TestRequest::set_form()` convenience method to automatically serialize data and set
2019-08-28 08:32:17 -07:00
the header in test requests.
2021-12-22 08:18:44 +00:00
2019-07-19 10:47:44 +01:00
### Changed
2021-12-22 08:18:44 +00:00
2021-12-22 08:21:30 +00:00
- `Query` payload made `pub` . Allows user to pattern-match the payload.
2019-07-19 10:47:44 +01:00
2021-12-22 08:21:30 +00:00
- Enable `rust-tls` feature for client #1045
2019-08-28 21:40:24 +06:00
2021-12-22 08:21:30 +00:00
- Update serde_urlencoded to 0.6.1
2021-12-22 08:18:44 +00:00
2021-12-22 08:21:30 +00:00
- Update url to 2.1
2019-08-13 10:48:11 -07:00
2019-07-19 11:07:52 +06:00
2019-07-18 17:51:51 +06:00
## [1.0.5] - 2019-07-18
2021-12-22 08:18:44 +00:00
2019-07-18 11:31:18 +03:00
### Added
2021-12-22 08:21:30 +00:00
- Unix domain sockets (HttpServer::bind_uds) #92
2019-07-18 17:24:12 +06:00
2021-12-22 08:21:30 +00:00
- Actix now logs errors resulting in "internal server error" responses always, with the `error`
2019-07-18 11:31:18 +03:00
logging level
2021-12-22 08:18:44 +00:00
2019-07-18 11:31:18 +03:00
### Fixed
2021-12-22 08:18:44 +00:00
2021-12-22 08:21:30 +00:00
- Restored logging of errors through the `Logger` middleware
2019-07-18 11:31:18 +03:00
2019-07-18 17:24:12 +06:00
2019-07-17 12:07:12 +06:00
## [1.0.4] - 2019-07-17
2021-12-22 08:18:44 +00:00
2019-07-11 16:42:58 +08:00
### Added
2021-12-22 08:21:30 +00:00
- Add `Responder` impl for `(T, StatusCode) where T: Responder`
2019-07-11 16:42:58 +08:00
2021-12-22 08:21:30 +00:00
- Allow to access app's resource map via
2019-07-17 11:33:05 +06:00
`ServiceRequest::resource_map()` and `HttpRequest::resource_map()` methods.
2021-12-22 08:18:44 +00:00
2019-07-01 11:37:03 +08:00
### Changed
2021-12-22 08:18:44 +00:00
2021-12-22 08:21:30 +00:00
- Upgrade `rand` dependency version to 0.7
2019-07-01 11:37:03 +08:00
2019-07-17 11:33:05 +06:00
2019-06-28 14:36:20 +06:00
## [1.0.3] - 2019-06-28
2021-12-22 08:18:44 +00:00
2019-06-28 10:43:52 +06:00
### Added
2021-12-22 08:21:30 +00:00
- Support asynchronous data factories #850
2019-06-28 10:43:52 +06:00
2019-06-18 14:43:25 +08:00
### Changed
2021-12-22 08:21:30 +00:00
- Use `encoding_rs` crate instead of unmaintained `encoding` crate
2019-06-18 14:43:25 +08:00
2019-06-28 10:43:52 +06:00
2019-06-17 12:33:00 +06:00
## [1.0.2] - 2019-06-17
2021-12-22 08:18:44 +00:00
2019-06-18 14:43:25 +08:00
### Changed
2019-06-17 12:33:00 +06:00
2021-12-22 08:21:30 +00:00
- Move cors middleware to `actix-cors` crate.
2019-06-17 12:33:00 +06:00
2021-12-22 08:21:30 +00:00
- Move identity middleware to `actix-identity` crate.
2019-06-17 12:33:00 +06:00
2021-12-22 08:18:44 +00:00
2019-06-17 12:23:30 +06:00
## [1.0.1] - 2019-06-17
2021-12-22 08:18:44 +00:00
2019-06-28 10:43:52 +06:00
### Added
2019-06-12 11:26:46 +08:00
2021-12-22 08:21:30 +00:00
- Add support for PathConfig #903
2019-06-12 17:02:45 +06:00
2021-12-22 08:21:30 +00:00
- Add `middleware::identity::RequestIdentity` trait to `get_identity` from `HttpMessage` .
2019-06-12 11:26:46 +08:00
2021-12-22 08:18:44 +00:00
### Changed
2019-06-12 11:26:46 +08:00
2021-12-22 08:21:30 +00:00
- Move cors middleware to `actix-cors` crate.
2019-06-12 15:52:48 +06:00
2021-12-22 08:21:30 +00:00
- Move identity middleware to `actix-identity` crate.
2019-06-12 11:26:46 +08:00
2021-12-22 08:21:30 +00:00
- Disable default feature `secure-cookies` .
2019-06-15 09:34:16 +06:00
2021-12-22 08:21:30 +00:00
- Allow to test an app that uses async actors #897
2019-06-12 16:15:06 +06:00
2021-12-22 08:21:30 +00:00
- Re-apply patch from #637 #894
2019-06-12 16:45:05 +06:00
2021-12-22 08:18:44 +00:00
### Fixed
2019-06-15 22:12:20 +06:00
2021-12-22 08:21:30 +00:00
- HttpRequest::url_for is broken with nested scopes #915
2019-06-15 22:12:20 +06:00
2019-06-12 11:26:46 +08:00
2019-06-05 08:27:25 +06:00
## [1.0.0] - 2019-06-05
2021-12-22 08:18:44 +00:00
2019-06-28 10:43:52 +06:00
### Added
2019-05-22 11:18:33 -07:00
2021-12-22 08:21:30 +00:00
- Add `Scope::configure()` method.
2019-06-03 23:41:32 +06:00
2021-12-22 08:21:30 +00:00
- Add `ServiceRequest::set_payload()` method.
2019-05-22 21:25:51 -07:00
2021-12-22 08:21:30 +00:00
- Add `test::TestRequest::set_json()` convenience method to automatically
2019-05-22 11:18:33 -07:00
serialize data and set header in test requests.
2021-12-22 08:18:44 +00:00
2021-12-22 08:21:30 +00:00
- Add macros for head, options, trace, connect and patch http methods
2021-12-22 08:18:44 +00:00
2019-06-18 14:43:25 +08:00
### Changed
2019-05-23 15:21:02 +03:00
2021-12-22 08:21:30 +00:00
- Drop an unnecessary `Option<_>` indirection around `ServerBuilder` from `HttpServer` . #863
2019-05-23 15:21:02 +03:00
2019-05-22 11:18:33 -07:00
### Fixed
2021-12-22 08:21:30 +00:00
- Fix Logger request time format, and use rfc3339. #867
2019-05-31 10:09:21 +02:00
2021-12-22 08:21:30 +00:00
- Clear http requests pool on app service drop #860
2019-05-22 11:18:33 -07:00
2021-12-22 08:18:44 +00:00
2019-05-18 10:49:59 -07:00
## [1.0.0-rc] - 2019-05-18
2021-12-22 08:18:44 +00:00
2021-02-24 19:19:40 +03:00
### Added
2019-05-14 22:54:30 +02:00
2021-12-22 08:21:30 +00:00
- Add `Query<T>::from_query()` to extract parameters from a query string. #846
- `QueryConfig` , similar to `JsonConfig` for customizing error handling of query extractors.
2019-05-14 22:54:30 +02:00
2019-06-18 14:43:25 +08:00
### Changed
2021-12-22 08:18:44 +00:00
2021-12-22 08:21:30 +00:00
- `JsonConfig` is now `Send + Sync` , this implies that `error_handler` must be `Send + Sync` too.
2019-05-13 05:04:08 +02:00
2019-05-15 10:31:40 -07:00
### Fixed
2021-12-22 08:21:30 +00:00
- Codegen with parameters in the path only resolves the first registered endpoint #841
2019-05-15 10:31:40 -07:00
2019-05-12 10:49:21 -07:00
## [1.0.0-beta.4] - 2019-05-12
2021-12-22 08:18:44 +00:00
2021-02-24 19:19:40 +03:00
### Added
2019-05-12 09:42:05 -07:00
2021-12-22 08:21:30 +00:00
- Allow to set/override app data on scope level
2019-05-12 09:42:05 -07:00
2019-06-18 14:43:25 +08:00
### Changed
2019-05-10 14:45:30 -07:00
2021-12-22 08:21:30 +00:00
- `App::configure` take an `FnOnce` instead of `Fn`
- Upgrade actix-net crates
2019-05-12 10:49:21 -07:00
2019-05-18 09:54:23 -07:00
2021-12-22 08:18:44 +00:00
## [1.0.0-beta.3] - 2019-05-04
2019-04-29 09:34:14 -07:00
### Added
2021-12-22 08:21:30 +00:00
- Add helper function for executing futures `test::block_fn()`
2019-04-29 09:34:14 -07:00
2019-04-29 09:26:12 -07:00
### Changed
2021-12-22 08:21:30 +00:00
- Extractor configuration could be registered with `App::data()`
2019-05-04 19:43:49 -07:00
or with `Resource::data()` #775
2021-12-22 08:21:30 +00:00
- Route data is unified with app data, `Route::data()` moved to resource
2021-12-22 08:18:44 +00:00
level to `Resource::data()`
2019-05-04 19:43:49 -07:00
2021-12-22 08:21:30 +00:00
- CORS handling without headers #702
2021-12-22 08:18:44 +00:00
2021-12-22 08:21:30 +00:00
- Allow constructing `Data` instances to avoid double `Arc` for `Send + Sync` types.
2019-04-29 09:26:12 -07:00
2021-12-22 08:18:44 +00:00
### Fixed
2019-05-01 12:40:56 -07:00
2021-12-22 08:21:30 +00:00
- Fix `NormalizePath` middleware impl #806
2019-05-01 12:40:56 -07:00
2019-05-04 19:43:49 -07:00
### Deleted
2021-12-22 08:21:30 +00:00
- `App::data_factory()` is deleted.
2019-05-04 19:43:49 -07:00
2019-04-29 09:26:12 -07:00
2019-04-24 13:00:30 -07:00
## [1.0.0-beta.2] - 2019-04-24
2021-12-22 08:18:44 +00:00
2019-04-22 14:22:08 -07:00
### Added
2021-12-22 08:21:30 +00:00
- Add raw services support via `web::service()`
2019-04-24 10:25:46 -07:00
2021-12-22 08:21:30 +00:00
- Add helper functions for reading response body `test::read_body()`
2019-04-22 14:22:08 -07:00
2021-12-22 08:21:30 +00:00
- Add support for `remainder match` (i.e "/path/{tail}*")
2019-04-22 21:22:17 -07:00
2021-12-22 08:21:30 +00:00
- Extend `Responder` trait, allow to override status code and headers.
2019-04-22 21:22:17 -07:00
2021-12-22 08:21:30 +00:00
- Store visit and login timestamp in the identity cookie #502
2019-04-24 15:42:34 -07:00
2021-12-22 08:18:44 +00:00
### Changed
2019-04-22 14:22:08 -07:00
2021-12-22 08:21:30 +00:00
- `.to_async()` handler can return `Responder` type #792
2019-04-22 14:22:08 -07:00
2019-04-23 21:21:49 -07:00
### Fixed
2021-12-22 08:21:30 +00:00
- Fix async web::Data factory handling
2019-04-23 21:21:49 -07:00
2019-04-20 21:16:51 -07:00
## [1.0.0-beta.1] - 2019-04-20
2021-12-22 08:18:44 +00:00
2019-04-14 19:52:12 -07:00
### Added
2021-12-22 08:21:30 +00:00
- Add helper functions for reading test response body,
2019-04-14 19:52:12 -07:00
`test::read_response()` and test::read_response_json()`
2021-12-22 08:21:30 +00:00
- Add `.peer_addr()` #744
2021-12-22 08:18:44 +00:00
2021-12-22 08:21:30 +00:00
- Add `NormalizePath` middleware
2019-04-20 11:18:04 -07:00
2021-12-22 08:18:44 +00:00
### Changed
2019-04-15 07:32:49 -07:00
2021-12-22 08:21:30 +00:00
- Rename `RouterConfig` to `ServiceConfig`
2019-04-15 07:32:49 -07:00
2021-12-22 08:21:30 +00:00
- Rename `test::call_success` to `test::call_service`
2019-04-15 07:44:07 -07:00
2021-12-22 08:21:30 +00:00
- Removed `ServiceRequest::from_parts()` as it is unsafe to create from parts.
2019-04-18 16:03:13 -07:00
2021-12-22 08:21:30 +00:00
- `CookieIdentityPolicy::max_age()` accepts value in seconds
2019-04-19 17:23:17 -07:00
2021-12-22 08:18:44 +00:00
### Fixed
2019-04-14 19:52:12 -07:00
2021-12-22 08:21:30 +00:00
- Fixed `TestRequest::app_data()`
2019-04-14 19:52:12 -07:00
2019-04-14 08:09:32 -07:00
## [1.0.0-alpha.6] - 2019-04-14
2021-12-22 08:18:44 +00:00
2019-04-13 14:50:54 -07:00
### Changed
2021-12-22 08:21:30 +00:00
- Allow using any service as default service.
2019-04-13 22:25:00 -07:00
2021-12-22 08:21:30 +00:00
- Remove generic type for request payload, always use default.
2019-04-13 14:50:54 -07:00
2021-12-22 08:21:30 +00:00
- Removed `Decompress` middleware. Bytes, String, Json, Form extractors
2019-04-13 14:50:54 -07:00
automatically decompress payload.
2021-12-22 08:18:44 +00:00
2021-12-22 08:21:30 +00:00
- Make extractor config type explicit. Add `FromRequest::Config` associated type.
2021-12-22 08:18:44 +00:00
2019-04-13 14:50:54 -07:00
2019-04-12 14:00:45 -07:00
## [1.0.0-alpha.5] - 2019-04-12
2021-12-22 08:18:44 +00:00
2019-04-10 20:47:28 -07:00
### Added
2021-12-22 08:21:30 +00:00
- Added async io `TestBuffer` for testing.
2019-04-10 20:47:28 -07:00
2019-04-12 14:00:45 -07:00
### Deleted
2021-12-22 08:21:30 +00:00
- Removed native-tls support
2019-04-12 14:00:45 -07:00
2019-04-10 20:47:28 -07:00
2019-04-07 23:42:05 -07:00
## [1.0.0-alpha.4] - 2019-04-08
2021-12-22 08:18:44 +00:00
2019-04-03 15:09:31 -07:00
### Added
2021-12-22 08:21:30 +00:00
- `App::configure()` allow to offload app configuration to different methods
2019-04-03 12:28:58 -07:00
2021-12-22 08:21:30 +00:00
- Added `URLPath` option for logger
2019-04-03 20:41:42 -04:00
2021-12-22 08:21:30 +00:00
- Added `ServiceRequest::app_data()` , returns `Data<T>`
2019-04-03 15:25:52 -07:00
2021-12-22 08:21:30 +00:00
- Added `ServiceFromRequest::app_data()` , returns `Data<T>`
2019-04-03 15:25:52 -07:00
2021-12-22 08:18:44 +00:00
### Changed
2019-04-03 12:28:58 -07:00
2021-12-22 08:21:30 +00:00
- `FromRequest` trait refactoring
2019-04-07 14:43:07 -07:00
2021-12-22 08:21:30 +00:00
- Move multipart support to actix-multipart crate
2019-04-03 12:28:58 -07:00
2021-12-22 08:18:44 +00:00
### Fixed
2019-04-10 12:43:31 -07:00
2021-12-22 08:21:30 +00:00
- Fix body propagation in Response::from_error. #760
2019-04-10 12:43:31 -07:00
2019-04-03 12:28:58 -07:00
2019-04-02 21:49:31 -07:00
## [1.0.0-alpha.3] - 2019-04-02
2021-12-22 08:18:44 +00:00
2019-03-31 20:43:00 -07:00
### Changed
2021-12-22 08:21:30 +00:00
- Renamed `TestRequest::to_service()` to `TestRequest::to_srv_request()`
2019-03-31 20:43:00 -07:00
2021-12-22 08:21:30 +00:00
- Renamed `TestRequest::to_response()` to `TestRequest::to_srv_response()`
2019-03-31 20:43:00 -07:00
2021-12-22 08:21:30 +00:00
- Removed `Deref` impls
2019-04-02 13:35:01 -07:00
2021-12-22 08:18:44 +00:00
### Removed
2019-03-30 10:04:38 -07:00
2021-12-22 08:21:30 +00:00
- Removed unused `actix_web::web::md()`
2019-03-30 10:04:38 -07:00
2019-03-29 11:59:38 -07:00
## [1.0.0-alpha.2] - 2019-03-29
2021-12-22 08:18:44 +00:00
2019-03-29 22:06:14 -07:00
### Added
2021-12-22 08:21:30 +00:00
- Rustls support
2019-03-29 22:06:14 -07:00
2019-03-29 11:59:38 -07:00
### Changed
2021-12-22 08:21:30 +00:00
- Use forked cookie
2019-03-29 22:06:14 -07:00
2021-12-22 08:21:30 +00:00
- Multipart::Field renamed to MultipartField
2019-03-29 11:59:38 -07:00
2021-12-22 08:18:44 +00:00
## [1.0.0-alpha.1] - 2019-03-28
2019-03-24 16:17:59 -07:00
2021-12-22 08:18:44 +00:00
### Changed
2019-03-24 16:17:59 -07:00
2021-12-22 08:21:30 +00:00
- Complete architecture re-design.
2019-03-28 13:46:26 -07:00
2021-12-22 08:21:30 +00:00
- Return 405 response if no matching route found within resource #538