Zhvilluesit e projektit NGINX prezantuan paketën e mjeteve ngx-rust, e cila mundëson krijimin e moduleve për serverin http dhe proxy-n shumëprotokollësh NGINX në gjuhën e programimit Rust. Kodi i ngx-rust shpërndahet sipas licencës Apache 2.0 dhe aktualisht ndodhet ende në fazën beta.
Fillimisht, kjo paketë mjetesh u zhvillua si një projekt për të përshpejtuar krijimin e një Service mesh të pajtueshëm me Istio për platformën Kubernetes, që funksionon mbi NGINX. Produkti nuk doli përtej fazës së prototipit dhe për disa vite mbeti në stagnim, por shembujt e binding-ve të publikuar gjatë krijimit të prototipit u përdorën nga komuniteti në projekte të palëve të treta për të zgjeruar mundësitë e NGINX me Rust.
Pas një kohe, kompanisë F5 iu nevojit zhvillimi i një moduli të specializuar për NGINX për mbrojtjen e shërbimeve të saj, ku dëshirohej përdorimi i gjuhës Rust për të ulur rrezikun e gabimeve gjatë menaxhimit të memories. Për këtë detyrë u angazhua autori i ngx-rust, të cilit iu besua zhvillimi i një pakete të re dhe të përmirësuar mjetesh për krijimin e moduleve për NGINX në gjuhën Rust.
Paketa e mjeteve përfshin dy crate-paketa:
- nginx-sys â gjenerator binding-esh i bazuar nĂ« kodin burimor tĂ« NGINX. Mjeti shkarkon kodin e NGINX dhe tĂ« gjitha varĂ«sitĂ« e lidhura me tĂ«, mĂ« pas pĂ«rdor bindgen pĂ«r tĂ« krijuar mbĂ«shtjellĂ«set mbi funksionet origjinale (FFI, foreign function interface).
- ngx â njĂ« shtresĂ« ndĂ«rmjetĂ«se pĂ«r thirrjen e funksioneve C nga kodi Rust, API dhe sistemi i riekspozimit tĂ« mbĂ«shtjellĂ«seve tĂ« krijuara me ndihmĂ«n e nginx-sys.
Burimi: opennet.ru
