ภาษา Rust เป็นภาษาโปรแกรมที่เพิ่งสร้างขึ้นมาเมื่อปี 2010 โดยมอซิลล่า ผู้สร้างเบราว์เซอร์ไฟร์ฟอกซ์ ตอนนี้ได้รับความสนใจขึ้นมาอีกครั้ง เมื่อ Joseph Birr-Pixton ทีมงาน Rustls ทดสอบการส่งข้อมูลเข้ารหัส เทียบกับ OpenSSL ไลบรารีเข้ารหัสที่แทบจะเป็นมาตรฐานกลางสำหรับการเข้ารหัสในซอฟต์แวร์โอเพนซอร์ส แล้วพบว่าสามารถเอาชนะได้แทบทุกการทดสอบ ตั้งแต่ประสิทธิภาพไปจนถึงการใช้หน่วยความจำ
ผลทดสอบ TLS 1.3 TLS_AES_256_GCM_SHA384 นั้น ประสิทธิภาพการส่งข้อมูล Rustls เร็วกว่า OpenSSL อยู่ 13% ขณะที่ฝั่งรับเร็วกว่า 5.8% ขณะที่การใช้หน่วยความจำน้อยกว่า 54%
ศูนย์รับมือเหตุการณ์ความปลอดภัยของไมโครซอฟท์ (Microsoft Security Response Center - MSRC) เขียนบล็อกถึงปัญหาความปลอดถัย ว่าปัญหาหน่วยความจำนั้นคิดเป็นสัดส่วนประมาณ 70% ของช่องโหว่ความปลอดภัย ส่วนภาษาระดับสูงที่ป้องกันโปรแกรมเมอร์จากการจัดการหน่วยความจำผิดพลาดนั้นก็มักจะมีประสิทธิภาพไม่ดีพอ ทำให้ภาษา Rust กลายเป็นตัวเลือกน่าสนใจสำหรับงานระดับล่างที่ยังต้องการการป้องกันช่องโหว่หน่วยความจำอยู่
ภาษา Rust กำหนดให้อ้างอิงหน่วยความจำที่ระดับ smart pointer เท่านั้น และตัวภาษาจะตรวจสอบการเข้าถึงหน่วยความจำที่อยู่นอกขอบเขตที่ได้รับอนุญาตโดยอัตโนมัติ ช่องโหว่หน่วยความจำจากความผิดพลาดของโปรแกรมเมอร์ เช่น use-after-free นั้นในภาษา Rust สามารถตรวจพบได้ตั้งแต่ขั้นตอนการคอมไพล์ ทำให้ลดปัญหาไปได้มาก ขณะที่ตัวภาษาเองยังเป็นภาษาระดับต่ำ ได้โปรแกรมที่รันได้เต็มประสิทธิภาพซีพียู โดยเฉพาะแนวทางที่ไม่มี garbage collection ที่ทำให้โปรแกรมสะดุดในบางช่วงเวลา
นอกจาก Rustls แล้ว โครงการดังๆ ที่ใช้ภาษา Rust คือ บล็อคเชน Libra
โลโก้ Rustls จาก Github โครงการ
Comments
ภาษานี้ใช้เขียนโปรแกรมแบบไหนได้บ้างครับ เฉพาะเรื่องความปลอดภัยอย่างเดียวหรือเปล่า
Browser ครับ
rust เป็น system programing language เอาไว้สร้างงานระดับ system
รู้จักกับภาษา Rust - มันคือ C/C++ แห่งโลกประมวลผลแบบขนาน
เป็นภาษาที่ดี แต่ learning curve สูงกว่า go พอสมควร
ใครเคยเขียน c++ อยู่ แล้วมาเขียน rust นี้น่าจะเรียนรู้ไม่ยากนะ