Asynchronous, non-blocking HTTP & WebSocket client for the JVM
6.4k
Stars
1.6k
Forks
117
Open issues
30
Contributors
AI Analysis
AsyncHttpClient is a high-performance asynchronous HTTP client for Java built on Netty, supporting HTTP/1.1, HTTP/2 with multiplexing, and WebSocket protocols. It serves developers building non-blocking, network-intensive JVM applications that require efficient connection pooling, native transports, and advanced features like NTLM/Kerberos authentication. Best suited for backend services, microservices, and infrastructure teams; not intended for simple synchronous HTTP use cases or applicatio...
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.
Netty-backed async HTTP/WebSocket client for Java, mature and actively maintained since 2011
AsyncHttpClient (AHC) is a non-blocking HTTP and WebSocket client for Java, built on top of Netty. It targets Java backend developers who need high-throughput outbound HTTP in server-side or standalone applications — particularly where connection pooling, HTTP/2 multiplexing, or WebSocket are required. With 6,300+ stars, 1,500+ forks, and an active Maven Central artifact, it has meaningful real-world usage in the JVM ecosystem, though evidence of large-scale production deployments is not comprehensively documented in public sources.
Created in March 2011 by Stephane Landelle as an early async HTTP client for Java. Over 15 years it evolved from HTTP/1.1-only to HTTP/2 and WebSocket support. The 3.x line targets Java 11+ and continues to receive active updates.
AHC grew during the 2012–2018 period when Java frameworks lacked good async HTTP clients. Growth has since plateaued — only 1 star gained in the last 7 days — reflecting a mature, stable project rather than an expanding one. The Java ecosystem has grown more crowded with alternatives (JDK 11 HttpClient, OkHttp, WebClient), which likely shifted new adoption away from AHC for greenfield projects.
Maven Central publication and 1,594 forks suggest genuine library usage in downstream projects. It was historically used as the HTTP backend in Play Framework and Gatling load testing tool, though the Gatling dependency was later replaced. Adoption is likely present in legacy and medium-scale Java services but large-scale production evidence is not comprehensively documented in public sources.
Appears to use Netty as the I/O layer with a fluent DSL on top. Likely event-loop-based with a thread pool abstraction. Based on README, it supports ListenableFuture and CompletableFuture, request/response filter chains, pluggable native transports (epoll, io_uring, kqueue), and a cookie store. HTTP/2 support appears to use ALPN over TLS for protocol negotiation.
Not documented in README. CI badge is present (GitHub Actions 'builds.yml'), indicating automated build and likely test execution, but coverage metrics are not disclosed.
Last push was June 23, 2026 — 3 days before the evaluation date — indicating very active maintenance. The project is on version 3.0.11 as of the README, suggesting a stable release cadence. The presence of Brotli, Zstd, and io_uring support suggests the project is tracking modern platform capabilities.
ADOPT IF: you need a production-tested, framework-agnostic async HTTP/WebSocket client for Java with HTTP/2, NTLM/Kerberos auth, or native transport support, and you are not already committed to a reactive framework. AVOID IF: you are building a Spring-based service (use WebClient instead), targeting Android (use OkHttp), or prefer zero-dependency solutions (use JDK HttpClient). MONITOR IF: you are evaluating whether AHC's HTTP/3 (QUIC) support will emerge, or whether the Netty dependency becomes a version-management burden in your dependency tree.
Independent dimensions
Mainstream potential
3/10
Technical importance
7/10
Adoption evidence
5/10
- Heavy transitive dependency on Netty may cause version conflicts in large dependency graphs.
- New Java projects increasingly default to JDK HttpClient or WebClient, which may reduce community contributions and new adopter inflow over time.
- No evidence of a commercial backer; long-term maintenance depends on volunteer contributors.
- HTTP/3 (QUIC) support is not mentioned in the README, which may become a competitive gap as ecosystem adoption grows.
- Star growth has effectively stalled (1 star/week), which may reflect market saturation rather than project decline, but makes it harder to attract new contributors.
Likely to remain actively maintained as a stable, niche-but-useful library for Java services that need fine-grained async HTTP control outside the Spring ecosystem. Unlikely to recapture broad mindshare given JDK and Spring competition.
Newsletter
Get analyses like this every Monday
Free weekly digest of the most interesting open-source discoveries.
Languages
Information
- Language
- Java
- License
- NOASSERTION
- Last updated
- 18h ago
- Created
- 187mo 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
No open issues — clean slate.
Similar repos
swift-server/async-http-client
AsyncHTTPClient is a production HTTP client library for Swift built on...
apache/httpcomponents-client
Apache HttpComponents Client is a mature Java library for building HTTP client...
amitshekhariitbhu/Fast-Android-Networking
Fast Android Networking Library is a comprehensive networking library for...
| Repository | Stars | Week Δ | Language | Score | Updated |
|---|---|---|---|---|---|
|
|
6.4k | +1 | Java | 8/10 | 18h ago |
|
|
1.1k | — | Swift | 8/10 | 1w ago |
|
|
1.5k | — | Java | 8/10 | 2d ago |
|
|
5.9k | — | Java | 7/10 | 5mo ago |
|
|
35k | — | Java | 9/10 | 9h ago |
|
|
16.5k | — | Python | 8/10 | 23h ago |
Built into Java 11+, zero dependencies, supports HTTP/2 and async. Increasingly the default choice for greenfield projects. AHC has an edge in WebSocket maturity, connection pool tuning, auth schemes (NTLM, Kerberos), and native transport options.
Dominant on Android and widely used on JVM. Simpler API, strong community. AHC offers more Netty-native throughput tuning and server-side use cases; OkHttp is generally preferred for client-facing tooling.
The de facto async HTTP client in Spring ecosystems, built on Project Reactor. If you're already in Spring, WebClient has ecosystem integration advantages. AHC is framework-agnostic and may suit non-Spring environments better.
Also supports async via NIO, but is older and more complex. AHC is generally regarded as having a cleaner async API. ApacheHC is often chosen for its enterprise support and compliance features.
AHC is essentially a high-level HTTP abstraction over Netty. Teams needing full protocol control use Netty directly; AHC trades some flexibility for significantly reduced boilerplate.