Utvecklarna av NGINX-projektet presenterade verktygssatsen ngx-rust, som låter dig skapa moduler för http-servern och NGINX multiprotokollproxy i programmeringsspråket Rust. ngx-rust-koden distribueras under Apache 2.0-licensen och är för närvarande i beta.
Ursprungligen utvecklades verktygslådan som ett projekt för att påskynda utvecklingen av ett Istio-kompatibelt Service-mesh för Kubernetes-plattformen som körs ovanpå NGINX. Produkten gick aldrig längre än prototypen och stagnerade i flera år, men de exempelbindningar som publicerades under prototypprocessen användes av gemenskapen i tredjepartsprojekt för att utöka kapaciteten hos NGINX i Rust.
Efter en tid behövde F5-företaget skriva en specialiserad modul för NGINX för att skydda sina tjänster, där man ville använda språket Rust för att minska risken för fel vid arbete med minne. För att lösa problemet togs in författaren till ngx-rust, som fick i uppdrag att utveckla nya och förbättrade verktyg för att skapa moduler för NGINX på språket Rust.
Verktygslådan innehåller två lådpaket:
- nginx-sys - Bindningsgenerator baserad på NGINX-källkod. Verktyget laddar NGINX-koden och alla dess associerade beroenden och använder sedan bindgen för att skapa bindningar över de ursprungliga funktionerna (FFI, främmande funktionsgränssnitt).
- ngx - ett lager för åtkomst till C-funktioner från Rustkod, ett API och ett system för att återexportera bindningar skapade med nginx-sys.
Källa: opennet.ru
