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

Дадаць каментар