Experimente mit Rust: Microsoft präsentiert Public Preview von Rust/WinRT

Das neue Tool zur Erstellung von Sprachprojektionen soll künftig jede API der Windows Runtime in Rust aufrufen können. Die Public Preview steht auf GitHub.

Lesezeit: 1 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen 51 Beiträge

(Bild: kentoh / Shutterstock.com)

Von

Rust/WinRT, ein neues Tool zum Erstellen von Sprachprojektionen für die Windows Runtime (WinRT), steht als Public Preview auf GitHub bereit. Analog zu der Funktionsweise von C++/WinRT soll das Tool unter Verwendung von Standardsprachen und Compilern künftig Sprachprojektionen erstellen, mit denen Rust-Entwickler jede API der WinRT aufrufen können sollen, um damit Desktop-Anwendungen und Windows-Komponenten in Rust zu erstellen. Der Code lasse sich "on the fly" direkt aus den Metadaten der jeweiligen API generieren und als neues Rust-Modul in das verwendete Rust-Package einbauen.

Ein Beispiel für den Aufruf einer Windows-API durch Rust wäre der folgende Code, mit dem sich ein einfaches XML-Dokument parsen und überprüfen lässt:

use windows::data::xml::dom::*;

let doc = XmlDocument::new()?;
doc.load_xml("<html>hello world</html>")?;

let root = doc.document_element()?;
assert!(root.node_name()? == "html");
assert!(root.inner_text()? == "hello world");

Die Preview befindet sich noch in einem sehr frühen, experimentellen Stadium. Microsoft sendet mit ihr ein deutliches Zeichen in Richtung Rust-Community – künftig dürfte das Unternehmen neben C++ verstärkt auch auf Rust als Programmiersprache setzen. Grundsätzlich gilt modernes C++ als besonders sicher, größere Projekte seien damit aber schwerer umsetzbar. Laut Microsoft ähnele Rust C++ auf mehreren Ebenen. Hinsichtlich Kompilierung, Laufzeitmodell und Typensystem erfüllt es die für größere Projekte benötigten Voraussetzungen aber offenbar besser.

Nachteil von Rust bleibt die von Anwendern weiterhin als steil empfundene Lernkurve. Andererseits könnte die Mühe sich für Windows-Entwickler lohnen, da Rust offenbar das Potenzial besitzt, einige Grundprobleme zu lösen, mit denen Projekte in C++ regelmäßig kämpfen. Insbesondere Speichersicherheit (memory safety) bei sicherer Gleichzeitigkeit (safe concurrency) solle Rust laut Microsoft eher gewährleisten.

Experimente mit Rust betreibt Microsoft schon seit längerem – so laufen Projekte zum Umschreiben von Low-Level-Komponenten von Windows, die ursprünglich in C und C++ geschrieben sind. Microsoft entwickelt unter dem Projektnamen Verona eine wohl auf Rust basierende neue Sprache zum sicheren Programmieren von Infrastruktur mit einem neuen Ownership-Modell, wie Matthew Parkinson vom Cambridge Computer Lab Ende 2019 in einem Vortrag über Sicherheit und Legacy bei Microsoft ankündigte.

Mehr Informationen zur Preview von Rust/WinRT lassen sich der Ankündigung im Microsoft-Blog entnehmen. Der Code von Rust/WinRT steht auf GitHub bereit. Ebenfalls auf GitHub findet sich als Anwendungsbeispiel die nach Rust portierte Version einer Minesweeper-Demo. Der Programmierer Robert Mikhayelyan hatte das Spiel ursprünglich in C++ geschrieben. (sih)