awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
tower-rs avatar

tower-rs/tower

0
View on GitHub↗
4,093 stars·325 forks·Rust·mit·27 viewsdocs.rs/tower↗

Tower

Tower is a modular service abstraction layer for the Rust programming language, providing a framework for building asynchronous request-response pipelines. It serves as a set of core components for managing backpressure, balancing loads, and abstracting service discovery.

The project distinguishes itself through a layer-based middleware composition model, allowing services to be wrapped in recursive chains of decorators. This enables the declarative application of cross-cutting concerns, such as timeouts, rate limiting, and retries, in a protocol-agnostic manner.

The library covers a broad range of traffic management and reliability capabilities. It includes tools for load balancing across multiple backend services, request stream buffering to decouple production speed from processing capacity, and load shedding to prevent service exhaustion. Additionally, it provides utilities for request filtering, routing, and the implementation of hedged requests to reduce tail latency.

Features

  • Middleware Composition Layers - Provides a modular framework for wrapping services in recursive chains of decorators to apply cross-cutting concerns.
  • Service Abstractions - Offers a modular abstraction layer in Rust for building reusable request-response middleware and service wrappers.
  • Load Balancers - Provides tools to distribute incoming network requests across multiple backend services to optimize resource utilization.
  • Asynchronous Middleware Engines - Provides a set of components for composing timeouts, rate limiting, and retries into a declarative asynchronous pipeline.
  • Backpressure Coordination - Coordinates service capacity to manage backpressure and prevent overload by checking availability before dispatching requests.
  • Asynchronous Request Handlers - Models the flow of requests and responses using a generic interface for asynchronous communication.
  • Future-Based Concurrency Frameworks - Utilizes non-blocking polling of future values to handle concurrent requests without locking execution threads.
  • Load Shedding - Implements load shedding to immediately drop excess requests and protect the system from exhaustion under heavy load.
  • Request-Response Exchanges - Defines a generic interface for processing asynchronous requests and returning future responses or errors.
  • Request Rate Limiting - Caps the number of concurrent or total requests allowed to proceed to inner services to prevent overload.
  • Trait-Based Service Abstractions - Defines a generic trait-based interface for mapping requests to future responses, allowing diverse logic to be treated as a single type.
  • Custom Middleware Development - Enables the development of reusable, protocol-agnostic components to wrap services with shared behaviors.
  • Middleware - Implements a set of shared, protocol-agnostic middleware components for extending asynchronous service functionality.
  • Request Retries - Automatically resends requests that encounter errors or exceed latency thresholds to improve system reliability.
  • Load Shedding Systems - Implements systems for buffering request streams and shedding excess load to prevent service exhaustion.
  • Request Timeout Management - Terminates requests that do not complete within a specified timeframe to prevent resource exhaustion.
  • Dynamic Service Discovery - Provides mechanisms for dynamically identifying and routing requests to available network endpoints.
  • Request Routing - Steers specific requests to different backend services based on defined criteria.
  • Network Reliability - Implements retries, timeouts, and automatic reconnection logic to maintain uptime and reduce tail latency.
  • Service Discovery - Provides a mechanism for locating network endpoints and routing traffic dynamically to available backend services.
  • Load Balancing Architectures - Implements strategies to distribute requests across a pool of backend endpoints to optimize resource utilization.
  • Request Hedging - Implements request hedging by sending redundant requests to alternative services to reduce tail latency.
  • Request Timeouts - Monitors asynchronous operation durations and forces error responses if specified time limits are exceeded.
  • Request Flow Control - Manages system stability by filtering requests, capping concurrency, and shedding load when services are overwhelmed.
  • Asynchronous Request Buffering - Decouples producers from consumers by queuing requests in asynchronous channels to manage processing speed.
  • Language Toolkits - Modular components for building robust network services.

Star history

Star history chart for tower-rs/towerStar history chart for tower-rs/tower

How this analysis was created: This summary and feature list were written by an AI model that read the project's README and public documentation pages. Each feature links to the documentation it came from; stars, license and language come straight from the GitHub API. The model does not read the source code, and the analysis is refreshed when the project is re-analysed. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to Tower

Similar open-source projects, ranked by how many features they share with Tower.
  • geektutu/7days-golanggeektutu avatar

    geektutu/7days-golang

    16,812View on GitHub↗

    This project is an educational framework designed to teach the fundamentals of building core distributed systems and web services from scratch in Go. It provides a collection of modular implementations that demonstrate how to construct essential infrastructure components, including web servers, remote procedure call systems, distributed caches, and database abstraction layers. The framework distinguishes itself by focusing on the internal mechanics of these systems rather than providing a high-level abstraction for production use. It covers the implementation of complex architectural patterns

    Gogolanglearningscratch
    View on GitHub↗16,812
  • doocs/advanced-javadoocs avatar

    doocs/advanced-java

    78,987View on GitHub↗

    This project is a comprehensive Java backend engineering guide and technical reference focused on high-concurrency design, distributed systems, and microservices architecture. It provides detailed strategies for decomposing monolithic applications, managing service discovery, and implementing the architectural patterns required for scalable backend environments. The repository distinguishes itself through an extensive collection of big data algorithmic references and database scaling strategies. It covers memory-efficient techniques for analyzing massive datasets, such as Top-K element extrac

    Javaadvanced-javadistributed-search-enginedistributed-systems
    View on GitHub↗78,987
  • threemammals/ocelotThreeMammals avatar

    ThreeMammals/Ocelot

    8,710View on GitHub↗

    Ocelot is a .NET API gateway that functions as an HTTP reverse proxy to route, balance, and secure traffic between clients and backend services. It serves as a centralized manager for incoming requests, providing a single entry point for traffic orchestration. The project differentiates itself through dynamic request orchestration, allowing it to aggregate multiple backend service responses into a single result to minimize client network round trips. It also supports dynamic gateway configuration, enabling updates to system behavior and operational parameters without requiring a service resta

    C#api-gatewayaspnetcoredotnet
    View on GitHub↗8,710
  • apache/dubboapache avatar

    apache/dubbo

    41,519View on GitHub↗

    Dubbo is a Java RPC framework and microservices governance platform designed for high-performance remote procedure calls in distributed architectures. It provides the foundational components necessary to connect distributed services across a network, including a binary data serialization library and a distributed service registry. The platform distinguishes itself through a comprehensive governance suite that manages service discovery, load balancing, and traffic routing. It enables precise control over network traffic via conditional routing and a pluggable extension mechanism based on a ser

    Javadistributed-systemsdubboframework
    View on GitHub↗41,519
See all 30 alternatives to Tower→

Frequently asked questions

What does tower-rs/tower do?

Tower is a modular service abstraction layer for the Rust programming language, providing a framework for building asynchronous request-response pipelines. It serves as a set of core components for managing backpressure, balancing loads, and abstracting service discovery.

What are the main features of tower-rs/tower?

The main features of tower-rs/tower are: Middleware Composition Layers, Service Abstractions, Load Balancers, Asynchronous Middleware Engines, Backpressure Coordination, Asynchronous Request Handlers, Future-Based Concurrency Frameworks, Load Shedding.

What are some open-source alternatives to tower-rs/tower?

Open-source alternatives to tower-rs/tower include: geektutu/7days-golang — This project is an educational framework designed to teach the fundamentals of building core distributed systems and… doocs/advanced-java — This project is a comprehensive Java backend engineering guide and technical reference focused on high-concurrency… threemammals/ocelot — Ocelot is a .NET API gateway that functions as an HTTP reverse proxy to route, balance, and secure traffic between… apache/dubbo — Dubbo is a Java RPC framework and microservices governance platform designed for high-performance remote procedure… alibaba/higress — Higress is an AI API gateway and cloud-native traffic manager that functions as a Kubernetes ingress controller. It… moleculerjs/moleculer — Moleculer is a Node.js microservices framework designed for building distributed systems. It functions as a…