La programistoj de la NGINX-projekto publikigis la ilaron ngx-rust, kiu permesas krei modulojn por la HTTP-servilo kaj plurprotokola prokurilo de NGINX uzante la programlingvon Rust. La kodo ngx-rust estas distribuita sub la permesilo Apache 2.0 kaj nuntempe estas en beta-versio.
La ilaro estis komence evoluigita kiel projekto por akceli la disvolvon de Istio-kongrua serva reto por la Kubernetes-platformo funkcianta sur NGINX. La produkto neniam transiris prototipan stadion kaj stagnis dum pluraj jaroj, sed la ekzemplaj ligiloj publikigitaj dum la prototipa procezo estis uzitaj de la komunumo en triapartaj projektoj por etendi la kapablojn de NGINX en la lingvo Rust.
Post iom da tempo, F5 bezonis verki specialigitan NGINX-modulon por protekti siajn servojn, kaj ili volis uzi la lingvon Rust por redukti la riskon de memoreraroj. Por solvi ĉi tiun problemon, ili dungis la aŭtoron de ngx-rust, kiu ricevis la taskon disvolvi novajn kaj plibonigitajn ilojn por krei NGINX-modulojn en Rust.
La ilaro inkluzivas du kestajn pakaĵojn:
- nginx-sys estas ligogenerilo bazita sur la fontkodo de NGINX. La ilo elŝutas la NGINX-kodon kaj ĉiujn ĝiajn dependecojn, poste uzas bindgen por generi ligojn por la denaskaj funkcioj (FFI, interfaco por fremdaj funkcioj).
- ngx estas tavolo por aliri C-funkciojn el Rust-kodo, API, kaj sistemo por reeksporti ligilojn kreitajn per nginx-sys.
fonto: opennet.ru
