2018-12-09 19:14:08 +01:00
# Changes
2021-01-03 05:39:37 +01:00
## Unreleased - 2021-xx-xx
2021-12-18 03:49:23 +01:00
- Service types can now be `Send` and `'static` regardless of request, response, and config types, etc.. [#397]
2021-12-04 23:30:04 +01:00
[#397]: https://github.com/actix/actix-net/pull/397
2021-04-16 16:18:53 +02:00
2021-10-11 05:20:37 +02:00
## 2.0.1 - 2021-10-11
2021-12-18 03:49:23 +01:00
- Documentation fix.
2021-10-11 05:20:37 +02:00
2021-04-16 16:18:53 +02:00
## 2.0.0 - 2021-04-16
2021-12-18 03:49:23 +01:00
- Removed pipeline and related structs/functions. [#335]
2021-04-16 01:00:02 +02:00
[#335]: https://github.com/actix/actix-net/pull/335
2021-03-16 00:09:34 +01:00
## 2.0.0-beta.5 - 2021-03-15
2021-12-18 03:49:23 +01:00
- Add default `Service` trait impl for `Rc<S: Service>` and `&S: Service` . [#288]
- Add `boxed::rc_service` function for constructing `boxed::RcService` type [#290]
2021-02-28 20:54:57 +01:00
[#288]: https://github.com/actix/actix-net/pull/288
2021-03-01 00:01:05 +01:00
[#290]: https://github.com/actix/actix-net/pull/290
2021-02-04 21:44:13 +01:00
## 2.0.0-beta.4 - 2021-02-04
2021-12-18 03:49:23 +01:00
- `Service::poll_ready` and `Service::call` receive `&self` . [#247]
- `apply_fn` and `apply_fn_factory` now receive `Fn(Req, &Service)` function type. [#247]
- `apply_cfg` and `apply_cfg_factory` now receive `Fn(Req, &Service)` function type. [#247]
- `fn_service` and friends now receive `Fn(Req)` function type. [#247]
2021-01-23 04:06:22 +01:00
[#247]: https://github.com/actix/actix-net/pull/247
2021-01-09 15:28:33 +01:00
## 2.0.0-beta.3 - 2021-01-09
2021-12-18 03:49:23 +01:00
- The `forward_ready!` macro converts errors. [#246]
2021-01-09 15:13:16 +01:00
[#246]: https://github.com/actix/actix-net/pull/246
2021-01-03 05:39:37 +01:00
## 2.0.0-beta.2 - 2021-01-03
2021-12-18 03:49:23 +01:00
- Remove redundant type parameter from `map_config` .
2020-12-28 02:58:31 +01:00
## 2.0.0-beta.1 - 2020-12-28
2021-12-18 03:49:23 +01:00
- `Service` , other traits, and many type signatures now take the the request type as a type
2020-12-27 05:28:00 +01:00
parameter instead of an associated type. [#232]
2021-12-18 03:49:23 +01:00
- Add `always_ready!` and `forward_ready!` macros. [#233]
- Crate is now `no_std` . [#233]
- Migrate pin projections to `pin-project-lite` . [#233]
- Remove `AndThenApplyFn` and Pipeline `and_then_apply_fn` . Use the
2020-12-27 15:15:42 +01:00
`.and_then(apply_fn(...))` construction. [#233]
2021-12-18 03:49:23 +01:00
- Move non-vital methods to `ServiceExt` and `ServiceFactoryExt` extension traits. [#235]
2020-12-27 05:28:00 +01:00
[#232]: https://github.com/actix/actix-net/pull/232
2020-12-27 15:15:42 +01:00
[#233]: https://github.com/actix/actix-net/pull/233
2020-12-27 19:24:57 +01:00
[#235]: https://github.com/actix/actix-net/pull/235
2020-12-27 05:28:00 +01:00
2020-08-09 17:10:58 +02:00
## 1.0.6 - 2020-08-09
2021-12-18 03:49:23 +01:00
- Removed unsound custom Cell implementation that allowed obtaining several mutable references to
2020-12-28 02:58:31 +01:00
the same data, which is undefined behavior in Rust and could lead to violations of memory safety. External code could obtain several mutable references to the same data through
service combinators. Attempts to acquire several mutable references to the same data will instead
result in a panic.
2020-07-19 23:05:36 +02:00
2020-01-17 01:58:11 +01:00
2021-11-22 00:42:51 +01:00
## 1.0.5 - 2020-01-16
2021-12-18 03:49:23 +01:00
- Fixed unsoundness in .and_then()/.then() service combinators.
2020-01-17 01:58:11 +01:00
2020-01-15 22:24:38 +01:00
2021-11-22 00:42:51 +01:00
## 1.0.4 - 2020-01-15
2021-12-18 03:49:23 +01:00
- Revert 1.0.3 change
2020-01-15 22:24:38 +01:00
2020-01-15 20:40:15 +01:00
2021-11-22 00:42:51 +01:00
## 1.0.3 - 2020-01-15
2021-12-18 03:49:23 +01:00
- Fixed unsoundness in `AndThenService` impl.
2020-01-08 13:31:50 +01:00
2021-11-22 00:42:51 +01:00
## 1.0.2 - 2020-01-08
2021-12-18 03:49:23 +01:00
- Add `into_service` helper function.
2020-01-08 13:31:50 +01:00
2021-11-22 00:42:51 +01:00
## 1.0.1 - 2019-12-22
2021-12-18 03:49:23 +01:00
- `map_config()` and `unit_config()` now accept `IntoServiceFactory` type.
2019-12-22 13:30:49 +01:00
2019-12-09 09:07:20 +01:00
2021-11-22 00:42:51 +01:00
## 1.0.0 - 2019-12-11
2021-12-18 03:49:23 +01:00
- Add Clone impl for Apply service
2019-12-09 09:07:20 +01:00
2021-11-22 00:42:51 +01:00
## 1.0.0-alpha.4 - 2019-12-08
2021-12-18 03:49:23 +01:00
- Renamed `service_fn` to `fn_service`
- Renamed `factory_fn` to `fn_factory`
- Renamed `factory_fn_cfg` to `fn_factory_with_config`
2019-12-08 14:05:05 +01:00
2021-11-22 00:42:51 +01:00
## 1.0.0-alpha.3 - 2019-12-06
2021-12-18 03:49:23 +01:00
- Add missing Clone impls
- Restore `Transform::map_init_err()` combinator
- Restore `Service/Factory::apply_fn()` in form of `Pipeline/Factory::and_then_apply_fn()`
- Optimize service combinators and futures memory layout
2019-12-03 13:32:02 +01:00
2021-11-22 00:42:51 +01:00
## 1.0.0-alpha.2 - 2019-12-02
2021-12-18 03:49:23 +01:00
- Use owned config value for service factory
- Renamed BoxedNewService/BoxedService to BoxServiceFactory/BoxService
2019-11-25 13:18:00 +01:00
2021-11-22 00:42:51 +01:00
## 1.0.0-alpha.1 - 2019-11-25
2021-12-18 03:49:23 +01:00
- Migrated to `std::future`
- `NewService` renamed to `ServiceFactory`
- Added `pipeline` and `pipeline_factory` function
2019-11-25 13:18:00 +01:00
2021-11-22 00:42:51 +01:00
## 0.4.2 - 2019-08-27
2021-12-18 03:49:23 +01:00
- Check service readiness for `new_apply_cfg` combinator
2019-08-27 01:28:15 +02:00
2021-11-22 00:42:51 +01:00
## 0.4.1 - 2019-06-06
2021-12-18 03:49:23 +01:00
- Add `new_apply_cfg` function
2019-06-06 10:28:07 +02:00
2019-05-12 15:03:50 +02:00
2021-11-22 00:42:51 +01:00
## 0.4.0 - 2019-05-12
2021-12-18 03:49:23 +01:00
- Add `NewService::map_config` and `NewService::unit_config` combinators.
- Use associated type for `NewService` config.
- Change `apply_cfg` function.
- Renamed helper functions.
2019-05-12 15:03:50 +02:00
2019-04-08 05:48:40 +02:00
2021-11-22 00:42:51 +01:00
## 0.3.6 - 2019-04-07
2021-12-18 03:49:23 +01:00
- Poll boxed service call result immediately
2019-04-08 05:48:40 +02:00
2021-11-22 00:42:51 +01:00
## 0.3.5 - 2019-03-29
2021-12-18 03:49:23 +01:00
- Add `impl<S: Service> Service for Rc<RefCell<S>>` .
2019-03-29 18:21:17 +01:00
2019-03-12 20:53:08 +01:00
2021-11-22 00:42:51 +01:00
## 0.3.4 - 2019-03-12
2021-12-18 03:49:23 +01:00
- Add `Transform::from_err()` combinator
- Add `apply_fn` helper
- Add `apply_fn_factory` helper
- Add `apply_transform` helper
- Add `apply_cfg` helper
2019-03-13 00:32:10 +01:00
2019-03-12 20:53:08 +01:00
2021-11-22 00:42:51 +01:00
## 0.3.3 - 2019-03-09
2021-12-18 03:49:23 +01:00
- Add `ApplyTransform` new service for transform and new service.
- Add `NewService::apply_cfg()` combinator, allows to use nested `NewService` with different config parameter.
- Revert IntoFuture change
2019-03-05 06:35:47 +01:00
2019-03-05 06:24:47 +01:00
2021-11-22 00:42:51 +01:00
## 0.3.2 - 2019-03-04
2021-12-18 03:49:23 +01:00
- Change `NewService::Future` and `Transform::Future` to the `IntoFuture` trait.
- Export `AndThenTransform` type
2019-03-05 05:29:35 +01:00
2021-11-22 00:42:51 +01:00
## 0.3.1 - 2019-03-04
2021-12-18 03:49:23 +01:00
- Simplify Transform trait
2019-03-05 04:38:11 +01:00
2021-11-22 00:42:51 +01:00
## 0.3.0 - 2019-03-02
2021-12-18 03:49:23 +01:00
- Added boxed NewService and Service.
- Added `Config` parameter to `NewService` trait.
- Added `Config` parameter to `NewTransform` trait.
2019-02-22 21:44:37 +01:00
2021-11-22 00:42:51 +01:00
## 0.2.2 - 2019-02-19
2021-12-18 03:49:23 +01:00
- Added `NewService` impl for `Rc<S> where S: NewService`
- Added `NewService` impl for `Arc<S> where S: NewService`
2019-02-19 20:31:54 +01:00
2021-11-22 00:42:51 +01:00
## 0.2.1 - 2019-02-03
2021-12-18 03:49:23 +01:00
- Generalize `.apply` combinator with Transform trait
2019-02-03 19:42:27 +01:00
2021-11-22 00:42:51 +01:00
## 0.2.0 - 2019-02-01
2021-12-18 03:49:23 +01:00
- Use associated type instead of generic for Service definition.
2019-02-02 04:53:13 +01:00
* Before:
```rust
impl Service< Request > for Client {
type Response = Response;
// ...
}
```
* After:
```rust
impl Service for Client {
type Request = Request;
type Response = Response;
// ...
}
```
2021-11-22 00:42:51 +01:00
## 0.1.6 - 2019-01-24
2021-12-18 03:49:23 +01:00
- Use `FnMut` instead of `Fn` for .apply() and .map() combinators and `FnService` type
- Change `.apply()` error semantic, new service's error is `From<Self::Error>`
2019-01-25 04:19:44 +01:00
2021-11-22 00:42:51 +01:00
## 0.1.5 - 2019-01-13
2021-12-18 03:49:23 +01:00
- Make `Out::Error` convertible from `T::Error` for apply combinator
2019-01-14 07:58:23 +01:00
2019-01-12 06:39:58 +01:00
2021-11-22 00:42:51 +01:00
## 0.1.4 - 2019-01-11
2021-12-18 03:49:23 +01:00
- Use `FnMut` instead of `Fn` for `FnService`
2019-01-12 06:39:58 +01:00
2021-11-22 00:42:51 +01:00
## 0.1.3 - 2018-12-12
2021-12-18 03:49:23 +01:00
- Split service combinators to separate trait
2018-12-13 03:32:19 +01:00
2021-11-22 00:42:51 +01:00
## 0.1.2 - 2018-12-12
2021-12-18 03:49:23 +01:00
- Release future early for `.and_then()` and `.then()` combinators
2018-12-13 03:00:35 +01:00
2021-11-22 00:42:51 +01:00
## 0.1.1 - 2018-12-09
2021-12-18 03:49:23 +01:00
- Added Service impl for `Box<S: Service>`
2018-12-09 19:14:08 +01:00
2021-11-22 00:42:51 +01:00
## 0.1.0 - 2018-12-09
2021-12-18 03:49:23 +01:00
- Initial import