Ein experimenteller Webserver fordert die etablierten heraus: zeroserve liest jetzt Caddyfiles und liefert dabei rund den dreifachen Durchsatz von Caddy. Möglich macht das ein ungewöhnlicher Trick mit eBPF.

drweb.de als bevorzugte Quelle auf Google hinzufügenQualitätsgeprüfte Inhalte direkt in Google News & DiscoverJetzt hinzufügen

Der HTTPS-Server zeroserve übersetzt ein Caddyfile zur Laufzeit in eBPF und weiter in nativen Maschinencode für x86_64 oder ARM64. Ausgeführt wird das Ganze in einer io_uring-Ereignisschleife.

Das Wichtigste in Kürze

  • zeroserve bietet einen Caddy-kompatiblen Modus und liest bestehende Caddyfiles direkt ein.
  • Im Benchmark erreicht zeroserve rund 38.900 Anfragen pro Sekunde, Caddy rund 12.500.
  • Der Server kompiliert die Konfiguration zu nativem Maschinencode und läuft über io_uring.

Was macht zeroserve anders?

Analoge Stoppuhr mit orangem Anhänger, auf dem „3-fach WIRKUNG“ steht, auf weißem Grund
Zeroserve kompiliert Caddyfile-Konfigurationen zu eBPF und weiter zu nativem Maschinencode für x86_64 oder ARM64, der in einer io_uring-Schleife mit minimalem Overhead ausgeführt wird

Statt eine Konfiguration nur einzulesen, übersetzt zeroserve sie in nativen Maschinencode. Das Caddyfile wird erst zu eBPF, dann per JIT zu x86_64 oder ARM64. Diese kompilierte Form läuft anschließend in einer io_uring-Schleife mit wenig Overhead.

Der Ansatz bleibt dabei erweiterbar. Da eBPF turing-vollständig ist, lässt sich aus dem Caddyfile heraus eigener Code aufrufen, etwa eine Signatur für S3-kompatible Buckets per AWS SigV4. Ein Plugin dafür liegt dem Projekt bereits bei.

Was bringen die Zahlen?

Eine orange-metallische Stoppuhr mit weißem Zifferblatt und drei Hilfszifferblättern vor weißem Hintergrund
Zeroserve als HTTPS-Reverse-Proxy: 3x höherer Durchsatz als Caddy, 70% niedrigere Latenz (p99), 31 MB vs. 67 MB RAM

Im Test als HTTPS-Reverse-Proxy auf zwei Threads liefert zeroserve rund dreifachen Durchsatz gegenüber Caddy, bei etwa 70 Prozent niedrigerer Latenz im 99. Perzentil. Der Speicherbedarf fällt mit knapp 31 Megabyte auf weniger als die Hälfte von Caddys gut 67 Megabyte.

Gegen nginx sieht die Sache enger aus. Beide liegen beim Durchsatz dicht beieinander, zeroserve hält bei Latenz und Speicher knapp mit. Der eigentliche Gewinn liegt also im Vergleich zur komfortablen, aber langsameren Caddy-Welt.

Ein Server, der die Konfiguration in Maschinencode gießt, klingt nach Overkill, bis die Latenzkurve im Lasttest abflacht. Für Teams mit bestehendem Caddyfile ist der Umstieg erstaunlich risikoarm.

— Markus Seyfferth, Chefredakteur Dr. Web

Für wen lohnt der Umstieg?

Grüne Ampel mit Pfeilen und
Zeroserve ermöglicht Reverse-Proxy-Migration ohne Konfigurationsänderung, bleibt aber in früher Entwicklungsphase

Interessant ist zeroserve vor allem für laststarke Reverse-Proxies, deren Caddyfile schon steht. Der Wechsel kostet wenig, weil die Konfiguration unverändert bleibt und sich die Binärdatei mit einem Befehl laden lässt.

Eine Einschränkung bleibt die Reife des Projekts. eBPF im Userspace ist anspruchsvoll, und die Versionsnummer 0.2.11 signalisiert frühen Stand. Vorsichtige Teams testen parallel und behalten die gewohnte Umgebung; Grundlagen zur Auswahl liefert unser WordPress Hosting Vergleich. Die Messwerte und das Setup dokumentiert der zeroserve-Blog.

Mehr Newshunger?

Zange greift Drähte, daran rote Schleife mit Schild, auf grauem Grund
Moderne CSS-Entwicklung, Python-Wheels auf PyPI und die Bedeutung von UI-Frames für Vertrauen
4,5 16 Bewertungen

Wie hat Ihnen dieser Artikel gefallen?