2017-10-31 04:46:39 +01:00
# Changes
2019-09-25 06:28:41 +02:00
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
2020-01-29 09:15:13 +01:00
## [2.1.NEXT] - 2020-01-xx
2020-01-10 18:34:31 +01:00
2020-02-23 09:33:28 +01:00
### Added
* Add helper function for creating routes with `TRACE` method guard `web::trace()`
2020-01-10 18:34:31 +01:00
### Changed
2020-01-28 10:28:09 +01:00
* Use `sha-1` crate instead of unmaintained `sha1` crate
* Skip empty chunks when returning response from a `Stream` #1308
2020-01-10 18:34:31 +01:00
2020-02-22 23:08:22 +01:00
* Update the `time` dependency to 0.2.7
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
2020-01-29 09:15:13 +01:00
* Accomodate breaking change in actix-http: trait actix_http::MessageBody requires Unpin and accepting Pin<& mut Self> instead of & mut self in the poll_next()
2019-12-25 17:21:00 +01:00
## [2.0.0] - 2019-12-25
2019-12-22 14:12:22 +01:00
### Changed
* Rename `HttpServer::start()` to `HttpServer::run()`
2019-12-25 09:10:28 +01:00
* Allow to gracefully stop test server via `TestServer::stop()`
2019-12-25 17:13:52 +01:00
* Allow to specify multi-patterns for resources
2019-12-22 14:12:22 +01:00
2019-12-20 12:36:48 +01:00
## [2.0.0-rc] - 2019-12-20
2019-12-16 12:22:26 +01:00
### Changed
* Move `BodyEncoding` to `dev` module #1220
2019-12-20 11:11:51 +01:00
* Allow to set `peer_addr` for TestRequest #1074
2019-12-20 12:45:35 +01:00
* Make web::Data deref to Arc< T > #1214
2019-12-20 12:13:09 +01:00
* Rename `App::register_data()` to `App::app_data()`
* `HttpRequest::app_data<T>()` returns `Option<&T>` instead of `Option<&Data<T>>`
2019-12-20 11:04:51 +01:00
### Fixed
* Fix `AppConfig::secure()` is always false. #1202
2019-12-15 17:51:14 +01:00
## [2.0.0-alpha.6] - 2019-12-15
### Fixed
* Fixed compilation with default features off
2019-12-13 07:16:43 +01:00
## [2.0.0-alpha.5] - 2019-12-13
### Added
* Add test server, `test::start()` and `test::start_with()`
2019-12-08 15:22:39 +01:00
## [2.0.0-alpha.4] - 2019-12-08
2019-12-07 19:06:04 +01:00
### Deleted
* Delete HttpServer::run(), it is not useful witht async/await
2019-12-07 08:00:03 +01:00
## [2.0.0-alpha.3] - 2019-12-07
2019-12-05 18:35:43 +01:00
### Changed
* Migrate to tokio 0.2
2019-11-25 12:59:14 +01:00
## [2.0.0-alpha.1] - 2019-11-22
2019-11-20 05:05:16 +01:00
### Changed
2019-11-25 12:59:14 +01:00
* Migrated to `std::future`
2019-11-20 05:05:16 +01:00
* Remove implementation of `Responder` for `()` . (#1167)
2019-11-14 03:55:37 +01:00
## [1.0.9] - 2019-11-14
2019-10-01 10:05:38 +02:00
### Added
* Add `Payload::into_inner` method and make stored `def::Payload` public. (#1110)
2019-10-15 01:05:54 +02:00
### Changed
* Support `Host` guards when the `Host` header is unset (e.g. HTTP/2 requests) (#1129)
2019-11-14 03:55:37 +01:00
2019-09-25 11:39:09 +02:00
## [1.0.8] - 2019-09-25
2019-09-18 02:36:39 +02:00
### Added
* Add `Scope::register_data` and `Resource::register_data` methods, parallel to
`App::register_data` .
2019-09-13 07:56:24 +02:00
2019-09-18 02:36:39 +02:00
* Add `middleware::Condition` that conditionally enables another middleware
2019-09-13 07:56:24 +02:00
* Allow to re-construct `ServiceRequest` from `HttpRequest` and `Payload`
2019-09-09 12:24:57 +02:00
2019-09-25 11:16:51 +02:00
* Add `HttpServer::listen_uds` for ability to listen on UDS FD rather than path,
which is useful for example with systemd.
2019-09-25 06:28:41 +02:00
### Changed
2019-09-17 02:58:04 +02:00
* Make UrlEncodedError::Overflow more informativve
2017-10-24 08:25:32 +02:00
2019-09-25 06:28:41 +02:00
* Use actix-testing for testing utils
2019-08-29 05:36:16 +02:00
## [1.0.7] - 2019-08-29
### Fixed
* Request Extensions leak #1062
2019-08-28 17:40:24 +02:00
## [1.0.6] - 2019-08-28
2019-07-19 07:07:52 +02:00
### Added
* Re-implement Host predicate (#989)
2019-07-20 13:59:10 +02:00
* Form immplements Responder, returning a `application/x-www-form-urlencoded` response
2019-08-23 17:02:03 +02:00
* Add `into_inner` to `Data`
2019-08-28 17:32:17 +02:00
* Add `test::TestRequest::set_form()` convenience method to automatically serialize data and set
the header in test requests.
2019-07-19 11:47:44 +02:00
### Changed
* `Query` payload made `pub` . Allows user to pattern-match the payload.
2019-08-28 17:40:24 +02:00
* Enable `rust-tls` feature for client #1045
2019-08-13 20:03:24 +02:00
* Update serde_urlencoded to 0.6.1
* Update url to 2.1
2019-08-13 19:48:11 +02:00
2019-07-19 07:07:52 +02:00
2019-07-18 13:51:51 +02:00
## [1.0.5] - 2019-07-18
2019-07-18 10:31:18 +02:00
### Added
2019-07-18 13:24:12 +02:00
* Unix domain sockets (HttpServer::bind_uds) #92
2019-07-18 10:31:18 +02:00
* 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
2019-07-18 13:24:12 +02:00
2019-07-17 08:07:12 +02:00
## [1.0.4] - 2019-07-17
2019-07-01 05:37:03 +02:00
2019-07-11 10:42:58 +02:00
### Added
* Add `Responder` impl for `(T, StatusCode) where T: Responder`
2019-07-17 07:33:05 +02:00
* Allow to access app's resource map via
`ServiceRequest::resource_map()` and `HttpRequest::resource_map()` methods.
2019-07-01 05:37:03 +02:00
### Changed
* Upgrade `rand` dependency version to 0.7
2019-07-17 07:33:05 +02:00
2019-06-28 10:36:20 +02:00
## [1.0.3] - 2019-06-28
2019-06-18 08:43:25 +02:00
2019-06-28 06:43:52 +02:00
### Added
* Support asynchronous data factories #850
2019-06-18 08:43:25 +02:00
### Changed
* Use `encoding_rs` crate instead of unmaintained `encoding` crate
2019-06-28 06:43:52 +02:00
2019-06-17 08:33:00 +02:00
## [1.0.2] - 2019-06-17
2019-06-18 08:43:25 +02:00
### Changed
2019-06-17 08:33:00 +02:00
* Move cors middleware to `actix-cors` crate.
* Move identity middleware to `actix-identity` crate.
2019-06-17 08:23:30 +02:00
## [1.0.1] - 2019-06-17
2019-06-12 05:26:46 +02:00
2019-06-28 06:43:52 +02:00
### Added
2019-06-12 05:26:46 +02:00
2019-06-12 13:02:45 +02:00
* Add support for PathConfig #903
2019-06-12 05:26:46 +02:00
* Add `middleware::identity::RequestIdentity` trait to `get_identity` from `HttpMessage` .
2019-06-18 08:43:25 +02:00
### Changed
2019-06-12 05:26:46 +02:00
2019-06-15 05:34:16 +02:00
* Move cors middleware to `actix-cors` crate.
2019-06-12 11:52:48 +02:00
* Move identity middleware to `actix-identity` crate.
2019-06-12 05:26:46 +02:00
2019-06-15 05:34:16 +02:00
* Disable default feature `secure-cookies` .
2019-06-12 12:15:06 +02:00
* Allow to test an app that uses async actors #897
2019-06-12 12:45:05 +02:00
* Re-apply patch from #637 #894
2019-06-15 18:12:20 +02:00
### Fixed
* HttpRequest::url_for is broken with nested scopes #915
2019-06-12 05:26:46 +02:00
2019-06-05 04:27:25 +02:00
## [1.0.0] - 2019-06-05
2019-05-22 20:18:33 +02:00
2019-06-28 06:43:52 +02:00
### Added
2019-05-22 20:18:33 +02:00
2019-06-03 19:41:32 +02:00
* Add `Scope::configure()` method.
2019-05-23 06:25:51 +02:00
* Add `ServiceRequest::set_payload()` method.
2019-05-22 20:18:33 +02:00
* Add `test::TestRequest::set_json()` convenience method to automatically
serialize data and set header in test requests.
2019-06-04 18:33:43 +02:00
* Add macros for head, options, trace, connect and patch http methods
2019-05-22 20:18:33 +02:00
2019-06-18 08:43:25 +02:00
### Changed
2019-05-23 14:21:02 +02:00
* Drop an unnecessary `Option<_>` indirection around `ServerBuilder` from `HttpServer` . #863
2019-05-22 20:18:33 +02:00
### Fixed
2019-05-31 10:09:21 +02:00
* Fix Logger request time format, and use rfc3339. #867
2019-05-22 20:18:33 +02:00
* Clear http requests pool on app service drop #860
2019-05-18 19:49:59 +02:00
## [1.0.0-rc] - 2019-05-18
2019-05-15 19:31:40 +02:00
2019-05-14 22:54:30 +02:00
### Add
2019-05-17 22:10:46 +02:00
* Add `Query<T>::from_query()` to extract parameters from a query string. #846
2019-05-14 22:54:30 +02:00
* `QueryConfig` , similar to `JsonConfig` for customizing error handling of query extractors.
2019-06-18 08:43:25 +02:00
### Changed
2019-05-13 05:04:08 +02:00
* `JsonConfig` is now `Send + Sync` , this implies that `error_handler` must be `Send + Sync` too.
2019-05-15 19:31:40 +02:00
### Fixed
* Codegen with parameters in the path only resolves the first registered endpoint #841
2019-05-12 19:49:21 +02:00
## [1.0.0-beta.4] - 2019-05-12
2019-05-12 18:42:05 +02:00
### Add
* Allow to set/override app data on scope level
2019-06-18 08:43:25 +02:00
### Changed
2019-05-10 23:45:30 +02:00
* `App::configure` take an `FnOnce` instead of `Fn`
2019-05-12 19:49:21 +02:00
* Upgrade actix-net crates
2019-05-18 18:54:23 +02:00
2019-05-05 04:43:49 +02:00
## [1.0.0-beta.3] - 2019-05-04
2019-04-29 18:34:14 +02:00
### Added
* Add helper function for executing futures `test::block_fn()`
2019-04-29 18:26:12 +02:00
### Changed
2019-05-05 04:43:49 +02:00
* 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()`
2019-05-04 17:42:27 +02:00
* CORS handling without headers #702
2019-04-29 18:26:12 +02:00
* Allow to construct `Data` instances to avoid double `Arc` for `Send + Sync` types.
2019-05-01 21:40:56 +02:00
### Fixed
* Fix `NormalizePath` middleware impl #806
2019-05-05 04:43:49 +02:00
### Deleted
* `App::data_factory()` is deleted.
2019-04-29 18:26:12 +02:00
2019-04-24 22:00:30 +02:00
## [1.0.0-beta.2] - 2019-04-24
2019-04-22 23:22:08 +02:00
### Added
2019-04-25 00:29:15 +02:00
* Add raw services support via `web::service()`
2019-04-24 19:25:46 +02:00
2019-04-22 23:22:08 +02:00
* Add helper functions for reading response body `test::read_body()`
2019-04-25 00:29:15 +02:00
* Add support for `remainder match` (i.e "/path/{tail}*")
2019-04-23 06:22:17 +02:00
2019-04-25 00:29:15 +02:00
* Extend `Responder` trait, allow to override status code and headers.
2019-04-23 06:22:17 +02:00
2019-04-25 00:42:34 +02:00
* Store visit and login timestamp in the identity cookie #502
2019-04-22 23:22:08 +02:00
### Changed
* `.to_async()` handler can return `Responder` type #792
2019-04-24 06:21:49 +02:00
### Fixed
* Fix async web::Data factory handling
2019-04-21 06:16:51 +02:00
## [1.0.0-beta.1] - 2019-04-20
2019-04-15 04:52:12 +02:00
### Added
2019-04-16 19:11:38 +02:00
* Add helper functions for reading test response body,
2019-04-15 04:52:12 +02:00
`test::read_response()` and test::read_response_json()`
2019-04-16 19:11:38 +02:00
* Add `.peer_addr()` #744
2019-04-20 20:18:04 +02:00
* Add `NormalizePath` middleware
2019-04-15 16:32:49 +02:00
### Changed
* Rename `RouterConfig` to `ServiceConfig`
2019-04-15 16:44:07 +02:00
* Rename `test::call_success` to `test::call_service`
2019-04-19 01:03:13 +02:00
* Removed `ServiceRequest::from_parts()` as it is unsafe to create from parts.
2019-04-20 02:23:17 +02:00
* `CookieIdentityPolicy::max_age()` accepts value in seconds
2019-04-15 04:52:12 +02:00
### Fixed
* Fixed `TestRequest::app_data()`
2019-04-14 17:09:32 +02:00
## [1.0.0-alpha.6] - 2019-04-14
2019-04-13 23:50:54 +02:00
### Changed
2019-04-14 07:25:00 +02:00
* Allow to use any service as default service.
2019-04-13 23:50:54 +02:00
* Remove generic type for request payload, always use default.
* Removed `Decompress` middleware. Bytes, String, Json, Form extractors
automatically decompress payload.
2019-04-14 01:35:25 +02:00
* Make extractor config type explicit. Add `FromRequest::Config` associated type.
2019-04-13 23:50:54 +02:00
2019-04-12 23:00:45 +02:00
## [1.0.0-alpha.5] - 2019-04-12
2019-04-11 05:47:28 +02:00
### Added
* Added async io `TestBuffer` for testing.
2019-04-12 23:00:45 +02:00
### Deleted
* Removed native-tls support
2019-04-11 05:47:28 +02:00
2019-04-08 08:42:05 +02:00
## [1.0.0-alpha.4] - 2019-04-08
2019-04-04 00:09:31 +02:00
### Added
* `App::configure()` allow to offload app configuration to different methods
2019-04-03 21:28:58 +02:00
2019-04-04 02:41:42 +02:00
* Added `URLPath` option for logger
2019-04-04 00:25:52 +02:00
* Added `ServiceRequest::app_data()` , returns `Data<T>`
* Added `ServiceFromRequest::app_data()` , returns `Data<T>`
2019-04-03 21:28:58 +02:00
### Changed
2019-04-07 23:43:07 +02:00
* `FromRequest` trait refactoring
2019-04-03 21:28:58 +02:00
* Move multipart support to actix-multipart crate
2019-04-10 21:43:31 +02:00
### Fixed
* Fix body propagation in Response::from_error. #760
2019-04-03 21:28:58 +02:00
2019-04-03 06:49:31 +02:00
## [1.0.0-alpha.3] - 2019-04-02
2019-04-01 05:43:00 +02:00
### Changed
* Renamed `TestRequest::to_service()` to `TestRequest::to_srv_request()`
* Renamed `TestRequest::to_response()` to `TestRequest::to_srv_response()`
2019-04-02 22:35:01 +02:00
* Removed `Deref` impls
2019-03-30 18:04:38 +01:00
### Removed
* Removed unused `actix_web::web::md()`
2019-03-29 19:59:38 +01:00
## [1.0.0-alpha.2] - 2019-03-29
2019-03-30 06:06:14 +01:00
### Added
* rustls support
2019-03-29 19:59:38 +01:00
### Changed
2019-03-30 06:06:14 +01:00
* use forked cookie
2019-03-29 19:59:38 +01:00
* multipart::Field renamed to MultipartField
2019-03-28 21:46:26 +01:00
## [1.0.0-alpha.1] - 2019-03-28
2019-03-25 00:17:59 +01:00
### Changed
2019-03-28 21:46:26 +01:00
* Complete architecture re-design.
2019-03-25 00:17:59 +01:00
* Return 405 response if no matching route found within resource #538