Das NGINX-Projekt hat ein Werkzeugset zur Entwicklung von Modulen in der Programmiersprache Rust veröffentlicht.

Die Entwickler des NGINX-Projekts haben das Werkzeug ngx-rust vorgestellt, das es ermöglicht, Module für den HTTP-Server und den multiprotokollfähigen Proxy NGINX in der Programmiersprache Rust zu erstellen. Der Code von ngx-rust wird unter der Apache 2.0-Lizenz veröffentlicht und befindet sich derzeit in der Beta-Version.

Ursprünglich wurde das Werkzeug als Projekt zur Förderung der Entwicklung eines Istio-kompatiblen Service Meshs für die Kubernetes-Plattform entwickelt, das auf NGINX aufbaut. Das Produkt hat nie den Status eines Prototyps überschritten und befand sich mehrere Jahre in der Stagnation, jedoch wurden die während der Prototypenerstellung veröffentlichten Bindungsbeispiele von der Community in Drittanbieterprojekten verwendet, um die Möglichkeiten von NGINX in Rust zu erweitern.

Nach einer Weile benötigte das Unternehmen F5 die Erstellung eines spezialisierten Moduls für NGINX zum Schutz seiner Dienste, bei dem die Programmiersprache Rust verwendet werden sollte, um das Risiko von Speicherfehlern zu verringern. Für diese Aufgabe wurde der Autor von ngx-rust herangezogen, der den Auftrag erhielt, ein neues und verbessertes Werkzeug zur Erstellung von Modulen für NGINX in Rust zu entwickeln.

Das Werkzeug umfasst zwei Crate-Pakete:

  • nginx-sys – ein Bindungsgenerator auf der Grundlage des Quellcodes von NGINX. Das Utility lädt den NGINX-Code und alle damit verbundenen Abhängigkeiten und verwendet anschließend bindgen, um Bindungen über die ursprünglichen Funktionen (FFI, foreign function interface) zu erstellen.
  • ngx – eine Schicht, die den Zugriff auf C-Funktionen aus Rust-Code ermöglicht, API und ein System zum Reexportieren von Bindungen, die mithilfe von nginx-sys erstellt wurden.

Quelle: opennet.ru

60GB SSD 8Gb DDR4