From ba7ec40782ba7020d82a56896a5eb1b52578d6aa Mon Sep 17 00:00:00 2001 From: Gabriel Schneider Date: Sun, 20 Sep 2026 02:33:02 -0300 Subject: 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 --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'README.md') diff --git a/README.md b/README.md index 01e35a5..04c68fa 100644 --- a/README.md +++ b/README.md @@ -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//`, one directory per program beside -- cgit v1.3