[Haskell-cafe] Default http2 library to use for client side?

Ruben Astudillo ruben.astud at gmail.com
Mon Apr 4 02:45:35 UTC 2022

Hello Cafe

I have been looking at hackage on what is the status for http2 **client**
libraries. I haven't be able to grasp what is the default or recommended
solution on this space. So far I have gotten the following impressions:

  1. The usual candidates such as req / wreq libraries don't seem to support
  it. This is caused by they being based on `http-client`.

  2. There is an http2-client [1] library that fits the bill. It uses Kazu's
  http2 [2] underneath, but it is upper bounded to major version 2 of that
  library. Kazu's library is now at major version 3 and it cannot be made to
  use the updated version easily.

  3. Kazu's http2 library on major version 3 has a module called
  Network.HTTP2.Client which is even more low-level than what the previous
  option provided but it seems recently developed. It has a code sample.

  4. Haskellers are not that interested on client side http2. I am no
  expert on this protocol, but it seems that there is some compatibility on
  it where you can make an http1.1 call and the server will handle it
  transparently (don't quote me on this). But Haskellers certainly were
  (are?) excited for http2 server support on warp which landed around

I have concluded that using `http2` [2] with the client module as my best
bet. Is this analysis correct? or should I be looking a other packages that
I haven't considered?

Thanks for you time reading this email.

[1]: <https://hackage.haskell.org/package/http2-client>
[2]: <https://hackage.haskell.org/package/http2>

Rubén. (pgp: 1E88 3AC4 89EB FA22)

More information about the Haskell-Cafe mailing list