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

Entdecke die besten Open-Source-Repositories mit KI-gestützter Suche.

EntdeckenKuratierte SuchenOpen-Source-AlternativenSelf-hosted SoftwareBlogSitemap
ProjektÜber unsRanking-MethodikPresseMCP-Server
RechtlichesDatenschutzAGB
© 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·8 Aufrufedocs.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-Verlauf

Star-Verlauf für tower-rs/towerStar-Verlauf für tower-rs/tower

KI-Suche

Entdecke weitere awesome Repositories

Beschreibe in einfachen Worten, was du brauchst — die KI bewertet tausende kuratierte Open-Source-Projekte nach Relevanz.

Start searching with AI

Open-Source-Alternativen zu Tower

Ähnliche Open-Source-Projekte, sortiert nach der Anzahl der gemeinsamen Funktionen mit Tower.
  • geektutu/7days-golangAvatar von geektutu

    geektutu/7days-golang

    16,812Auf GitHub ansehen↗

    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
    Auf GitHub ansehen↗16,812
  • doocs/advanced-javaAvatar von doocs

    doocs/advanced-java

    78,987Auf GitHub ansehen↗

    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
    Auf GitHub ansehen↗78,987
  • threemammals/ocelotAvatar von ThreeMammals

    ThreeMammals/Ocelot

    8,710Auf GitHub ansehen↗

    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
    Auf GitHub ansehen↗8,710
  • apache/dubboAvatar von apache

    apache/dubbo

    41,519Auf GitHub ansehen↗

    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
    Auf GitHub ansehen↗41,519
Alle 30 Alternativen zu Tower anzeigen→

Häufig gestellte Fragen

Was macht 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.

Was sind die Hauptfunktionen von tower-rs/tower?

Die Hauptfunktionen von tower-rs/tower sind: Middleware Composition Layers, Service Abstractions, Load Balancers, Asynchronous Middleware Engines, Backpressure Coordination, Asynchronous Request Handlers, Future-Based Concurrency Frameworks, Load Shedding.

Welche Open-Source-Alternativen gibt es zu tower-rs/tower?

Open-Source-Alternativen zu tower-rs/tower sind unter anderem: 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…