Az NGINX projekt fejlesztői bemutatták az ngx-rust eszközkészletet, amely lehetővé teszi az NGINX http szerver és a többprotokollos proxy modulok készítését a Rust programozási nyelven. Az ngx-rust kódot az Apache 2.0 licenc alatt terjesztik, és jelenleg béta állapotban van.
Kezdetben az eszközkészletet egy projektként fejlesztették ki, hogy felgyorsítsák az Istio-kompatibilis Service mesh fejlesztését az NGINX-en futó Kubernetes platformhoz. A termék soha nem lépte túl a prototípust, és több évig stagnált, de a prototípus-folyamat során közzétett példakötéseket a közösség felhasználta harmadik féltől származó projektekben az NGINX képességeinek bővítésére a Rustban.
Egy idő után az F5 cégnek speciális modult kellett írnia az NGINX számára szolgáltatásai védelmére, amelyben a Rust nyelvet akarta használni, hogy csökkentse a hibák kockázatát a memóriával való munka során. A probléma megoldására az ngx-rust szerzőjét hozták be, akinek az volt a feladata, hogy új és továbbfejlesztett eszközöket fejlesszen ki az NGINX modulok Rust nyelven történő létrehozásához.
Az eszközkészlet két ládacsomagot tartalmaz:
- nginx-sys – NGINX forráskódon alapuló kötésgenerátor. A segédprogram betölti az NGINX kódot és az összes kapcsolódó függőséget, majd a bindgen segítségével kötéseket hoz létre az eredeti függvények felett (FFI, idegen függvény interfész).
- ngx - egy réteg a C függvények Rust kódból való eléréséhez, egy API és egy rendszer az nginx-sys használatával létrehozott kötések újraexportálására.
Forrás: opennet.ru
