Het NGINX-project heeft een toolkit gepubliceerd voor het ontwikkelen van modules in de Rust-taal

De ontwikkelaars van het NGINX-project presenteerden de ngx-rust toolkit, waarmee je modules kunt maken voor de NGINX http-server en multi-protocol proxy in de programmeertaal Rust. De ngx-rust-code wordt gedistribueerd onder de Apache 2.0-licentie en bevindt zich momenteel in bèta.

Aanvankelijk werd de toolkit ontwikkeld als een project om de ontwikkeling van een Istio-compatibele Service mesh voor het Kubernetes-platform dat bovenop NGINX draait te versnellen. Het product ging nooit verder dan het prototype en stagneerde een aantal jaren, maar de voorbeeldbindingen die tijdens het prototypeproces werden gepubliceerd, werden door de gemeenschap gebruikt in projecten van derden om de mogelijkheden van NGINX in Rust uit te breiden.

Na enige tijd moest het F5-bedrijf een gespecialiseerde module voor NGINX schrijven om zijn diensten te beschermen, waarbij het de Rust-taal wilde gebruiken om het risico op fouten bij het werken met geheugen te verkleinen. Om het probleem op te lossen werd de auteur van ngx-rust ingeschakeld, die de taak kreeg nieuwe en verbeterde tools te ontwikkelen voor het maken van modules voor NGINX in de Rust-taal.

De toolkit bevat twee kratpakketten:

  • nginx-sys - Bindinggenerator gebaseerd op NGINX-broncode. Het hulpprogramma laadt de NGINX-code en alle bijbehorende afhankelijkheden, en gebruikt vervolgens bindgen om bindingen te maken over de originele functies (FFI, externe functie-interface).
  • ngx - een laag voor toegang tot C-functies vanuit Rust-code, een API en een systeem voor het opnieuw exporteren van bindingen gemaakt met nginx-sys.

Bron: opennet.ru

Voeg een reactie