Inilabas ng mga developer ng proyekto ng NGINX ang ngx-rust toolkit, na nagpapahintulot sa iyo na lumikha ng mga module para sa NGINX HTTP server at multiprotocol proxy gamit ang Rust programming language. Ang ngx-rust code ay ipinamahagi sa ilalim ng Apache 2.0 na lisensya at kasalukuyang nasa beta.
Ang toolkit ay unang 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 lumipat nang higit pa sa isang prototype na yugto at tumitigil sa loob ng ilang taon, ngunit ang mga halimbawang binding na inilathala sa panahon ng proseso ng prototype ay ginamit ng komunidad sa mga proyekto ng third-party upang palawigin ang mga kakayahan ng NGINX sa wikang Rust.
Pagkaraan ng ilang oras, kailangan ng F5 na magsulat ng isang espesyal na module ng NGINX upang maprotektahan ang mga serbisyo nito, at nais nilang gamitin ang Rust na wika upang mabawasan ang panganib ng mga error sa memorya. Upang malutas ang problemang ito, dinala nila ang may-akda ng ngx-rust, na inatasang bumuo ng bago at pinahusay na tool para sa paglikha ng NGINX modules sa Rust.
Kasama sa toolkit ang dalawang pakete ng crate:
- Ang nginx-sys ay isang nagbubuklod na generator batay sa NGINX source code. Dina-download ng utility ang NGINX code at lahat ng mga dependency nito, pagkatapos ay gumagamit ng bindgen upang bumuo ng mga binding para sa mga katutubong function (FFI, foreign function interface).
- Ang ngx ay 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
