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
Lokus
Knowledge Management · Note Taking
Local-first note-taking with graph view, canvas & AI plugins—your Markdown files, zero telemetry, blazing-fast Rust performance.
Lokus
Knowledge Management · Note Taking
Local-first note-taking with graph view, canvas & AI plugins—your Markdown files, zero telemetry, blazing-fast Rust performance.
Meilisearch
Search
Lightning-fast hybrid search engine with AI-powered semantic and full-text retrieval for modern applications.
mesh-llm
AI Agents · AI Development
Mesh LLM pools GPUs and memory across every machine you own into one OpenAI-compatible API, so agents tap distributed compute instead of a single GPU box or a metered cloud bill.
Murr
Databases
A RocksDB-based NVMe/S3 cache purpose-built for AI inference workloads — a faster Redis replacement optimized for batch, low-latency, zero-copy reads and writes between data pipelines and inference apps.
openfootmanager
Game Development
A free and open source football management simulation game built with Rust and Tauri, inspired by Football Manager.
Qdrant
AI Development · Databases · Search
Open-source vector database and search engine built in Rust for production-grade AI applications — from semantic search to RAG pipelines and recommendation systems.
Qdrant
AI Development · Databases · Search
Open-source vector database and search engine built in Rust for production-grade AI applications — from semantic search to RAG pipelines and recommendation systems.
Readur
Bookmarks Archiving · File Storage · Knowledge Management
A self-hosted document management system that OCRs, indexes, and makes every PDF, scan, and Office file instantly searchable.