Something went wrong. Try again.
A multicall userspace in OCaml
Something went wrong. Try again.
OCaml 98%
<1%
JavaScript <1%
Shell <1%
C <1%
Standard ML <1%
Dune <1%
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