David Pedersen 973bf71583
util: add CloneBoxService (#615)
* util: add `CloneService`

This upstreams a little utility I'm using a bunch in axum. Its often
useful to erase the type of a service while still being able to clone
it.

`BoxService` isn't `Clone` previously you had to combine it with
`Buffer` but doing that a lot (which we did in axum) had measurable
impact on performance.

* Address review feedback

* remove needless trait bounds
2021-11-09 21:39:27 +01:00
2021-11-09 21:39:27 +01:00
2016-08-26 16:26:03 -07:00
2021-10-19 16:28:55 +02:00
2021-10-19 16:28:55 +02:00

Tower

Tower is a library of modular and reusable components for building robust networking clients and servers.

Crates.io Documentation Documentation (master) MIT licensed Build Status Discord chat

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.

Minimum supported Rust version

tower's MSRV is 1.46.

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.

Description
async fn(Request) -> Result
Readme MIT 6.7 MiB
Languages
Rust 100%