Skip to main content

Module webdav

Module webdav 

Source
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§

WebDavServer
WebDAV server whose entire filesystem is supplied by the LLM

Constants§

MAX_REQUEST_BODY
Largest request body this server will read, in bytes.