Tower

Modular, reusable Rust components for building async network clients and servers

Library
Cargo
v0.5.3
4,325 stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
51 /100 Fair
Development Activity 12
Maintenance 20
Community 72
Maturity 60
Momentum 40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
76 /100 Good
Architecture 85
Code Quality 80
Innovation 78
Learning Curve 60

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 Service trait: an async function from Request to Result<Response, Error> that any client or server can implement
  • The Layer trait for composing middleware into reusable, stackable wrappers around a Service
  • Ready-made middleware: timeout, retry, load_shed, limit (concurrency/rate), balance (load balancing), buffer, hedge, filter, reconnect, and steer
  • tower-service and tower-layer are no_std compatible, so the core traits can be used in constrained environments
  • tower-test utilities 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

JavaScript
55%
Other

Lokus

Knowledge Management · Note Taking

829

Local-first note-taking with graph view, canvas & AI plugins—your Markdown files, zero telemetry, blazing-fast Rust performance.

View details
75
Repo Health
75
Technical
64
Dependency
Built with
JavaScript 55%
HTML 21%
Rust 12%
Updated 2 months ago
JavaScript
55%
Other

Lokus

Knowledge Management · Note Taking

829

Local-first note-taking with graph view, canvas & AI plugins—your Markdown files, zero telemetry, blazing-fast Rust performance.

View details
75
Repo Health
75
Technical
64
Dependency
Built with
JavaScript 55%
HTML 21%
Rust 12%
Updated 2 months ago
Rust
100%
Other

Meilisearch

Search

59,644

Lightning-fast hybrid search engine with AI-powered semantic and full-text retrieval for modern applications.

View details
90
Repo Health
88
Technical
67
Dependency
Built with
Rust 100%
Updated 1 weeks ago
Rust
86%
Apache 2.0

mesh-llm

AI Agents · AI Development

3,551

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.

View details
85
Repo Health
91
Technical
69
Dependency
Built with
Rust 86%
TypeScript 10%
Updated 6 days ago
Rust
93%
Apache 2.0

Murr

Databases

117

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.

View details
73
Repo Health
72
Technical
75
Dependency
Built with
Rust 93%
Updated 1 weeks ago
Rust
59%
GPL 3.0

openfootmanager

Game Development

1,161

A free and open source football management simulation game built with Rust and Tauri, inspired by Football Manager.

View details
94
Repo Health
79
Technical
73
Dependency
Built with
Rust 59%
TypeScript 40%
Updated 1 weeks ago
Rust
90%
Apache 2.0

Qdrant

AI Development · Databases · Search

35,220

Open-source vector database and search engine built in Rust for production-grade AI applications — from semantic search to RAG pipelines and recommendation systems.

View details
92
Repo Health
87
Technical
62
Dependency
Built with
Rust 90%
Updated 1 weeks ago
Rust
90%
Apache 2.0

Qdrant

AI Development · Databases · Search

35,220

Open-source vector database and search engine built in Rust for production-grade AI applications — from semantic search to RAG pipelines and recommendation systems.

View details
92
Repo Health
87
Technical
62
Dependency
Built with
Rust 90%
Updated 1 weeks ago
Rust
63%
MIT

Readur

Bookmarks Archiving · File Storage · Knowledge Management

804

A self-hosted document management system that OCRs, indexes, and makes every PDF, scan, and Office file instantly searchable.

View details
83
Repo Health
78
Technical
67
Dependency
Built with
Rust 63%
TypeScript 32%
Updated 6 days ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers