Utility libraries to use with [pp]
  • OCaml 93.3%
  • Text 3.6%
  • Dune 1.9%
  • Shell 1%
  • Makefile 0.2%
Find a file
2026-09-08 10:04:01 +02:00
.github Upgrade OCaml and dune in CI 2026-08-12 16:27:47 +02:00
.vscode Add spell entries 2026-03-31 10:28:49 +02:00
doc/static/img Added project imgs 2025-03-10 11:53:05 +01:00
src Getenv a bit more lazy and focus on disabling condition 2026-04-01 09:21:28 +02:00
test Fmt 2026-04-01 09:21:03 +02:00
third-party-license/ocaml/dune Add dune license in third-party-license in addition to NOTICE 2026-03-31 12:07:48 +02:00
.gitattributes Init from template 2024-11-09 15:23:53 +01:00
.gitignore Enable instrumentation 2025-03-10 11:41:56 +01:00
.headache.config Configure headers with headache 2025-05-12 10:08:31 +02:00
.ocamlformat Upgrade ocamlformat to 0.29.0 2026-03-24 09:34:32 +01:00
CHANGES.md Fix some typos 2026-05-18 16:47:12 +02:00
cmdlang-climate-err-runner.opam Improve opam descriptions 2025-09-21 10:08:36 +02:00
cmdlang-climate-err-runner.opam.template Improve opam descriptions 2025-09-21 10:08:36 +02:00
cmdlang-cmdliner-err-runner.opam Improve opam descriptions 2025-09-21 10:08:36 +02:00
cmdlang-cmdliner-err-runner.opam.template Improve opam descriptions 2025-09-21 10:08:36 +02:00
CODE_OF_CONDUCT.md Adopt OCaml Code of Conduct 2024-11-10 18:16:40 +01:00
CODEOWNERS Initiate code owners file for GH 2026-02-01 16:01:21 +01:00
COPYING.HEADER Bump license year 2026-03-31 17:02:57 +02:00
dune Init from template 2024-11-09 15:23:53 +01:00
dune-project Relax lower bound 2026-04-02 09:43:21 +02:00
dune-workspace.4.14 Upgrade OCaml to latest available versions 2026-09-08 10:04:01 +02:00
dune-workspace.5.2 Upgrade CIs 2026-04-12 14:13:26 +02:00
dune-workspace.5.3 Upgrade CIs 2026-04-12 14:13:26 +02:00
dune-workspace.5.4 Upgrade CIs 2026-04-12 14:13:26 +02:00
dune-workspace.5.5 Upgrade OCaml to latest available versions 2026-09-08 10:04:01 +02:00
dunolint Enable dunolint workflow 2025-12-12 14:03:27 +01:00
headache.sh Remove left-over unused var (shellcheck) 2026-03-17 11:48:34 +01:00
LICENSE Bump license year 2026-03-31 17:02:57 +02:00
Makefile Init from template 2024-11-09 15:23:53 +01:00
NOTICE.md Fix typo in project name 2025-03-09 21:36:56 +01:00
pplumbing-dev.opam Do not build pplumbing package in CI 2026-03-31 10:52:43 +02:00
pplumbing-err.opam Add conflicts for older meta-package 2026-04-02 09:44:25 +02:00
pplumbing-err.opam.template Add conflicts for older meta-package 2026-04-02 09:44:25 +02:00
pplumbing-log-cli.opam Improve opam descriptions 2025-09-21 10:08:36 +02:00
pplumbing-log-cli.opam.template Improve opam descriptions 2025-09-21 10:08:36 +02:00
pplumbing-log.opam Improve opam descriptions 2025-09-21 10:08:36 +02:00
pplumbing-log.opam.template Improve opam descriptions 2025-09-21 10:08:36 +02:00
pplumbing-pp-tty.opam Relax lower bound 2026-04-02 09:43:21 +02:00
pplumbing-pp-tty.opam.template Improve opam descriptions 2025-09-21 10:08:36 +02:00
pplumbing-tests.opam Add test dependency 2026-03-31 16:45:45 +02:00
pplumbing-tests.opam.template Fix typo in project name 2025-03-09 21:36:56 +01:00
pplumbing.opam Edit description to document pplumbing meta-package deprecation 2026-03-31 12:57:05 +02:00
pplumbing.opam.template Edit description to document pplumbing meta-package deprecation 2026-03-31 12:57:05 +02:00
README.md Add badge for ocaml-ci 2026-02-01 16:01:21 +01:00

pplumbing

Logo

CI Status Coverage Status OCaml-CI Build 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. These libraries are meant to combine nicely into a small ecosystem of useful helpers to build CLIs in OCaml.

  • 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_err_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.

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

Experimental Status

🚧 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.