Gigahorse 

Gigahorse は、Scala のための HTTP クライアントで、内部に Square OkHttpAsync Http ClientAkka HTTP を使うことができる。

セットアップ 

Square OkHttp を使う場合:

libraryDependencies += "com.eed3si9n" %% "gigahorse-okhttp" % "0.5.0"

Async HTTP Client を使う場合:

libraryDependencies += "com.eed3si9n" %% "gigahorse-asynchttpclient" % "0.5.0"

Akka HTTP は現段階では実験的サポート:

libraryDependencies += "com.eed3si9n" %% "gigahorse-akka-http" % "0.5.0"

ライブラリ依存性 

Gigahorse-OkHttp は、Scala と Square OkHttp に依存する。 他に Lightbend SSL Config、そして Lightbend Config にも依存している。

Gigahorse-AsyncHttpClient は、Scala、AHC 2.0 (これは Netty 4 に依存している)、

Gigahorse-Akka-HTTP は現状では実験段階で、実装されていない機能もある。

謝辞 

ライセンス 

Apache v2

クイックスタート 

Gigahorse を使った簡単な GET 呼び出しの例をみてみよう:

scala> import gigahorse._, support.okhttp.Gigahorse
import gigahorse._
import support.okhttp.Gigahorse
scala> import scala.concurrent._, duration._
import scala.concurrent._
import duration._
scala> val http = Gigahorse.http(Gigahorse.config)
http: gigahorse.HttpClient = gigahorse.support.okhttp.OkhClient@d94b708
scala> val r = Gigahorse.url("https://api.duckduckgo.com").get.
         addQueryString(
           "q" -> "1 + 1"
         )
r: gigahorse.Request = Request(https://api.duckduckgo.com, GET, EmptyBody(), Map(), Map(q -> List(1 + 1)), None, None, None, None, None, None)
scala> val f = http.run(r, Gigahorse.asString andThen {_.take(60)})
f: scala.concurrent.Future[String] = Future(<not completed>)
scala> Await.result(f, 120.seconds)
res0: String = <!DOCTYPE html><html lang="en_US" class="no-js has-zcm   "><
scala> http.close()

Gigahorse