I can only compare http-kit and clj-http.
CLJ client:
- simple API
- HTTP client only
- shell for Apache HttpComponents
HTTP Kit:
- for async
- HTTP client and server more powerful
- client API modeled after clj-http but adds more abstractions, so the cognitive load is higher
If you care about dependencies, an http-kit might be a better choice because it is a standalone library without any other dependencies than clojure.core. Because of this, it produces smaller uberbariums. For an example HTTP GET project:
clj-http: 1.2M clj-http-test-0.1.0-SNAPSHOT.jar 6.7M clj-http-test-0.1.0-SNAPSHOT-standalone.jar http-kit: 65K http-kit-test-0.1.0-SNAPSHOT.jar 3.8M http-kit-test-0.1.0-SNAPSHOT-standalone.jar
Alternatively, you can choose clj-http if you prefer to trust Apache's testing of HttpComponents and it is potentially better to support the larger Java community.
Grzegorz luczywo
source share