Microsoft обяви проект Rust/WinRT
Microsoft обяви проект Rust/WinRT, който предоставя естествен и идиоматичен начин за разработчиците на Rust да извикват Windows API. Rust/WinRT ви позволява да извикате всеки WinRT API в миналото, настоящето, и в бъдеще с помощта на код, генериран в движение, директно от метаданните, описващи API и направо във вашия пакет Rust, където можете да ги извикате, сякаш са просто още един Rust модул.
Windows Runtime се базира на API на компонентен обектен модел (COM) под капака и е проектиран да бъде достъпен чрез езикови проекции като C++/WinRT и Rust/WinRT. Тези езикови проекции приемат метаданните, описващи различни API и осигуряват естествени връзки за целевия език за програмиране. Това позволява на разработчиците по-лесно да създават приложения и компоненти за Windows, използвайки желания от тях език. След това можете да използвате тези API на Windows за създаване на настолни приложения, приложения за съхранение, компонент, 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