Microsoft a annoncé le projet Rust/WinRT
Microsoft a annoncé le projet Rust/WinRT qui fournit aux développeurs Rust un moyen naturel et idiomatique d'appeler les API Windows. Rust/WinRT vous permet d'appeler n'importe quelle API WinRT passée, présente, et à l'avenir en utilisant du code généré à la volée directement à partir des métadonnées décrivant l'API et directement dans votre package Rust où vous pouvez les appeler comme s'il s'agissait simplement d'un autre Rust module.
Le Windows Runtime est basé sur des API Component Object Model (COM) sous le capot et est conçu pour être accessible via des projections de langage telles que C++/WinRT et Rust/WinRT. Ces projections de langage prennent les métadonnées décrivant diverses API et fournissent des liaisons naturelles pour le langage de programmation cible. Cela permet aux développeurs de créer plus facilement des applications et des composants pour Windows en utilisant le langage de leur choix. Vous pouvez ensuite utiliser ces API Windows pour créer des applications de bureau, stocker des applications, un composant, un service NT ou un pilote de périphérique.
Voici ci-dessous un exemple simple de Rust appelant une API Windows.
utiliser windows:: data:: xml:: dom:: *; let doc = XmlDocument:: new(?); doc.load_xml("Bonjour le monde")?; let root = doc.document_element(?); assert!(root.node_name()? == "html"); assert!(root.inner_text()? == "bonjour tout le monde");
Pour un exemple plus significatif, vous pouvez consulter le jeu Démineur suivant implémenté à l'aide de Rust/WinRT: https://github.com/robmikh/minesweeper-rs
Microsoft a noté qu'il s'agit d'un aperçu public très précoce, donc plus de fonctionnalités et de correctifs à venir à l'avenir. La page d'accueil du projet est sur GitHub :
https://github.com/microsoft/winrt-rs