Http Backend integrations

Http4s provides a frontend interface compatible with cats-effect, but it supports many different backend implementations

Backend Jdk Support Http4s Version(s) 100% Nonblocking Http Client Http Server Websocket Client Websocket Server Proxy support (Client)
Blaze 8+ 0.15+ :x: Blocking http4s-blaze-client http4s-blaze-server :x: :x: :x:
Async Http Client 8+ 0.18+ :white_check_mark: Nonblocking http4s-async-http-client :x: :x: :x: :white_check_mark:
Ember 8+ 0.21+ :white_check_mark: Nonblocking http4s-ember-client http4s-ember-server ? ? :x:
Jdk11 Http Client 11+ 0.21+ :white_check_mark: Nonblocking http4s-jdk-http-client :x: :white_check_mark: :x: :white_check_mark:
Jetty 8+ All (0.2+) ? :x: http4s-jetty :white_check_mark:
OkHttp 8+ 0.18+ :x: Blocking http4s-okhttp-client :x: :x: :x: :white_check_mark:

Entity integrations

Http4s has multiple smaller modules for Entity encoding and Decoding support of common types.

  • Circe: http4s-circe. See the [json] docs for more.
  • Scalatags: http4s-scalatags
  • Scala-Xml: http4s-scala-xml