Udviklerne af NGINX-projektet har introduceret ngx-rust-værktøjssættet, som giver dig mulighed for at oprette moduler til http-serveren og multi-protokol-proxy NGINX i Rust-programmeringssproget. ngx-rust-koden distribueres under Apache 2.0-licensen og er i øjeblikket i beta.
Værktøjssættet blev oprindeligt udviklet som et projekt for at accelerere udviklingen af et Istio-kompatibelt Service Mesh til Kubernetes-platformen, der kører oven på NGINX. Produktet gik aldrig ud over prototypestadiet og stagnerede i flere år, men de bindende eksempler, der blev offentliggjort under prototypingsprocessen, blev brugt af fællesskabet i tredjepartsprojekter for at udvide mulighederne for NGINX i Rust-sproget.
Efter nogen tid havde F5 brug for at skrive et specialiseret modul til NGINX for at beskytte dets tjenester, hvor de ønskede at bruge Rust-sproget for at reducere risikoen for fejl ved arbejde med hukommelse. For at løse problemet blev forfatteren af ngx-rust hentet ind og fik til opgave at udvikle et nyt og forbedret værktøjssæt til at skabe moduler til NGINX i Rust-sproget.
Værktøjssættet indeholder to kassepakker:
- nginx-sys er en bindingsgenerator baseret på NGINX-kilder. Værktøjet downloader NGINX-koden og alle dens afhængigheder og bruger derefter bindgen til at generere bindinger over de originale funktioner (FFI, fremmedfunktionsgrænseflade).
- ngx er et lag til at få adgang til C-funktioner fra Rust-kode, en API og et system til reeksport af bindinger oprettet ved hjælp af nginx-sys.
Kilde: opennet.ru
