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

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

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

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

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

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

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

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