asynchttpclient/async-http-client

Asynchronous, non-blocking HTTP & WebSocket client for the JVM

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 52 minutes ago
Added to GitGenius on September 10th, 2026
Created on March 7th, 2011
Open Issues & Pull Requests: 97 (+0)
GitHub issues: Enabled
Number of forks: 1,596
Total Stargazers: 6,395 (+0)
Total Subscribers: 345 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 21.0 hours
Mean response time: 138.9 days
90th percentile: 445.9 days
Tracked items: 64

How this project is maintained

Around half of the issues opened in the past year never receive a reply. Only 10% of issues opened in the past year have been closed. Three people close 78% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 10
New in 7 days: 1
Closed in 7 days: 0
Avg open age: 653 days
Stale 30+ days: 8
Stale 90+ days: 8

Recent activity

Opened in 7 days: 1
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 2

Top labels

  • Defect (3)
  • Being-Investigated (1)
  • Grizzly (1)

Detailed Description

AsyncHttpClient is an asynchronous, non-blocking HTTP and WebSocket client for the JVM built on top of Netty.

The tool addresses the need for high-performance HTTP communication in Java applications by providing non-blocking I/O through an asynchronous API. It supports HTTP/1.1, HTTP/2 with multiplexing enabled by default over TLS, and WebSocket protocols. Requests are executed through a fluent DSL and return either ListenableFuture or CompletableFuture for handling responses asynchronously. The tool handles connection pooling, keep-alive, automatic compression decompression in multiple formats, and cookie management according to RFC 6265.

Developers should adopt this tool when building JVM applications that require efficient concurrent HTTP communication without blocking threads. It suits projects making many simultaneous requests or maintaining long-lived connections. The tool requires Java 11 or later. For lower-latency I/O on Linux, optional native transports including Epoll, KQueue, and io_uring can be added as dependencies. The README emphasizes that AsyncHttpClient instances should be long-lived and shared rather than created per request, as repeated instantiation degrades performance through unnecessary thread pool and connection pool creation. Authentication options include Basic, Digest, NTLM, SPNEGO/Kerberos, and SCRAM-SHA-256. Proxy support covers HTTP, SOCKS4, and SOCKS5 with CONNECT tunneling.

The project maintains active development with regular commits addressing bug fixes and feature enhancements. Pull requests receive timely review and feedback from maintainers. The codebase shows consistent attention to performance optimization and protocol compliance, particularly around HTTP/2 multiplexing and connection handling. Issue discussions demonstrate engagement with user concerns and willingness to address edge cases in real-world usage scenarios.