Bereits 2022 kündigte Cloudflare an, Nginx aufzugeben und auf Pingora umzusteigen, eine von Rust geschriebene Software. Heute wird Cloudflare das Pingora-Framework als Open Source veröffentlichen. Cloudflare gab heute bekannt, dass es Pingora als Open-Source-Lösung unter der Apache 2.0-Lizenz anbietet. Pingora ist ein asynchrones Multithread-Framework von Rust zum Aufbau programmierbarer Netzwerkdienste.

Pingora wird bei Cloudflare seit langem intern verwendet, um großen Datenverkehrsmengen standzuhalten. Jetzt wird Pingora als Open-Source-Lösung bereitgestellt, um den Aufbau einer Infrastruktur außerhalb von Cloudflare zu unterstützen.

Cloudflares Beschreibung des Pingora-Frameworks lautet

„Pingora bietet Bibliotheken und APIs zum Aufbau von Diensten auf HTTP/1 und HTTP/2, TLS oder TCP/UDP. Als Proxy unterstützt es HTTP/1 und HTTP/2 End-to-End, gRPC und WebSocket-Proxys. (Es bietet auch anpassbare Lastausgleichs- und Failover-Richtlinien. In Bezug auf Compliance und Sicherheit unterstützt es die häufig verwendeten OpenSSL- und BoringSSL-Bibliotheken, die beide FIPS-konform sind und Post-Quantum-Verschlüsselung unterstützen.

Zusätzlich zu diesen Funktionen bietet Pingora auch Filter und Rückrufe, sodass Benutzer vollständig anpassen können, wie der Dienst Anfragen verarbeiten, umwandeln und weiterleiten soll. Diese APIs werden OpenResty- und Nginx-Benutzern besonders vertraut sein, da viele von ihnen intuitiv den „*_by_lua“-Rückrufen von OpenResty zugeordnet sind.

Im operativen Bereich bietet Pingora Service-Neustarts und Selbst-Upgrades ohne Ausfallzeiten, ohne dass eingehende Anfragen verloren gehen. Syslog, Prometheus, Sentry, OpenTelemetry und andere unverzichtbare Observability-Tools lassen sich ebenfalls problemlos in Pingora integrieren.

Cloudflare kündigte an, dass Pingora Open Source sein wird, was auch ein Beispiel für den Aufbau eines Load Balancers mit Pingora enthält. Pingora, das sich im Vor-1.0-Stadium befindet, verfügt noch nicht über eine stabile API und Cloudflare hat derzeit keine Pläne, Nicht-Unix-Betriebssysteme zu unterstützen.

PingoraRust-Code ist auf GitHub verfügbar.