Ich versuche, einen http-Datei-Downloader in Clojure zu schreiben, und in eine meiner anderen Fragen , jemand hat bemerkt, dass die Verwendung einer dedizierten http-Client-Bibliothek besser ist als die Programmierung mit Clojures und Javas eigener API. Ich habe einige Nachforschungen angestellt und einige gefunden, aber ich konnte nicht herausfinden, welche Merkmale, Vor- und Nachteile jeder von beiden haben. Wenn jemand erklären kann, wie unterschiedlich sie sind und welche zu meinem Projekt passt, wäre das sehr zu begrüßen. :-D
Bibliotheken ursprünglich in Java und entsprechende Clojure-Wrapper:
Apache HttpClient und sein Clojure-Wrapper clj-http
Apache HttpAsyncClient und konnte keinen Clojure-Wrapper finden.
Netty und Clojure "Wrapper" ist Aleph , denke ich?
Async Http Client und sein Clojure Wrapper Ссылка
Last but not least, eine Clojure-Bibliothek:
Ich kann nur http-kit und clj-http vergleichen.
clj-http:
Ссылка
Wenn Sie sich um Abhängigkeiten kümmern, ist http-kit möglicherweise die bessere Wahl, da es sich um eine eigenständige Bibliothek mit anderen Abhängigkeiten als clojure.core handelt. Dadurch entstehen kleinere Überjars. Für ein Beispiel-HTTP-GET-Projekt:
%Vor%Auf der anderen Seite können Sie clj-http wählen, wenn Sie lieber den im Kampf getesteten Apache HttpComponents vertrauen und möglicherweise von einer größeren Java-Community besser unterstützt werden.