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
extendspp
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 tologs
usingPp_tty
rather thanFormat
. -
Log_cli
contains functions to work withErr
on the side of end programs (such as a command line tools). It defines command line helpers to configure theErr
library, while taking care of setting thelogs
andfmt
style rendering. -
Cmdlang_cmdliner_runner
is a library for running command line programs specified withcmdlang
withcmdliner
as a backend and making opinionated choices, assuming your dependencies are usingErr
.
These libraries are meant to combine nicely into a small ecosystem of useful helpers to build CLIs in OCaml.
-
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 inErr
. By adopting a similar approach, we aim to provide a consistent and unified user experience for OCaml users across different tools and libraries.