Razvijalci projekta NGINX so predstavili komplet orodij ngx-rust, ki omogoča ustvarjanje modulov za http strežnik in večprotokolni proxy NGINX v programskem jeziku Rust. Koda ngx-rust se distribuira pod licenco Apache 2.0 in je trenutno v različici beta.
Sprva je bil komplet orodij razvit kot projekt za pospešitev razvoja storitvenega omrežja, združljivega z Istio, za platformo Kubernetes, ki deluje na vrhu NGINX. Izdelek nikoli ni presegel prototipa in je nekaj let stagniral, vendar je skupnost uporabila primere vezav, objavljene med postopkom prototipa, v projektih tretjih oseb za razširitev zmogljivosti NGINX v Rustu.
Čez nekaj časa je podjetje F5 moralo napisati specializiran modul za NGINX za zaščito svojih storitev, v katerem je želelo uporabiti jezik Rust za zmanjšanje tveganja napak pri delu s pomnilnikom. Za rešitev problema je bil vključen avtor ngx-rust, ki je bil zadolžen za razvoj novih in izboljšanih orodij za ustvarjanje modulov za NGINX v jeziku Rust.
Komplet orodij vključuje dva paketa zabojev:
- nginx-sys - Generator vezave, ki temelji na izvorni kodi NGINX. Pripomoček naloži kodo NGINX in vse z njo povezane odvisnosti, nato pa uporabi bindgen za ustvarjanje vezav nad izvirnimi funkcijami (FFI, tuji funkcijski vmesnik).
- ngx - sloj za dostop do funkcij C iz kode Rust, API in sistem za ponovni izvoz vezav, ustvarjenih z uporabo nginx-sys.
Vir: opennet.ru