Utvecklarna av projektet NGINX har presenterat verktyget ngx-rust, som gör det möjligt att skapa moduler för HTTP-servern och den flerprotokollproxy NGINX med programmeringssprÄket Rust. Koden för ngx-rust distribueras under Apache 2.0-licensen och befinner sig fortfarande i beta-version.
Ursprungligen utvecklades verktyget som ett projekt för att pÄskynda utvecklingen av en Istio-kompatibel servicemesh för Kubernetes, som körs ovanpÄ NGINX. Produkten nÄdde aldrig prototypstadiet och förblev stagnanta i flera Är, men de exempel som publicerades under prototypens skapande anvÀndes av samhÀllet i externa projekt för att utöka NGINX:s möjligheter med Rust.
Efter en tid behövde företaget F5 utveckla en specialiserad modul för NGINX för att skydda sina tjÀnster, dÀr man ville anvÀnda programmeringssprÄket Rust för att minska risken för minnesfel. För att lösa denna uppgift engagerades skaparen av ngx-rust, som fick i uppdrag att utveckla ett nytt och förbÀttrat verktyg för att skapa moduler för NGINX med Rust.
Verktyget inkluderar tvÄ crate-paket:
- nginx-sys â en bindningsgenerator baserad pĂ„ NGINX:s kĂ€llkod. Verktyget laddar ner NGINX-kod och alla relaterade beroenden, och anvĂ€nder sedan bindgen för att skapa bindningar över de ursprungliga funktionerna (FFI, foreign function interface).
- ngx â ett lager för att anropa C-funktioner frĂ„n Rust-kod, API och system för Ă„terexport av bindningar skapade med nginx-sys.
KĂ€lla: opennet.ru
