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

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

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

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

Инструментариумът включва два crate-пакета:

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

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

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster