Skip to main content

Module qdp_http

Module qdp_http 

Source
Expand description

QDP-over-HTTP — serve the rich /.well-known/QDP profile over a local HTTP listener.

This is the transport that fronts the pure crate::qdp_server renderer: once a domain-agent is reachable on the WireGuard mesh (or any bound address), it can self-host its own front-door profile instead of relying on external hosting (Cloudflare Worker/R2, Solid POD). No hosting provider, no lock-in — the agent answers GET /.well-known/QDP from its own process.

The routing decision (route) is pure and testable without binding a socket: it maps (method, path, accept) to an HttpReply. Only serve_blocking touches the network, and it is a thin tiny_http accept loop that delegates every request to route.

Content negotiation itself is delegated to crate::qdp_server::render_profile (Turtle / JSON-LD / CBOR-LD per the Accept header), so this module never duplicates the serialization logic.

Structs§

HttpReply
A fully-resolved HTTP reply: status code, Content-Type, and the body bytes.

Functions§

route
Route one HTTP request against a FrontDoorRecordpure, no I/O.
serve_blocking
Serve the QDP profile for record on bind_addr (e.g. "[fd00::1]:80" on the mesh, or "127.0.0.1:8080" locally). Blocks the calling thread on the accept loop — the caller is expected to run this on a dedicated thread.