NGINX layihəsinin tərtibatçıları Rust proqramlaşdırma dilində http server və NGINX multiprotokol proksisi üçün modullar yaratmağa imkan verən ngx-rust alət dəstini təqdim ediblər. ngx-rust kodu Apache 2.0 lisenziyası altında paylanır və hazırda beta-dadır.
Əvvəlcə alətlər dəsti NGINX üzərində işləyən Kubernetes platforması üçün Istio uyğun xidmət şəbəkəsinin inkişafını sürətləndirmək üçün bir layihə olaraq hazırlanmışdır. Məhsul heç vaxt prototipdən kənara çıxmadı və bir neçə il dayandı, lakin prototip prosesi zamanı nəşr olunan nümunə bağlamaları Rust-da NGINX-in imkanlarını genişləndirmək üçün üçüncü tərəf layihələrində icma tərəfindən istifadə edildi.
Bir müddət sonra F5 şirkəti öz xidmətlərini qorumaq üçün NGINX üçün xüsusi modul yazmağa ehtiyac duydu, bu modulda yaddaşla işləyərkən xəta riskini azaltmaq üçün Rust dilindən istifadə etmək istəyirdi. Problemi həll etmək üçün ngx-rust müəllifi gətirildi, ona Rust dilində NGINX üçün modullar yaratmaq üçün yeni və təkmilləşdirilmiş alətlər hazırlamaq tapşırıldı.
Alət dəstinə iki sandıq paketi daxildir:
- nginx-sys - NGINX mənbə koduna əsaslanan bağlama generatoru. Utilit NGINX kodunu və onunla əlaqəli bütün asılılıqları yükləyir və sonra orijinal funksiyalar (FFI, xarici funksiya interfeysi) üzərində bağlamalar yaratmaq üçün bindgen-dən istifadə edir.
- ngx - Rust kodundan C funksiyalarına daxil olmaq üçün təbəqə, API və nginx-sys istifadə edərək yaradılmış bağlamaların yenidən ixracı üçün sistem.
Mənbə: opennet.ru
