Tower HTTP
NOTE: This crate is still under active development and while most of the initial churn is over, Tower HTTP still isn't released on crates.io. We are actively working on that and you can follow the progress towards 0.1.0 here.
Tower middleware and utilities for HTTP clients and servers.
More information about this crate can be found in the crate documentation.
Middleware
Tower HTTP contains lots of middleware that are generally useful when building HTTP servers and clients. Some of the highlights are:
Traceadds high level logging of requests and responses. Supports both regular HTTP requests as well as gRPC.CompressionandDecompressionto compress/decompress response bodies.FollowRedirectto automatically follow redirection responses.
See the docs for the complete list of middleware.
Middleware uses the http crate as the HTTP interface so they're compatible
with any library or framework that also uses http. For example hyper.
The middleware were originally extracted from one of @EmbarkStudios internal projects.
Examples
The examples folder contains various examples of how to use Tower HTTP:
warp-key-value-store: A key/value store with an HTTP API built with warp.tonic-key-value-store: A key/value store with a gRPC API and client built with tonic.
Getting Help
First, see if the answer to your question can be found in the API documentation. If the answer is not there, there is an active community in the Tower Discord channel. We would be happy to try to answer your question. If that doesn't work, try opening an issue with the question.
Contributing
🎈 Thanks for your help improving the project! We are so happy to have you! We have a contributing guide to help you get involved in the Tower HTTP project.
License
This project is licensed under the MIT license.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in Tower HTTP by you, shall be licensed as MIT, without any additional terms or conditions.