Skip to content
Tech News
← Back to articles

Caddy compatibility for zeroserve: 3x throughput and 70% lower latency

read original get Caddy Web Server → more articles
Why This Matters

The integration of Caddy compatibility into zeroserve significantly enhances its performance, achieving up to three times the throughput and 70% lower latency compared to traditional servers like Nginx. This advancement demonstrates the potential for high-performance, customizable HTTPS servers in the industry, offering both speed and flexibility for developers and consumers alike.

Key Takeaways

zeroserve is a high-performance HTTPS server that runs eBPF scripts in userspace (intro). Now it's got a Caddy-compat mode - when provided a Caddyfile, zeroserve JIT-compiles it to eBPF and then to native x86_64/ARM64 machine code, and runs it in an io_uring event loop.

protocol server throughput p50 p99 peak RSS https zeroserve-clang 38,948 req/s 1.45ms 3.91ms 30.9 MiB https zeroserve-tcc 36,653 req/s 1.67ms 4.00ms 34.2 MiB https caddy 12,529 req/s 4.74ms 13.11ms 67.4 MiB https nginx 37,424 req/s 1.57ms 4.24ms 25.7 MiB

HTTPS reverse proxy, 2 threads, AMD Ryzen 7 3700X. Check CI for original run result.

Try it with your Caddyfile:

curl -fL -o zeroserve https://github.com/losfair/zeroserve/releases/download/v0.2.11/zeroserve-$(uname -m)-linux chmod +x zeroserve ./zeroserve --caddy /etc/caddy/Caddyfile curl http://127.0.0.1:8080

zeroserve runs turing-complete eBPF and you can call custom code from your Caddyfile. For example, to reverse-proxy a path to an S3-compatible bucket with AWS SigV4 auth, grab io.su3.aws-sigv4.c and then: