Projekt NGINX zveřejnil sadu nástrojů pro vývoj modulů v jazyce Rust

Vývojáři projektu NGINX představili sadu nástrojů ngx-rust, která umožňuje vytvářet moduly pro NGINX http server a multiprotokolovou proxy v programovacím jazyce Rust. Kód ngx-rust je distribuován pod licencí Apache 2.0 a aktuálně je ve verzi beta.

Zpočátku byla sada nástrojů vyvinuta jako projekt k urychlení vývoje sítě služeb kompatibilní s Istio pro platformu Kubernetes běžící nad NGINX. Produkt nikdy nepřekročil rámec prototypu a několik let stagnoval, ale ukázkové vazby publikované během procesu prototypu byly použity komunitou v projektech třetích stran k rozšíření schopností NGINX v Rustu.

Po nějaké době potřebovala společnost F5 napsat specializovaný modul pro NGINX na ochranu svých služeb, ve kterém chtěla pomocí jazyka Rust snížit riziko chyb při práci s pamětí. K vyřešení problému byl přizván autor ngx-rust, který měl za úkol vyvinout nové a vylepšené nástroje pro tvorbu modulů pro NGINX v jazyce Rust.

Sada nástrojů obsahuje dva balíčky přepravek:

  • nginx-sys - generátor vazby založený na zdrojovém kódu NGINX. Obslužný program načte kód NGINX a všechny jeho přidružené závislosti a poté použije bindgen k vytvoření vazeb nad původními funkcemi (FFI, rozhraní cizích funkcí).
  • ngx - vrstva pro přístup k C funkcím z kódu Rust, API a systém pro reexport vazeb vytvořených pomocí nginx-sys.

Zdroj: opennet.ru

Přidat komentář