The library interface tries to stay somewhat close to dream-encoding.
Usage example:
let get_with_compression_support ?headers uri =
let headers = Clz_cohttp.update_headers headers in
let open Lwt.Syntax in
let* resp, body = Cohttp_lwt_unix.Client.get ~headers uri in
let status = Cohttp_lwt.Response.status resp in
let* () = if status <> `OK then Cohttp_lwt.Body.drain_body body else Lwt.return_unit in
match status with
| `OK ->
let body = Clz_cohttp.decompress (resp, body) in
Lwt.return body
| _ -> Lwt.fail_with "Not Ok"It provides three libraries:
clz: functions to inflate and deflate strings, in case one does not need cohttpclz.cfg: configuration for gzip deflate, separate only because it links unixclz.cohttp: provides the module {!Clz_cohttp}, which contains helpers to add the necessary accept headers and to decompress the response bodies.The documentation can be found on www.mseri.me/ocaml-clz/.