A high-performance, asynchronous HTTP and WebSocket client library for Java built on Netty.
AsyncHttpClient is a high-performance, asynchronous HTTP and WebSocket client library for Java. It provides a non-blocking API built on top of Netty, supporting HTTP/1.1, HTTP/2, and WebSocket protocols to handle high-concurrency network requests efficiently.
Java developers building scalable backend services, microservices, or applications that require efficient, non-blocking HTTP communication, such as API clients, data pipelines, or real-time systems using WebSockets.
Developers choose AsyncHttpClient for its robust performance, modern protocol support (HTTP/2, WebSocket), and flexible asynchronous API, which outperforms traditional blocking clients in high-concurrency scenarios while offering advanced features like authentication, proxy support, and native transports.
Asynchronous Http and WebSocket Client library for Java
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Enabled by default, HTTP/2 with multiplexing and full WebSocket implementation provide efficient, real-time communication for modern applications.
Offers multiple async patterns including CompletableFuture and custom AsyncHandler, allowing fine-grained control over non-blocking request handling.
Supports complex authentication like NTLM and Kerberos, resumable downloads, and optional native transports for performance-critical environments.
Built on Netty with connection pooling, it's optimized for handling thousands of concurrent requests with low latency.
Setting up optional features like native transports or Brotli compression requires additional dependencies and manual tweaking, as noted in the README.
Developers must understand Netty's async model and avoid pitfalls like blocking in I/O threads, which can be challenging for those new to non-blocking I/O.
Compared to higher-level clients, even basic requests require more boilerplate code, making it less ideal for straightforward HTTP tasks.