Il progetto NGINX ha pubblicato un toolkit per lo sviluppo di moduli nel linguaggio Rust

Gli sviluppatori del progetto NGINX hanno presentato il toolkit ngx-rust, che consente di creare moduli per il server http NGINX e proxy multiprotocollo nel linguaggio di programmazione Rust. Il codice ngx-rust Γ¨ distribuito sotto la licenza Apache 2.0 ed Γ¨ attualmente in versione beta.

Inizialmente, il toolkit Γ¨ stato sviluppato come progetto per accelerare lo sviluppo di una rete di servizi compatibile con Istio per la piattaforma Kubernetes in esecuzione su NGINX. Il prodotto non Γ¨ mai andato oltre il prototipo ed Γ¨ rimasto fermo per diversi anni, ma gli esempi di attacchi pubblicati durante il processo di prototipo sono stati utilizzati dalla comunitΓ  in progetti di terze parti per estendere le capacitΓ  di NGINX in Rust.

Dopo un po' di tempo, l'azienda F5 ha dovuto scrivere un modulo specializzato per NGINX per proteggere i propri servizi, in cui voleva utilizzare il linguaggio Rust per ridurre il rischio di errori quando si lavora con la memoria. Per risolvere il problema Γ¨ stato coinvolto l'autore di ngx-rust, a cui Γ¨ stato assegnato il compito di sviluppare strumenti nuovi e migliorati per la creazione di moduli per NGINX nel linguaggio Rust.

Il toolkit include due pacchetti di casse:

  • nginx-sys - Generatore di collegamenti basato sul codice sorgente NGINX. L'utilitΓ  carica il codice NGINX e tutte le dipendenze associate, quindi utilizza bindgen per creare collegamenti sulle funzioni originali (FFI, interfaccia di funzioni esterne).
  • ngx: un livello per accedere alle funzioni C dal codice Rust, un'API e un sistema per riesportare i collegamenti creati utilizzando nginx-sys.

Fonte: opennet.ru

Aggiungi un commento