NGINX projekti arendajad esitasid tööriista ngx-rust, mis võimaldab luua mooduleid HTTP-serveri ja mitme protokolli proksile NGINX programmeerimiskeeles Rust. Tööriista kodeering on levitatav Apache 2.0 litsentsi alusel ja praegu on see beetaversioonis.
Alguses arenes tööriist projektina, et kiirendada Istio-ühilduva teenuse võrgu arendamist Kubernetes platvormile, mis töötab NGINX-i peal. Toode ei läinud prototüübi piiridest kaugemale ja jäi mitu aastat stagnatsiooni, kuid prototüübi loomise protsessis avaldatud sidumised leidsid kogukonnas kasutust kolmandate osapoolte projektides NGINX-i võimaluste laiendamiseks Rusti keeles.
Mõne aja pärast vajas ettevõte F5 spetsialiseeritud NGINX-i mooduli kirjutamist oma teenuste kaitsmiseks, kus nad soovisid kasutada Rusti keelt, et vähendada mälu käsitsemisega seotud vigade riski. Selle ülesande täitmiseks kaasati ngx-rusti autor, kellele anti ülesanne arendada välja uus ja täiustatud tööriist moodulite loomiseks NGINX-ile Rusti keeles.
Tööriist sisaldab kahte crate-paketti:
- nginx-sys — NGINX-i lähtekoodide põhjal sidumiste generaator. Utiliit laadib NGINX-i koodi ja kõik sellega seotud sõltuvused ning seejärel kasutab bindgeni originaalfunktsioonide (FFI, väliste funktsioonide liidese) ümbermoodustamiseks.
- ngx — vahekiht C-funktsioonide kõnetamiseks Rusti koodis, API ja sidumiste ümbereksportimise süsteem, mis on loodud nginx-sysi abil.
Allikas: opennet.ru
