diff options
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 29 |
1 files changed, 29 insertions, 0 deletions
@@ -77,5 +77,34 @@ answer Tversion with `negotiate()`. Answer other requests with `reply()`. The backend implements its filesystem and fid lifecycle; cloud9 checks reply types, tags, counts, negotiated frame sizes, and flush completion. +## Programs + +Programs built on cloud9 live in sibling directories of `src/`, each with its +own sources, tests, README and a `build.zig` fragment that the root +`build.zig` imports and enables with a toggle (`zig build --help` lists the +steps). New related programs follow the same layout. + +* [`introspect/`](introspect/README.md) — a 9P debug/introspection server as + a library (module `introspect`, exported next to `cloud9`; freestanding + core, Linux debug layer) and its demo binary `introspect`. + `-Dintrospect=[bool]`; steps `introspect`, `introspect-test`, + `introspect-check-freestanding`, `introspect-debug-test`, + `introspect-debug-itest`, `introspect-adv`. +* [`9player/`](9player/README.md) — mount a 9P tree into a fresh user+mount + namespace via FUSE and run a program in it, without root (Linux, no libc). + `-D9player=[bool]`; steps `9player`, `9player-test`, `9player-itest`, + `9player-adv`. + +Both toggles default to on for Linux targets and off elsewhere; enabled +programs are installed by the plain `zig build`, and `programs-test` / +`programs-itest` run every enabled program's unit and integration steps. A +dependent package gets both modules from the one dependency: + +```zig +const cloud9_dep = b.dependency("cloud9", .{ .target = target, .optimize = optimize }); +app.root_module.addImport("cloud9", cloud9_dep.module("cloud9")); +app.root_module.addImport("introspect", cloud9_dep.module("introspect")); +``` + See [design and ownership contracts](docs/design.md), [specification references](docs/spec.md), and [validation](docs/validation.md). |
