awesome-repositories.com
博客
MCP
awesome-repositories.com

通过 AI 驱动的搜索,发现最优秀的开源仓库。

探索精选搜索开源替代品自托管软件博客网站地图
项目关于排名机制媒体报道MCP 服务器
法律隐私政策服务条款
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
tower-rs avatar

tower-rs/tower

0
View on GitHub↗
4,093 星标·325 分支·Rust·mit·8 次浏览docs.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 历史

tower-rs/tower 的 Star 历史图表tower-rs/tower 的 Star 历史图表

AI 搜索

探索更多 awesome 仓库

用简单的语言描述您的需求 —— AI 将根据相关性为您从数千个精选开源项目中进行排序。

Start searching with AI

常见问题解答

tower-rs/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.

tower-rs/tower 的主要功能有哪些?

tower-rs/tower 的主要功能包括:Middleware Composition Layers, Service Abstractions, Load Balancers, Asynchronous Middleware Engines, Backpressure Coordination, Asynchronous Request Handlers, Future-Based Concurrency Frameworks, Load Shedding。

tower-rs/tower 有哪些开源替代品?

tower-rs/tower 的开源替代品包括: 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…

Tower 的开源替代方案

相似的开源项目,按与 Tower 的功能重合度排序。
  • geektutu/7days-golanggeektutu 的头像

    geektutu/7days-golang

    16,812在 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
    在 GitHub 上查看↗16,812
  • doocs/advanced-javadoocs 的头像

    doocs/advanced-java

    78,987在 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
    在 GitHub 上查看↗78,987
  • threemammals/ocelotThreeMammals 的头像

    ThreeMammals/Ocelot

    8,710在 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
    在 GitHub 上查看↗8,710
  • apache/dubboapache 的头像

    apache/dubbo

    41,519在 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
    在 GitHub 上查看↗41,519
  • 查看 Tower 的所有 30 个替代方案→