Microsoft ได้ประกาศโครงการ Rust/WinRT
Microsoft ได้ประกาศโครงการ Rust/WinRT ที่ให้วิธีที่เป็นธรรมชาติและเป็นสำนวนสำหรับนักพัฒนา Rust ในการเรียกใช้ Windows API Rust/WinRT ให้คุณเรียก WinRT API ใด ๆ ในอดีต ปัจจุบัน และอนาคตโดยใช้รหัสที่สร้างขึ้นทันทีโดยตรงจากข้อมูลเมตาที่อธิบาย API และลงในแพ็คเกจ Rust ของคุณซึ่งคุณสามารถเรียกพวกเขาราวกับว่าพวกเขาเป็นเพียง Rust อีกตัวหนึ่ง โมดูล.
รันไทม์ของ Windows ขึ้นอยู่กับ Component Object Model (COM) APIs ภายใต้ประทุนและได้รับการออกแบบให้เข้าถึงได้ผ่านการฉายภาพภาษา เช่น C++/WinRT และ Rust/WinRT การคาดการณ์ภาษาเหล่านั้นใช้ข้อมูลเมตาที่อธิบาย API ต่างๆ และจัดเตรียมการเชื่อมโยงตามธรรมชาติสำหรับภาษาโปรแกรมเป้าหมาย ซึ่งช่วยให้นักพัฒนาสร้างแอปและส่วนประกอบสำหรับ Windows ได้ง่ายขึ้นโดยใช้ภาษาที่ต้องการ จากนั้นคุณสามารถใช้ Windows API เหล่านั้นเพื่อสร้างแอปเดสก์ท็อป แอปจัดเก็บ ส่วนประกอบ บริการ NT หรือไดรเวอร์อุปกรณ์
ด้านล่างนี้เป็นตัวอย่างง่ายๆ ของ Rust ที่เรียกใช้ Windows API
ใช้ windows:: data:: xml:: dom::*; ให้ doc = XmlDocument:: new()?; doc.load_xml("สวัสดีชาวโลก")?; ให้ root = doc.document_element()?; ยืนยัน!(root.node_name()? == "html"); ยืนยัน!(root.inner_text()? == "สวัสดีชาวโลก");
สำหรับตัวอย่างที่มีความหมายมากขึ้น คุณสามารถตรวจสอบเกม Minesweeper ต่อไปนี้ที่ใช้งาน Rust/WinRT: https://github.com/robmikh/minesweeper-rs
Microsoft ตั้งข้อสังเกตว่านี่เป็นการแสดงตัวอย่างต่อสาธารณะในช่วงเริ่มต้น ดังนั้นจึงมีคุณลักษณะและการแก้ไขเพิ่มเติมในอนาคต หน้าแรกของโครงการอยู่บน GitHub:
https://github.com/microsoft/winrt-rs