微軟發布了Rust版本的Windows Runtime(WinRT)公開預覽版,讓Rust開發者能夠直接從描述API的元資料,動態生成程式碼來呼叫任何的WinRT API,讓開發者可以在Rust套件中呼叫這些API,就像是呼叫Rust模組的方式一樣。

微軟提到,Rust/WinRT遵循建置語言投影C++/WinRT所樹立的慣例,利用標準語言和編譯器為Windows Runtime建置語言投影,因此可讓Rust開發人員以自然且符合語言特性的方式,呼叫Windows API。Windows API可以用來建構桌面應用程式、商店應用程式,或是諸如元件、NT服務或是驅動程式等程式。

Windows Runtime的底層就是元件物件模型(Component Object Model,COM)API,目的是要讓像是C++/WinRT與Rust/WinRT這類語言投影,能夠對其進行存取,這些語言投影使用描述各種API的元資料,並且為目標程式語言提供自然的繫結,因此開發人員可以更簡單地使用需要的程式語言,建構Windows的應用程式和元件。

長期以來,微軟都是以C++作為工作的基礎,微軟提到,C++存在一些安全性的挑戰,當開發者能夠遵守安全規範時,才能夠開發出安全的C++應用程式,不過,這件事在開發大型專案中,通常很難貫徹執行。

微軟認為,Rust在許多方面都很類似C++,雖然Rust的學習曲線陡峭,但是由於Rust是個從頭開始設計的程式語言,把記憶體安全和安全並發(Concurrency)作為核心發展原則,或具有能夠解決一些C++專案中棘手問題的特性。

目前Rust/WinRT仍是一個極初期的公開預覽版本,供開發者試用並提供回饋,微軟也計畫,未來要在crates.io上發布Rust/WinRT。

熱門新聞

Advertisement