Skip to content
fn(Request) -> Future<Response>
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
ci Rename tower-util -> tower (#197) Mar 15, 2019
tower-balance
tower-buffer
tower-discover discover: polish crate (#194) Mar 14, 2019
tower-filter
tower-in-flight-limit
tower-layer Move layer::{LayerExt, Chain, Identity} (#216) Mar 29, 2019
tower-load-shed
tower-mock
tower-rate-limit retry: Call poll_ready on the inner service (#223) Apr 2, 2019
tower-reconnect
tower-retry retry: Call poll_ready on the inner service (#223) Apr 2, 2019
tower-service layer: Add `tower-layer` and the `Layer` trait (#163) Feb 27, 2019
tower-timeout
tower-util Rename OptionService -> Optional (#219) Mar 30, 2019
tower
.gitignore
Cargo.toml
LICENSE
README.md
azure-pipelines.yml

README.md

Tower

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

Build Status Gitter

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.

Project Layout

Tower consists of a number of components, each of which live in their own sub crates.

  • tower: The main user facing crate that provides batteries included tower services (docs).

  • tower-service: The foundational traits upon which Tower is built (docs).

  • tower-layer: The foundational trait to compose services together (docs).

  • tower-balance: A load balancer. Load is balanced across a number of services (docs).

  • tower-buffer: A buffering middleware. If the inner service is not ready to handle the next request, tower-buffer stores the request in an internal queue (docs).

  • tower-discover: Service discovery abstraction (docs).

  • tower-filter: Middleware that conditionally dispatch requests to the inner service based on a predicate (docs);

  • tower-in-flight-limit: Middleware limiting the number of requests that are in-flight for the inner service (docs).

  • tower-mock: Testing utility for mocking a Service. This is useful for testing middleware implementations (docs);

  • tower-rate-limit: Middleware limiting the number of requests to the inner service over a period of time (docs).

  • tower-reconnect: Middleware that automatically reconnects the inner service when it becomes degraded (docs).

  • tower-retry: Middleware that retries requests based on a given Policy (docs).

  • tower-timeout: Middleware that applies a timeout to requests (docs).

  • tower-util: Miscellaneous additional utilities for Tower (docs).

Status

Currently, only tower-service, the foundational trait, has been released to crates.io. The rest of the library will be following shortly.

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.

You can’t perform that action at this time.