12

私は Clojure で http ファイル ダウンローダを作成しようとしていますが、他の質問の 1 つで、専用の http クライアント ライブラリを使用する方が Clojure および Java 独自の API でコーディングするよりも優れていると誰かがコメントしました。いろいろ調べてみたのですが、それぞれの特徴やメリット・デメリットがわかりませんでした。したがって、それらがどのように異なり、どれが私のプロジェクトに適しているかを説明できる人がいれば、それは大歓迎です. :-D

もともと Java のライブラリと、対応する Clojure ラッパー:

Apache HttpClientとその Clojure ラッパーclj-http

Apache HttpAsyncClientで、Clojure ラッパーが見つかりませんでした。

Nettyと Clojure の「ラッパー」はAlephですね。

非同期 HTTP クライアントとその Clojure ラッパーhttp.async.client

最後になりましたが、Clojure ライブラリ:

http-キット

4

2 に答える 2

12

http-kit と clj-http しか比較できません。

clj-http:

  • シンプルな API
  • HTTP クライアントのみ
  • Apache HttpComponents のラッパー

http-キット:

  • 非同期用に設計された
  • より強力な HTTP クライアントとサーバー
  • クライアント API は clj-http をモデルにしていますが、より多くの抽象化を追加するため、認知負荷が高くなります

依存関係が気になる場合は、http-kit を選択することをお勧めします。これは、clojure.core 以外に依存関係がないスタンドアロン ライブラリであるためです。そのため、より小さな uberjar が生成されます。サンプル HTTP GET プロジェクトの場合:

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

一方、戦いでテスト済みの Apache HttpComponents を信頼し、より大きな Java コミュニティからのサポートが向上する可能性がある場合は、clj-http を選択できます。

于 2014-07-07T10:54:36.000 に答える