NGINX төсөл нь Rust хэл дээр модулиудыг хөгжүүлэх хэрэгслийн багцыг нийтлэв

NGINX төслийн хөгжүүлэгчид Rust програмчлалын хэлээр NGINX http сервер болон олон протоколын проксид зориулсан модулиудыг үүсгэх боломжийг олгодог ngx-rust хэрэгслийн багцыг танилцуулав. Ngx-rust код нь Apache 2.0 лицензийн дагуу тархсан бөгөөд одоогоор бета хувилбарт байна.

Эхэндээ уг хэрэгслийг NGINX дээр ажилладаг Kubernetes платформд зориулсан Istio-тэй нийцтэй үйлчилгээний сүлжээг хөгжүүлэх ажлыг хурдасгах төсөл болгон боловсруулсан. Бүтээгдэхүүн нь хэзээ ч загвараас хэтрээгүй бөгөөд хэдэн жилийн турш зогсонги байдалд орсон боловч прототип боловсруулах явцад хэвлэгдсэн жишээ хавсаргасан материалыг олон нийт гуравдагч этгээдийн төслүүдэд Rust дахь NGINX-ийн чадавхийг өргөжүүлэхэд ашигласан.

Хэсэг хугацааны дараа F5 компани үйлчилгээгээ хамгаалахын тулд NGINX-д зориулсан тусгай модуль бичих шаардлагатай болсон бөгөөд энэ нь санах ойтой ажиллахдаа алдаа гарах эрсдлийг бууруулахын тулд Rust хэлийг ашиглахыг хүссэн. Асуудлыг шийдэхийн тулд Rust хэл дээр NGINX-д зориулсан модулиудыг бий болгох шинэ, сайжруулсан хэрэгслийг боловсруулах үүрэг хүлээсэн ngx-rust зохиогчийг авчирсан.

Хэрэгслийн хэрэгсэлд хоёр хайрцагны багц орно:

  • nginx-sys - NGINX эх код дээр суурилсан холбох генератор. Уг хэрэгсэл нь NGINX код болон түүнтэй холбоотой бүх хамаарлыг ачаалж, дараа нь bindgen-ийг ашиглан анхны функцууд (FFI, гадаад функцийн интерфейс) дээр холболт үүсгэдэг.
  • ngx - Rust кодоос C функцэд хандах давхарга, API болон nginx-sys ашиглан үүсгэсэн холболтуудыг дахин экспортлох систем.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх