Das NGINX-Projekt hat ein Toolkit zur Entwicklung von Modulen in der Rust-Sprache veröffentlicht

Die Entwickler des NGINX-Projekts stellten das ngx-rust Toolkit vor, mit dem Sie Module für den NGINX-HTTP-Server und Multiprotokoll-Proxy in der Programmiersprache Rust erstellen können. Der ngx-rust-Code wird unter der Apache 2.0-Lizenz vertrieben und befindet sich derzeit in der Betaphase.

Ursprünglich wurde das Toolkit als Projekt entwickelt, um die Entwicklung eines Istio-kompatiblen Service Mesh für die Kubernetes-Plattform zu beschleunigen, die auf NGINX läuft. Das Produkt kam nie über den Prototyp hinaus und stagnierte mehrere Jahre lang, aber die während des Prototypprozesses veröffentlichten Beispielbindungen wurden von der Community in Drittprojekten verwendet, um die Fähigkeiten von NGINX in Rust zu erweitern.

Nach einiger Zeit musste das Unternehmen F5 zum Schutz seiner Dienste ein spezielles Modul für NGINX schreiben, in dem es die Rust-Sprache verwenden wollte, um das Fehlerrisiko bei der Arbeit mit dem Speicher zu verringern. Um das Problem zu lösen, wurde der Autor von ngx-rust hinzugezogen, der mit der Entwicklung neuer und verbesserter Tools zum Erstellen von Modulen für NGINX in der Rust-Sprache beauftragt wurde.

Das Toolkit enthält zwei Crate-Pakete:

  • nginx-sys – Bindungsgenerator basierend auf NGINX-Quellcode. Das Dienstprogramm lädt den NGINX-Code und alle damit verbundenen Abhängigkeiten und verwendet dann bindgen, um Bindungen über die ursprünglichen Funktionen (FFI, Fremdfunktionsschnittstelle) zu erstellen.
  • ngx – eine Ebene für den Zugriff auf C-Funktionen aus Rust-Code, eine API und ein System zum erneuten Exportieren von mit nginx-sys erstellten Bindungen.

Source: opennet.ru

Kommentar hinzufügen