package pplumbing

  1. Overview
  2. Docs
Utility libraries to use with [pp]

Install

Dune Dependency

Authors

Maintainers

Sources

pplumbing-0.0.14.tbz
sha256=ed7eaba180378a59719e9af63ccdc89dde8e0a20f2cba420abb0080b0bc4a868
sha512=f168c37c1acd38c92e5b6d59321da4021195b6ddc49dde82de70e9282b55042621bea1b84a677d57f83604c06d6ee9c790b683fd589cd2097ab8f00c293f56af

Description

[pplumbing] defines a set of utility libraries to use with pp. It is compatible with logs and inspired by design choices used by dune for user messages:

  • [Pp_tty] extends pp to build colored documents in the user's terminal using ansi escape codes.

  • [Err] is an abstraction to report located errors and warnings to the user.

  • [Log] is an interface to logs using [Pp_tty] rather than [Format].

  • [Log_cli] contains functions to work with [Err] on the side of end programs (such as a command line tool). It defines command line helpers to configure the [Err] library, while taking care of setting the logs and fmt style rendering.

  • [Cmdlang_cmdliner_runner] is a library for running command line programs specified with cmdlang with cmdliner as a backend and making opinionated choices, assuming your dependencies are using [Err].

These libraries are meant to combine nicely into a small ecosystem of useful helpers to build CLIs in OCaml.

Tags

cli cmdlang logs pp

Published: 27 May 2025

README

pplumbing

Logo

CI Status Coverage Status

pplumbing defines a set of utility libraries to use with pp. It is compatible with logs and inspired by design choices used by Dune for user messages:

  • Pp_tty extends pp to build colored documents in the user's terminal using ANSI escape codes.
  • Err is an abstraction to report located errors and warnings to the user.
  • Log is an interface to logs using Pp_tty rather than Format.
  • Log_cli contains functions to work with Err on the side of end programs (such as a command line tools). It defines command line helpers to configure the Err library, while taking care of setting the logs and fmt style rendering.
  • Cmdlang_cmdliner_runner is a library for running command line programs specified with cmdlang with cmdliner as a backend and making opinionated choices, assuming your dependencies are using Err.

These libraries are meant to combine nicely into a small ecosystem of useful helpers to build CLIs in OCaml.

Experimental Status

:construction: pplumbing is currently under construction. During this initial 0.0.X experimental phase, the interfaces and behavior are subject to breaking changes.

Acknowledgements

  • We are thankful to the authors and contributors of the projects we use as dependencies.
  • We would like to thank the Dune developers for the user-facing error handling of Dune (Stdune.User_message), on which we based the error handling scheme used in Err. By adopting a similar approach, we aim to provide a consistent and unified user experience for OCaml users across different tools and libraries.

Dependencies (14)

  1. stdune >= "3.17"
  2. sexplib0 >= "v0.16"
  3. pp >= "2.0.0"
  4. parsexp >= "v0.16"
  5. ordering >= "3.17"
  6. logs >= "0.7.0"
  7. loc >= "0.2.2"
  8. fmt >= "0.9.0"
  9. dyn >= "3.17"
  10. cmdliner >= "1.3.0"
  11. cmdlang-to-cmdliner >= "0.0.9"
  12. cmdlang >= "0.0.9"
  13. ocaml >= "4.14"
  14. dune >= "3.17"

Dev Dependencies (1)

  1. odoc with-doc

Conflicts

None

OCaml

Innovation. Community. Security.