summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md8
1 files changed, 8 insertions, 0 deletions
diff --git a/README.md b/README.md
index 79d044f..4c4d24c 100644
--- a/README.md
+++ b/README.md
@@ -77,6 +77,14 @@ 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.
+`fs.Server(Backend, options)` is a file server on top of that session: it keeps
+the fids, permissions, directory cursors, flush and hangup, and turns each 9P
+request into backend operations (`fs.Req`: lookup, getattr, setattr, open,
+read, write, release, readdir) that the backend answers by tag with `fs.Reply`,
+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).
+
## Programs
Related programs live in `cloud9/<name>/`, one directory per program beside