Expand description
WebDAV server (RFC 4918) with an LLM-supplied virtual filesystem.
The server owns HTTP/1.1 framing (via hyper) and the DAV:multistatus XML; the model owns
everything a client can observe. There is no filesystem behind this protocol — not on
disk, not in memory. PROPFIND lists what the model says is there, GET returns what the
model says the file contains, and PUT/MKCOL/DELETE/COPY/MOVE succeed or fail
exactly as the model decides.
This replaced an implementation that handed every request to dav_server::memfs::MemFs — a
real read/write filesystem inside the process — and dropped the OllamaClient on startup,
so the server instruction was read by nobody. See src/server/webdav/CLAUDE.md for why
implementing dav_server::fs::DavFileSystem against the model was rejected in favour of
answering the verbs directly.
Three methods never reach the model, because they are handshakes with no content to decide:
OPTIONS (capability advertisement), LOCK and UNLOCK (a synthetic, never-enforced lock
token, so clients that refuse to write without one can proceed). Everything else raises
webdav_request.
Modules§
- actions
- WebDAV protocol actions.
Structs§
- WebDav
Server - WebDAV server whose entire filesystem is supplied by the LLM
Constants§
- MAX_
REQUEST_ BODY - Largest request body this server will read, in bytes.