// the find
koush/AndroidAsync
Asynchronous socket, http(s) (client+server) and websocket library for android. Based on nio, not threads.
AndroidAsync is a NIO-based networking library for Android that handles raw sockets, HTTP client/server, and WebSockets on a single thread with a callback-driven model. It predates OkHttp's dominance and was the foundation for Ion, the author's higher-level HTTP client. Useful today mainly if you're maintaining something already built on it, or need an embedded HTTP server on-device.
Single-threaded NIO design avoids thread pool overhead and makes concurrency reasoning straightforward — all callbacks fire on one thread so you don't need synchronization on your own state. The middleware pipeline for the HTTP client is well-designed: plugging in caching, SSL, or custom interceptors is clean. HTTP server support is genuinely useful for local device-to-device communication scenarios where spinning up a full server framework would be overkill. Test coverage is substantial for a library of this age, with dedicated test files for cache, SSL, WebSocket, multipart, redirects, and proxy.
Last meaningful commit was 2022; the Android networking landscape has moved to OkHttp + Retrofit (or Ktor for Kotlin) and there's no indication this will keep pace with TLS changes or new Android API requirements. The callback-first API is painful in 2026 — no coroutine support, no Flow, and the Kotlin module in the repo is a thin wrapper with essentially no tests. No HTTP/2 support at all, which matters if you're hitting any modern API. The pre-built singleton pattern (`AsyncHttpClient.getDefaultInstance()`) discourages proper DI and makes testing harder than it should be.