Vývojári projektu NGINX vydali sadu nástrojov ngx-rust, ktorá umožňuje vytvárať moduly pre HTTP server NGINX a multiprotokolový proxy pomocou programovacieho jazyka Rust. Kód ngx-rust je distribuovaný pod licenciou Apache 2.0 a momentálne je v beta verzii.
Sada nástrojov bola pôvodne vyvinutá ako projekt na urýchlenie vývoja servisnej siete kompatibilnej s Istio pre platformu Kubernetes bežiacu na NGINX. Produkt sa nikdy neposunul za fázu prototypu a niekoľko rokov stagnoval, ale vzorové väzby publikované počas procesu prototypovania boli komunitou použité v projektoch tretích strán na rozšírenie možností NGINX v jazyku Rust.
Po nejakom čase potrebovala spoločnosť F5 napísať špecializovaný modul NGINX na ochranu svojich služieb a chcela použiť Rust na zníženie rizika chýb pamäte. Na vyriešenie tohto problému si prizvali autora ngx-rust, ktorý mal za úlohu vyvinúť nové a vylepšené nástroje na vytváranie modulov NGINX v Ruste.
Sada nástrojov obsahuje dva balíky prepraviek:
- nginx-sys je generátor väzieb založený na zdrojovom kóde NGINX. Nástroj stiahne kód NGINX a všetky jeho závislosti a potom pomocou bindgen vygeneruje väzby pre natívne funkcie (FFI, rozhranie zahraničných funkcií).
- ngx je vrstva pre prístup k funkciám jazyka C z kódu Rust, API a systém pre reexport väzieb vytvorených pomocou nginx-sys.
Zdroj: opennet.ru
