
Buffer
to be generic over inner service's Future
(#654)
* buffer: change `Buffer` to be generic over inner service's `Future` This commit changes the `Buffer` service to be generic over the inner service's `Future` type, rather than over the `Service` type itself. The `Worker` type is still generic over the inner `Service` (and, it must be, as it stores an instance of that service). This should reduce type complexity of buffers a bit, as they will erase nested service types. Unfortunately, `Buffer` is still generic over the inner service's `Future`, which may also be nested, but it is likely to be less complex than the `Service`. It would be nice if we could erase the `Future` type as well, but I don't believe this is possible without either boxing the futures or changing them to always be spawned on a background task, neither of which seems desirable here. Closes #641 Signed-off-by: Eliza Weisman <eliza@buoyant.io>
Tower
Tower is a library of modular and reusable components for building robust networking clients and servers.
Overview
Tower aims to make it as easy as possible to build robust networking clients and servers. It is protocol agnostic, but is designed around a request / response pattern. If your protocol is entirely stream based, Tower may not be a good fit.
Supported Rust Versions
Tower will keep a rolling MSRV (minimum supported Rust version) policy of at least 6 months. When increasing the MSRV, the new Rust version must have been released at least six months ago. The current MSRV is 1.49.0.
Getting Started
If you're brand new to Tower and want to start with the basics we recommend you check out some of our guides.
License
This project is licensed under the MIT license.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in Tower by you, shall be licensed as MIT, without any additional terms or conditions.