diff options
| author | Gabriel Schneider <[email protected]> | 2026-09-20 02:33:02 -0300 |
|---|---|---|
| committer | Gabriel Schneider <[email protected]> | 2026-09-20 02:33:02 -0300 |
| commit | ba7ec40782ba7020d82a56896a5eb1b52578d6aa (patch) | |
| tree | b6a5222d124255ae1e5d568c6ffbfe2e2050ae63 /README.md | |
| parent | 66f2e492c348677ab3050f5e378b9eb4c04c98ce (diff) | |
| download | cloud9-ba7ec40782ba7020d82a56896a5eb1b52578d6aa.tar.gz cloud9-ba7ec40782ba7020d82a56896a5eb1b52578d6aa.zip | |
Add cloud9.serve: an std.Io runner around the file-server engine
Runner(Backend, Options, Limits) listens on Unix or TCP, runs a reader and a
serve task per connection in one Io.Group, pushes frames into an fs.Server,
and lets the backend answer now or later from any task or thread (reply,
flush, wake); Tflush, greet timeout, connection limit, close and stop with
cancellation are covered by tests over real sockets. The engine and the
backend contract stay Io-free, so the push/step mode for freestanding
targets is unchanged. Documented as the two ways to drive the engine.
Co-Authored-By: Claude Fable 5.1 <[email protected]>
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 7 |
1 files changed, 7 insertions, 0 deletions
@@ -85,6 +85,13 @@ at once or later; a read or write may park with `Status.again` and is retried. Table sizes are comptime `fs.Options`; nothing allocates. See [the engine's contract](docs/design.md#file-server-engine). +On a hosted target, `serve.Runner(Backend, options, limits)` runs that engine +on `std.Io`: `listen()` on Unix or TCP addresses, a bounded connection table, +two tasks per connection, a handler the backend answers through `Conn.reply()` +now or later, `Conn.wake()` to retry parked reads when the backend has news, +and `stop()` to close and join. Freestanding targets keep the push/step loop. +See [the Io runner](docs/design.md#io-runner). + ## Programs Related programs live in `cloud9/<name>/`, one directory per program beside |
