package clz

  1. Overview
  2. Docs
Compression support for cohttp-lwt client using decompress

Install

Dune Dependency

Authors

Maintainers

Sources

clz-0.1.0.tbz
sha256=98e87ae5b0283d866e5a888db59b5d63311c0c683faa0d3bea181cf28ac3c622
sha512=0fcf11ca574c387102ea642dd124236823eb3f751f93637059ee6ceddb431dda05177d78a467d78b8e7a9210797d97b34322fd941cd7a677d1ac65d1da5068a2

Description

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"

Published: 15 Dec 2021

README

Compression support for cohttp-lwt using decompress

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 cohttp

  • clz.cfg: configuration for gzip deflate, separate only because it links unix

  • clz.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/.

Why CLZ

The name was supposed to be temporary. Started as CUZ: Cohttp U gZip, but it really only supports cohttp-lwt, so it changed into CLS: Cohttp-Lwt-Zip, even if it supports both gzip and deflate. I use it in a lot of scripts now, more invasive changes would be way too time-consuming :P

Dependencies (7)

  1. ptime >= "0.8.0"
  2. decompress >= "1.4.0"
  3. lwt >= "5.3.0"
  4. cohttp-lwt >= "2.5.0"
  5. bigstringaf >= "0.2.0"
  6. ocaml >= "4.08"
  7. dune >= "2.0"

Dev Dependencies

None

Used by (1)

  1. doi2bib >= "0.5.2"

Conflicts (1)

  1. result < "1.5"