Проект 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

Додати коментар або відгук