A multicall userspace in OCaml
README.md

ocamlbox #

Reimplementation of the BusyBox multi-call binary in pure OCaml:

  • as a library — Ocamlbox_cat.Cat.main env,
  • as a cmdliner subcommand, and
  • as a multi-call binary

All IO flows through Eio capabilities threaded into each applet, so every tool is hermetically testable with in-memory stdio and sandbox-scoped filesystem capabilities.

Build, test, install #

dune build
dune test                       # unit + CLI + conformance suites
dune install                    # installs the `ocamlbox` binary + libraries

The multi-call binary #

ocamlbox --list                 # list applet names
ocamlbox --help                 # usage + applet table
ocamlbox --version              # 0.1.0
ocamlbox --man                  # troff(1) man page on stdout
ocamlbox echo -n hi             # subcommand form
ocamlbox sort -rn < data        #   "

ocamlbox --install ~/bin        # hard-link every applet into ~/bin
ocamlbox --install -s ~/bin     # symlink instead (auto across filesystems)
~/bin/echo hello                # argv[0] dispatch

Project status & contributor docs #

Status, architecture, the plan, and the bug/coverage backlog live under compliance/ — start at compliance/README.md:

  • ROADMAP — phased plan & what to do next
  • CORRECTNESS — verified gaps vs GNU (the fix list)
  • COVERAGE — applet inventory & what to add
  • FUZZING — differential fuzzer design
  • LIMITATIONS — Eio capability gaps & caveats