Проектът NGINX публикува набор от инструменти за разработване на модули на езика Rust

Разработчиците на проекта NGINX представиха инструментариума ngx-rust, който ви позволява да създавате модули за http сървъра NGINX и многопротоколен прокси на езика за програмиране Rust. Кодът ngx-rust се разпространява под лиценза Apache 2.0 и в момента е в бета версия.

Първоначално инструментариумът е разработен като проект за ускоряване на разработването на съвместима с Istio мрежа за услуги за платформата Kubernetes, работеща върху NGINX. Продуктът никога не надхвърля прототипа и стагнира няколко години, но примерните обвързвания, публикувани по време на процеса на прототипа, бяха използвани от общността в проекти на трети страни за разширяване на възможностите на NGINX в Rust.

След известно време компанията F5 трябваше да напише специализиран модул за NGINX, за да защити своите услуги, в който искаше да използва езика Rust, за да намали риска от грешки при работа с памет. За решаване на проблема беше привлечен авторът на ngx-rust, който имаше за задача да разработи нови и подобрени инструменти за създаване на модули за NGINX на езика Rust.

Комплектът инструменти включва два пакета с каси:

  • nginx-sys - Генератор на свързване, базиран на изходния код на NGINX. Помощната програма зарежда кода NGINX и всички свързани с него зависимости и след това използва bindgen, за да създаде обвързвания върху оригиналните функции (FFI, чужд функционален интерфейс).
  • ngx - слой за достъп до C функции от Rust код, API и система за повторно експортиране на свързвания, създадени с помощта на nginx-sys.

Източник: opennet.ru

Добавяне на нов коментар