NGINX projekts ir publicējis rīku komplektu moduļu izstrādei Rust valodā

NGINX projekta izstrādātāji prezentēja ngx-rust rīku komplektu, kas ļauj izveidot moduļus NGINX http serverim un vairāku protokolu starpniekserveri Rust programmēšanas valodā. Kods ngx-rust tiek izplatīts saskaņā ar Apache 2.0 licenci un pašlaik ir beta versijā.

Sākotnēji rīkkopa tika izstrādāta kā projekts, lai paātrinātu ar Istio saderīga pakalpojuma tīkla izstrādi Kubernetes platformai, kas darbojas uz NGINX. Produkts nekad nepārsniedza prototipu un vairākus gadus stagnēja, taču prototipa procesa laikā publicētos saišu piemērus kopiena izmantoja trešo pušu projektos, lai paplašinātu NGINX iespējas Rust.

Pēc kāda laika uzņēmumam F5 vajadzēja uzrakstīt specializētu moduli NGINX, lai aizsargātu savus pakalpojumus, kurā tā vēlējās izmantot Rust valodu, lai samazinātu kļūdu risku, strādājot ar atmiņu. Problēmas risināšanai tika piesaistīts ngx-rust autors, kuram tika uzdots izstrādāt jaunus un uzlabotus rīkus moduļu izveidei priekš NGINX Rust valodā.

Rīku komplektā ir iekļauti divi kastes komplekti:

  • nginx-sys — saistīšanas ģenerators, kura pamatā ir NGINX avota kods. Lietderība ielādē NGINX kodu un visas ar to saistītās atkarības un pēc tam izmanto bindgen, lai izveidotu saistījumus, izmantojot sākotnējās funkcijas (FFI, svešfunkciju saskarne).
  • ngx - slānis, lai piekļūtu C funkcijām no Rust koda, API un sistēma saišu atkārtotai eksportēšanai, kas izveidota, izmantojot nginx-sys.

Avots: opennet.ru

Pievieno komentāru