Skip to content

mbarbin/pplumbing

Repository files navigation

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.

Links to plumbed projects

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.