Proyek NGINX telah menerbitkan toolkit untuk mengembangkan modul dalam bahasa Rust

Pengembang proyek NGINX menghadirkan toolkit ngx-rust, yang memungkinkan Anda membuat modul untuk server http NGINX dan proxy multi-protokol dalam bahasa pemrograman Rust. Kode ngx-rust didistribusikan di bawah lisensi Apache 2.0 dan saat ini dalam versi beta.

Awalnya, toolkit ini dikembangkan sebagai proyek untuk mempercepat pengembangan Service mesh yang kompatibel dengan Istio untuk platform Kubernetes yang berjalan di atas NGINX. Produk ini tidak pernah melampaui prototipe dan mengalami stagnasi selama beberapa tahun, namun contoh pengikatan yang diterbitkan selama proses prototipe digunakan oleh komunitas dalam proyek pihak ketiga untuk memperluas kemampuan NGINX di Rust.

Setelah beberapa waktu, perusahaan F5 perlu menulis modul khusus untuk NGINX untuk melindungi layanannya, di mana mereka ingin menggunakan bahasa Rust untuk mengurangi risiko kesalahan saat bekerja dengan memori. Untuk mengatasi masalah ini, penulis ngx-rust dilibatkan, yang ditugaskan untuk mengembangkan alat baru dan lebih baik untuk membuat modul untuk NGINX dalam bahasa Rust.

Toolkit ini mencakup dua paket peti:

  • nginx-sys - Generator pengikatan berdasarkan kode sumber NGINX. Utilitas memuat kode NGINX dan semua dependensi terkait, lalu menggunakan bindgen untuk membuat pengikatan pada fungsi asli (FFI, antarmuka fungsi asing).
  • ngx - lapisan untuk mengakses fungsi C dari kode Rust, API dan sistem untuk mengekspor ulang binding yang dibuat menggunakan nginx-sys.

Sumber: opennet.ru

Tambah komentar