// the find
losfair/zeroserve
Zero-config, fast `io_uring`-based HTTPS server.
zeroserve is a Linux-only static file server built around io_uring (via the monoio runtime), where sites are packed into tarballs and request logic runs as eBPF programs JIT-compiled in-process. It targets people who want Caddy-like flexibility without Caddy's memory footprint, or who need scriptable request handling without deploying a full application server. The eBPF scripting angle is the real differentiator — it's not just fast I/O, it's fast I/O with programmable logic at the request level.
The pointer cage implementation is genuinely well-engineered: branchless address masking plus guard pages means a buggy eBPF script can't corrupt server memory or escape its sandbox, and the Spectre-v1 note shows the author thought about transient execution attacks, not just spatial memory safety. The single-tarball site format is a real operational win — no temp file extraction, path-to-byte-range indexing at load, atomic hot reload via SIGHUP. The Caddy compatibility layer (parsing Caddyfile syntax and compiling it to eBPF scripts) means you can migrate an existing Caddy deployment without rewriting everything. The built-in tinycc backend so `.c` scripts compile without a host toolchain is a nice zero-dependency story.
Linux-only and io_uring-only means it won't run on kernels older than 5.1 (practically ~5.10+ for production-grade stability), which cuts out a lot of corporate and cloud environments that haven't caught up. The eBPF scripting API is C with a custom SDK header — writing middleware in C with manual bounds-checked string operations is a real step back from what you'd write in Go/Lua/JS; the Rust option is mentioned but not prominently documented. HTTP/2 has a test file but H3/QUIC is absent and the README doesn't mention it, which is a gap if you care about latency to mobile clients. With 9 forks and the project coming from a solo author, bus factor is effectively 1 and the surface area (io_uring runtime, custom JIT, BoringSSL bindings, ACME, ECH, tinycc fork) is large enough that maintenance gaps would show quickly.