summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md39
1 files changed, 22 insertions, 17 deletions
diff --git a/README.md b/README.md
index d1e52f9..79d044f 100644
--- a/README.md
+++ b/README.md
@@ -79,31 +79,36 @@ tags, counts, negotiated frame sizes, and flush completion.
## Programs
-Programs built on cloud9 live in sibling directories of `src/`, each with its
+Related programs live in `cloud9/<name>/`, one directory per program beside
+`src/`, and carry `9`-prefixed names (`9web`, `9proc`, `9ns`). Each has 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.
+`build.zig` imports and enables with a `-D<name>` 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
+* [`web/`](docs/http.md) — the HTTP/WebSocket gateway `9web` and its
+ WebAssembly browser client (`web/main.zig`, `web/client.zig`, assets under
+ `web/static/`). Always built; steps `serve`, `web`, `http-test`, `e2e`.
+* [`9proc/`](9proc/README.md) — a 9P debug/introspection server as
+ a library (module `9proc`, exported next to `cloud9`; freestanding
+ core, Linux debug layer) and its demo binary `9proc-demo`.
+ `-D9proc=[bool]`; steps `9proc`, `9proc-test`,
+ `9proc-check-freestanding`, `9proc-debug-test`,
+ `9proc-debug-itest`, `9proc-adv`.
+* [`9ns/`](9ns/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`.
+ `-D9ns=[bool]`; steps `9ns`, `9ns-test`, `9ns-itest`,
+ `9ns-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:
+The `9proc` and `9ns` toggles default to on for Linux targets and off
+elsewhere; enabled programs are installed by the plain `zig build` next to
+`9web` and `cloud9-probe`, 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"));
+app.root_module.addImport("9proc", cloud9_dep.module("9proc"));
```
See [design and ownership contracts](docs/design.md),