Ang proyekto ng NGINX ay naglathala ng isang toolkit para sa pagbuo ng mga module sa Rust na wika

Ipinakita ng mga developer ng proyekto ng NGINX ang ngx-rust toolkit, na nagbibigay-daan sa iyong lumikha ng mga module para sa NGINX http server at multi-protocol proxy sa Rust programming language. Ang ngx-rust code ay ipinamahagi sa ilalim ng Apache 2.0 na lisensya at kasalukuyang nasa beta.

Sa una, ang toolkit ay binuo bilang isang proyekto upang mapabilis ang pagbuo ng isang Istio-compatible na Service mesh para sa Kubernetes platform na tumatakbo sa ibabaw ng NGINX. Ang produkto ay hindi kailanman lumampas sa prototype at stagnated sa loob ng ilang taon, ngunit ang mga halimbawang binding na inilathala sa panahon ng proseso ng prototype ay ginamit ng komunidad sa mga third-party na proyekto upang palawigin ang mga kakayahan ng NGINX sa Rust.

Pagkaraan ng ilang oras, ang kumpanya ng F5 ay kailangang magsulat ng isang dalubhasang module para sa NGINX upang maprotektahan ang mga serbisyo nito, kung saan nais nitong gamitin ang Rust na wika upang mabawasan ang panganib ng mga error kapag nagtatrabaho sa memorya. Upang malutas ang problema, ang may-akda ng ngx-rust ay dinala, na may tungkulin sa pagbuo ng bago at pinahusay na mga tool para sa paglikha ng mga module para sa NGINX sa Rust na wika.

Kasama sa toolkit ang dalawang pakete ng crate:

  • nginx-sys - Binding generator batay sa NGINX source code. Nilo-load ng utility ang NGINX code at lahat ng nauugnay na dependency nito, at pagkatapos ay gumagamit ng bindgen upang lumikha ng mga binding sa mga orihinal na function (FFI, foreign function interface).
  • ngx - isang layer para sa pag-access ng mga function ng C mula sa Rust code, isang API at isang sistema para sa muling pag-export ng mga binding na ginawa gamit ang nginx-sys.

Pinagmulan: opennet.ru

Magdagdag ng komento