An HTTP library for Rust
16.2k
Stars
1.8k
Forks
258
Open issues
30
Contributors
AI Analysis
hyper is a low-level, production-grade HTTP library for Rust that implements HTTP/1 and HTTP/2 with an asynchronous design. It serves as a foundational building block for HTTP clients and servers, best suited for developers building higher-level frameworks or libraries rather than end-users seeking convenience APIs; higher-level alternatives like reqwest (client) and axum/warp (servers) are built on top of hyper.
Inferred from signals mentioned in the README (tests, CI, type safety) — not a review of the actual code.
AI's overall editorial judgment — not an average of the bars above, can weigh other factors too.
Hyper: Rust's foundational HTTP library powering major frameworks and production systems
hyper is a low-level, asynchronous HTTP/1 and HTTP/2 library for Rust, explicitly designed as a building block rather than an end-user framework. It is used directly by library authors and as the foundation for widely adopted higher-level crates like reqwest (HTTP client), axum (web framework), and warp. Its target audience is Rust ecosystem builders and performance-critical applications that need direct control over HTTP semantics. It emphasizes correctness, performance, and async-first design using Tokio.
Created in August 2014, hyper is one of the oldest HTTP libraries in the Rust ecosystem. It predates async/await in Rust and has been refactored multiple times to track Rust's async evolution, including major breaking changes in the 0.x-to-1.x transition that landed after years of work.
Growth was driven primarily by becoming the de facto HTTP substrate for the Rust ecosystem. reqwest, axum, and warp all depend on hyper, meaning hyper's adoption grew indirectly as those higher-level libraries gained popularity. The 1.0 stable release consolidated trust after a long pre-1.0 period. Stars have plateaued (4 new in last 7 days) because the library is mature and widely known within its audience.
hyper is listed as a direct dependency of reqwest (one of the most downloaded Rust crates on crates.io), axum (the dominant Rust web framework), and is used by AWS's Rust SDK. crates.io download statistics for hyper historically rank it among the top 50 most downloaded Rust crates. Production use is extensively documented across the Rust ecosystem.
Appears to follow a layered, composable design: low-level HTTP parsing and framing at the core, with async I/O abstractions on top. Likely built around Tokio's async runtime, exposing both client and server APIs. The README explicitly positions it as infrastructure-level, not application-level.
README claims the library is 'tested and correct', and CI badges are visible, suggesting automated test pipelines are active. Specific coverage metrics are not documented in README.
Last push was June 19, 2026 — three days before evaluation date. This indicates very active, ongoing maintenance. The project has been continuously developed for over 11 years, with a stable 1.x release line. Active Discord community also signals ongoing developer engagement.
ADOPT IF: you are building an HTTP library, framework, or infrastructure component in Rust that needs direct HTTP control, maximum performance, and correctness guarantees. AVOID IF: you need a ready-to-use HTTP client or web framework — use reqwest or axum instead; hyper's API requires significant boilerplate for application-level use. MONITOR IF: you track Rust HTTP ecosystem stability; hyper's 1.x API evolution affects every crate built on top of it.
Independent dimensions
Mainstream potential
6/10
Technical importance
9/10
Adoption evidence
9/10
- The 0.x to 1.x API migration introduced breaking changes that affected downstream crates for an extended period; future major versions could again fragment the ecosystem temporarily.
- Being infrastructure-level means API stability is critical — any semver-breaking change propagates widely through the Rust HTTP ecosystem.
- Relatively small core maintainer team; long-term bus-factor risk if key contributors reduce involvement.
- Low-level API complexity may discourage direct use, pushing more users toward wrapper libraries and reducing direct community feedback.
- Async Rust ecosystem changes (e.g., alternative runtimes to Tokio) could require architectural adaptation over time.
hyper will remain the dominant HTTP substrate in the Rust ecosystem for the foreseeable future. Its role is structural — ecosystem-level displacement would require a coordinated migration away from all crates built on it, which appears highly unlikely.
Newsletter
Get analyses like this every Monday
Free weekly digest of the most interesting open-source discoveries.
Languages
Information
- Website
- https://hyper.rs
- Language
- Rust
- License
- MIT
- Last updated
- 3d ago
- Created
- 144mo ago
- Analyzed with
- anthropic/claude-haiku-4-5
Stars over time
Contributors over time
Top 100 contributors only — repos with more will plateau at 100.
Open issues
Server retains Content-Length when Transfer-Encoding is present if Content-Length appears first
Body dropped too late when an h1 handshake hits an error
hyper-util: legacy client pool IdleTask spins every pool_idle_timeout when pool is empty
Top contributors
Similar repos
hyperlight-dev/hyperlight
Hyperlight is a lightweight Virtual Machine Manager designed to embed sandboxed...
| Repository | Stars | Week Δ | Language | Score | Updated |
|---|---|---|---|---|---|
|
|
16.2k | +16 | Rust | 9/10 | 3d ago |
|
|
1.4k | — | Rust | 8/10 | 3w ago |
|
|
1.5k | — | Rust | 8/10 | 22h ago |
|
|
4.5k | — | Rust | 8/10 | 10h ago |
|
|
1.3k | — | Rust | 8/10 | 14h ago |
|
|
2.2k | — | Rust | 8/10 | 2w ago |
reqwest is built on top of hyper and targets end users wanting a convenient HTTP client. They are complementary, not competing — reqwest wraps hyper's complexity.
axum is a web framework built on hyper. Again complementary: axum handles routing and middleware while delegating HTTP to hyper.
actix-web is a full HTTP server framework with its own HTTP implementation. Unlike hyper, it is not intended as a building block. It competes at the application layer, not the infrastructure layer.
h2 is a lower-level HTTP/2 implementation that hyper itself uses internally. hyper provides a unified HTTP/1+HTTP/2 API on top of it.
ureq is a synchronous, minimal HTTP client for Rust. It targets simplicity over performance and does not depend on hyper. Suited for scripts or blocking contexts where async is unwanted.