Aleph is an asynchronous I/O framework for Clojure built atop Netty, offering efficient, non-blocking network programming with support for HTTP, raw TCP/UDP, and streaming through Manifold streams. Aleph follows the Ring spec fully and can be a drop-in replacement for any existing Ring-compliant server. However, it also allows for the handler function to return a Manifold deferred to represent an eventual response. This feature may not play nicely with synchronous Ring middleware, which modifies the response, but this can be easily fixed by reimplementing the middleware using Manifold's let-flow operator. The aleph.http/wrap-ring-async-handler helper can be used to convert async 3-arity Ring handler to an Aleph-compliant one.
Features
- Asynchronous, non-blocking server/client support using Netty under the hood
- Provides HTTP, TCP, and UDP protocol implementations
- Data exposed as Manifold streams, easily convertible to java.io.InputStream, core.async channels, and Clojure sequences
- Lightweight, high-performance networking ideal for real-time services or servers
- Extensive examples repository, e.g., HTTP server/client usage
- Frequent downloads and active maintenance on Clojars, highlighting real-world use