Open and answer this issue on GitHub.
libraries, note · opened 2026-09-30 · updated 2026-10-06 · 0 comments
Owner’s order: last of the five, and its minimal form went first. Record: ADR-038 §4.5.
Built: the runtime before main, files on io_uring, sockets signalling readiness (D3-D5); a socket in std (ADR-198, 0.0.164); the socket layer (ADR-199, 0.0.165); a minimal HTTP/1.1 server with http::listen and its caps (ADR-194 D5, 0.0.166; examples/hello-http is driven over a real socket by tests/project.rs); its parser written in Nikaia as a grammar (0.0.248, nikaia-std/src/tools/http1.nika). nikaia serve is cut (ADR-200 D1).
Open (sub-issues): rustls (D2), HTTP/2, the bodies of ADR-058 and ADR-018 D2, and many connections at once (the server handles one at a time today). Also route hashing, which has no target until a server carries routes.
One piece was answered without the server: a name the request chose reaching the filesystem is ADR-108: the root is an argument of the call (http::File(path, root)), built for fs at 0.0.178.
Measured before it is built: benches/sendfile/ and docs/history/zero-copy-send.md price the five ways a file reaches a socket; mmap per request is 2.5x worse than plainly reading at 4 KiB, the trap http::File would otherwise walk into.