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
