Tower
Modular, reusable Rust components for building async network clients and servers
Repository Health
Technical Analysis
Tower is a library of protocol-agnostic middleware built around a single trait — Service, an async function from Request to Result<Response, Error> — that lets you compose cross-cutting concerns like timeouts, retries, load balancing, rate limiting, and buffering as small, independently testable Layers stacked around any client or server.
Because the abstraction is just a function from request to response, the same middleware stack works whether you’re building an HTTP client, a gRPC server, or any other request/response protocol; Tower underpins higher-level frameworks like Axum, Tonic, and Hyper’s ecosystem rather than being an application framework itself.
What You Get
- The
Servicetrait: an async function fromRequesttoResult<Response, Error>that any client or server can implement - The
Layertrait for composing middleware into reusable, stackable wrappers around aService - Ready-made middleware:
timeout,retry,load_shed,limit(concurrency/rate),balance(load balancing),buffer,hedge,filter,reconnect, andsteer tower-serviceandtower-layerareno_stdcompatible, so the core traits can be used in constrained environmentstower-testutilities for unit-testing services and middleware in isolation
Common Use Cases
- Adding timeouts, retries, and rate limiting to an HTTP or gRPC client without hand-rolling each concern
- Building a load-balancing client that distributes requests across multiple backend connections
- Composing middleware stacks underneath web frameworks like Axum or RPC frameworks like Tonic
- Writing protocol-agnostic middleware once and reusing it across different network protocols
Under The Hood
Architecture - the workspace splits the abstraction from the implementation: tower-service defines the minimal Service trait (no_std, #![forbid(unsafe_code)]), tower-layer defines the Layer composition trait, and the top-level tower crate provides the actual middleware implementations (balance, buffer, discover, filter, hedge, limit, load, load_shed, ready_cache, reconnect, retry, spawn_ready, steer, timeout, util) plus a ServiceBuilder for stacking them, each middleware living in its own module so consumers can feature-gate in only what they use. Tech Stack - 100% Rust, no_std-compatible core traits with alloc, std-only middleware in the main crate, built on futures/tokio-style async primitives without depending on a specific runtime. Code Quality - the tower crate enforces missing_docs and missing_debug_implementations lint warnings and #![forbid(unsafe_code)] in tower-service, and ships a dedicated tower-test crate for exercising services in isolation, though the low commit velocity (activity_status: moderate, ~0.33 commits/month) reflects the crate’s foundational, mostly-stable nature rather than active feature growth. API Design - the entire library is built from two small traits (Service, Layer), which keeps the conceptual surface tiny and highly composable via ServiceBuilder, but the trait-based, generic-heavy design (especially around poll_ready/backpressure semantics) has a real learning curve for developers new to Rust’s async trait patterns.
Used by 27 apps in this directory
Silex
Design Tools · No Code Platforms
Free, open-source visual website builder that exports clean HTML/CSS — no lock-in, no subscription, host anywhere
Spacedrive
Collaboration · File Storage
One file manager for all your devices and clouds — powered by a Virtual Distributed File System built in Rust.
Svix
Automation · Developer Tools
Open source, self-hostable webhook infrastructure that handles delivery, retries, HMAC signing, and multi-tenant event management so you never have to build a webhooks system from scratch.
Svix
Automation · Developer Tools
Open source, self-hostable webhook infrastructure that handles delivery, retries, HMAC signing, and multi-tenant event management so you never have to build a webhooks system from scratch.
Temps
Analytics · Devops · Monitoring
A self-hosted Rust PaaS that replaces Vercel, Sentry, PostHog, Pingdom, Resend, and E2B with one binary — plus 440+ CLI operations agents like Claude Code can drive directly.
TensorZero
Ab Testing Experimentation · AI Development · Monitoring
TensorZero unifies the LLM gateway, observability, evaluation, optimization, and experimentation stack behind a single OpenAI-compatible API, built in Rust for sub-millisecond p99 latency.
Volga
Data Engineering
A Rust-based real-time data processing engine for AI/ML feature computation, built on Apache DataFusion and Arrow — positioned as an alternative to Flink, Spark, Chronon, and OpenMLDB with unified streaming, batch, and request-time execution.
YuE2 Studio
Mcp · Music Audio
Windows desktop studio that runs the YuE2 song model on your own NVIDIA GPU: it writes an editable sheet-music score first, then sings it as a full song with vocals, offline, with covers, LoRA training and an MCP server for agents.
Zed
Code Editors · Collaboration · Developer Tools
High-performance, multiplayer code editor built in Rust by the creators of Atom and Tree-sitter, with native AI integration and real-time collaboration.