Scala界隈でわりと有名(?)なdispatchというhttpクライアントライブラリがあります。
そして、現在通称dispatch-classicと、通称reboot(もしくは単にdispatchとも呼ぶ?)の2種類あります。
むかしはdispatch-classicだけでした。というか、rebootのほうがでたことにより、単にdispatchと呼ばれていたものが、dispatch-classicと呼ぶようになりました。
github上ではdispatch/dispatchが古いdispatch-classicのほうで、dispatch/rebootのほうが新しいほうです
https://github.com/dispatch/dispatch
https://github.com/dispatch/reboot
なにが違うかというと、classicのほうは "org.apache.httpcomponents" % "httpclient" に依存してますが
https://github.com/dispatch/dispatch/blob/0.8.9/project/build.scala#L49
rebootのほうは "com.ning" % "async-http-client" に依存してます
https://github.com/dispatch/reboot/blob/0.9.4/core/build.sbt
数日前も、twitter上でこんな会話してました
せっかくだからdispatchのrebootの方使ってみるか
apiは変わってないんかな
as.なんちゃら みたいになったのか
symbol使ってunapplyでばらすようなやつ、なくなってる?
慣れてるclassicの方使うか…
.@pomu0325 rebootはどのくらいAPI変わってるかどうかはよくわかってないですけど、中身の構造完全に変わってますね(依存ライブラリが変わって、Future返すようになってて徹底的に非同期になってる)非同期必要ないなら、classicのほうがとりあえずは使いやすいかも
2013-02-01 10:49:22 via web to @pomu0325
@xuwei_k APIもバリバリ変わってました… classicでも一応asyncあるしどうせGAEで使うからオレオレgae-asyncなdispatch使うのでclassicに戻しちゃった
2013-02-01 10:50:51 via Echofon to @xuwei_k
中身がかなり変わっているのに、package名が同じだったりして、混乱というか不都合があったので、dispatch-classicのほうがversion0.8.9から、パッケージ名少し変わりました。
また、classicのほうは、Scala2.10対応したものがでていますが
https://oss.sonatype.org/content/repositories/releases/net/databinder/dispatch-core_2.10/0.8.9/
rebootのほうが、このblog書いている2013-02-02現在、Scala2.10対応版はでてません。
なんででてないんだろう?と思って調べたら、色々話し合ってる途中のようです
追記: もう2.10用でてます