Documentation | Latest releases | Get support
http-kit is a minimalist and efficient Ring-compatible HTTP client+server for Clojure.
It uses an event-driven architecture to support highly concurrent a/synchronous web applications, and features a simple unified API for WebSocket and HTTP long-polling/streaming.
See here for earlier releases.
-
Ring compliant: http-kit is a drop-in replacement for the standard Ring Jetty adapter. You can use it with all your current libraries and middleware.
-
High performance: http-kit uses an event-driven architecture like nginx, and is fast. It comfortably handles tens of thousands of requests/sec on even low-end hardware.
-
High concurrency: http-kit is efficient. Its RAM usage is O(n), with only few kB used per connection. Tests have shown http-kit happily serving >600k concurrent connections.
-
Clean, simple, small: written from the ground-up to be lean, the entire http-kit client+server JAR is ~90kB with zero dependencies and ~3k lines of code.
-
Sync or async: synchronous is simple, asynchronous fast & flexible. With http-kit you get the best of both with a simple API that lets you mix & match to best fit your use case.
-
WebSockets and Comet: realtime web apps are a breeze with http-kit, with great out-the-box support for both WebSockets and efficient HTTP long-polling.
http-kit was created by @shenfeng, but is currently being maintained by its community.
A big thank-you to the current contributors for keeping the project going! Additional contributors very welcome: please ping me if you'd be interested in lending a hand.
- Full documentat 6B55 ion (getting started and more)
- Auto-generated API reference: Codox, clj-doc
Copyright © 2012-2023 Feng Shen and contributors.
Licensed under Apache 2.0.