นักพัฒนาโครงการ NGINX ได้เปิดตัวชุดเครื่องมือ ngx-rust ซึ่งช่วยให้คุณสร้างโมดูลสำหรับเซิร์ฟเวอร์ HTTP NGINX และพร็อกซีแบบมัลติโปรโตคอลโดยใช้ภาษาโปรแกรม Rust โค้ด ngx-rust นี้เผยแพร่ภายใต้ใบอนุญาต Apache 2.0 และปัจจุบันอยู่ในสถานะเบต้า
ชุดเครื่องมือนี้ได้รับการพัฒนาขึ้นในขั้นต้นในฐานะโครงการเพื่อเร่งการพัฒนาเซอร์วิสเมชที่เข้ากันได้กับ Istio สำหรับแพลตฟอร์ม Kubernetes ที่ทำงานบน NGINX ผลิตภัณฑ์นี้ไม่เคยพัฒนาเกินขั้นต้นแบบและหยุดชะงักอยู่หลายปี แต่ตัวอย่างการเชื่อมโยงที่เผยแพร่ระหว่างกระบวนการสร้างต้นแบบถูกนำไปใช้โดยชุมชนในโครงการของบุคคลที่สามเพื่อขยายขีดความสามารถของ NGINX ในภาษา Rust
หลังจากนั้นไม่นาน F5 จำเป็นต้องเขียนโมดูล NGINX เฉพาะทางเพื่อปกป้องบริการต่างๆ ของตน และต้องการใช้ภาษา Rust เพื่อลดความเสี่ยงของข้อผิดพลาดของหน่วยความจำ เพื่อแก้ปัญหานี้ พวกเขาจึงได้นำผู้เขียน ngx-rust เข้ามา ซึ่งได้รับมอบหมายให้พัฒนาเครื่องมือใหม่ๆ ที่ได้รับการปรับปรุงสำหรับการสร้างโมดูล NGINX ใน Rust
ชุดเครื่องมือประกอบด้วยกล่องบรรจุ 2 แบบ:
- nginx-sys คือเครื่องมือสร้างการผูกมัดที่อิงตามโค้ดต้นฉบับของ NGINX ยูทิลิตี้นี้จะดาวน์โหลดโค้ด NGINX และส่วนอ้างอิงทั้งหมด จากนั้นใช้ bindgen เพื่อสร้างการผูกมัดสำหรับฟังก์ชันดั้งเดิม (FFI, อินเทอร์เฟซฟังก์ชันภายนอก)
- ngx เป็นเลเยอร์สำหรับการเข้าถึงฟังก์ชัน C จากโค้ด Rust, API และระบบสำหรับการส่งออกการผูกที่สร้างโดยใช้ nginx-sys อีกครั้ง
ที่มา: opennet.ru
