Projekt NGINX zverejnil súpravu nástrojov na vývoj modulov v jazyku Rust

Vývojári projektu NGINX predstavili súpravu nástrojov ngx-rust, ktorá vám umožňuje vytvárať moduly pre NGINX http server a multiprotokolový proxy v programovacom jazyku Rust. Kód ngx-rust je distribuovaný pod licenciou Apache 2.0 a momentálne je v beta verzii.

Spočiatku bol súbor nástrojov vyvinutý ako projekt na urýchlenie vývoja siete služieb kompatibilnej s Istio pre platformu Kubernetes, ktorá beží nad NGINX. Produkt nikdy neprekročil rámec prototypu a niekoľko rokov stagnoval, ale príklady väzieb publikované počas procesu prototypu boli použité komunitou v projektoch tretích strán na rozšírenie možností NGINX v Ruste.

Po určitom čase potrebovala spoločnosť F5 napísať špecializovaný modul pre NGINX na ochranu svojich služieb, v ktorom chcela použiť jazyk Rust na zníženie rizika chýb pri práci s pamäťou. Na vyriešenie problému bol prizvaný autor ngx-rust, ktorý mal za úlohu vyvinúť nové a vylepšené nástroje na vytváranie modulov pre NGINX v jazyku Rust.

Sada nástrojov obsahuje dva balíčky prepraviek:

  • nginx-sys - Generátor viazania založený na zdrojovom kóde NGINX. Obslužný program načíta kód NGINX a všetky jeho súvisiace závislosti a potom použije bindgen na vytvorenie väzieb nad pôvodnými funkciami (FFI, rozhranie cudzích funkcií).
  • ngx - vrstva pre prístup k C funkciám z kódu Rust, API a systém na reexport väzieb vytvorených pomocou nginx-sys.

Zdroj: opennet.ru

Pridať komentár