Microsoft hat Rust/WinRT-Projekt angekündigt
Microsoft hat ein Rust/WinRT-Projekt angekündigt, das Rust-Entwicklern eine natürliche und idiomatische Möglichkeit bietet, Windows-APIs aufzurufen. Mit Rust/WinRT können Sie jede WinRT-API in der Vergangenheit, Gegenwart, und in Zukunft mit Code, der direkt aus den Metadaten generiert wird, die die API beschreiben, und direkt in Ihr Rust-Paket, wo Sie sie aufrufen können, als wären sie nur ein weiterer Rust Modul.
Die Windows-Runtime basiert auf COM-APIs (Component Object Model) unter der Haube und ist für den Zugriff über Sprachprojektionen wie C++/WinRT und Rust/WinRT konzipiert. Diese Sprachprojektionen verwenden die Metadaten, die verschiedene APIs beschreiben, und stellen natürliche Bindungen für die Zielprogrammiersprache bereit. Dies ermöglicht es Entwicklern, Apps und Komponenten für Windows in ihrer gewünschten Sprache einfacher zu erstellen. Sie können diese Windows-APIs dann verwenden, um Desktop-Apps zu erstellen, Apps, eine Komponente, einen NT-Dienst oder einen Gerätetreiber zu speichern.
Hier unten ist ein einfaches Beispiel dafür, wie Rust eine Windows-API aufruft.
Windows verwenden:: data:: xml:: dom::*; let doc = XmlDocument:: new()?; doc.load_xml("Hallo Welt")?; let root = doc.document_element()?; behaupten!(root.node_name()? == "html"); behaupten!(root.inner_text()? == "Hallo Welt");
Für ein aussagekräftigeres Beispiel können Sie sich das folgende Minesweeper-Spiel ansehen, das mit Rust/WinRT implementiert wurde: https://github.com/robmikh/minesweeper-rs
Microsoft stellte fest, dass dies eine sehr frühe öffentliche Vorschau ist, sodass in Zukunft weitere Funktionen und Fehlerbehebungen folgen werden. Die Homepage des Projekts befindet sich auf GitHub:
https://github.com/microsoft/winrt-rs