Vývojáři projektu NGINX vydali sadu nástrojů ngx-rust, která umožňuje vytvářet moduly pro HTTP server NGINX a multiprotokolovou proxy pomocí programovacího jazyka Rust. Kód ngx-rust je distribuován pod licencí Apache 2.0 a je aktuálně v beta verzi.
Sada nástrojů byla původně vyvinuta jako projekt pro urychlení vývoje servisní sítě kompatibilní s Istio pro platformu Kubernetes běžící na NGINX. Produkt se nikdy nedostal za fázi prototypu a několik let stagnoval, ale ukázkové vazby publikované během procesu prototypování byly komunitou použity v projektech třetích stran k rozšíření možností NGINX v jazyce Rust.
Po nějaké době potřebovala společnost F5 napsat specializovaný modul NGINX pro ochranu svých služeb a chtěla použít jazyk Rust ke snížení rizika chyb paměti. Aby tento problém vyřešila, přizvala autora ngx-rust, který měl za úkol vyvinout nové a vylepšené nástroje pro vytváření modulů NGINX v Rustu.
Sada nástrojů obsahuje dva balíčky beden:
- nginx-sys je generátor vazeb založený na zdrojovém kódu NGINX. Nástroj stáhne kód NGINX a všechny jeho závislosti a poté pomocí bindgenu vygeneruje vazby pro nativní funkce (FFI, foreign function interface).
- ngx je vrstva pro přístup k funkcím jazyka C z kódu Rust, API a systém pro reexport vazeb vytvořených pomocí nginx-sys.
Zdroj: opennet.ru
