Microsoft ha anunciado el proyecto Rust / WinRT
Microsoft ha anunciado el proyecto Rust / WinRT que proporciona una forma natural e idiomática para que los desarrolladores de Rust llamen a las API de Windows. Rust / WinRT le permite llamar a cualquier API de WinRT pasado, presente, y futuro usando código generado sobre la marcha directamente a partir de los metadatos que describen la API y directamente en su paquete de Rust, donde puede llamarlos como si fueran solo otro Rust módulo.
![Logotipo de banner binario](/f/4a6db63e8f1a8e24d0907fdc61c4f79c.png)
Windows Runtime se basa en las API del Modelo de objetos componentes (COM) bajo el capó y está diseñado para ser accedido a través de proyecciones de lenguaje como C ++ / WinRT y Rust / WinRT. Esas proyecciones de lenguaje toman los metadatos que describen varias API y proporcionan enlaces naturales para el lenguaje de programación de destino. Esto permite a los desarrolladores crear más fácilmente aplicaciones y componentes para Windows utilizando el idioma deseado. Luego, puede usar esas API de Windows para crear aplicaciones de escritorio, almacenar aplicaciones, un componente, un servicio NT o un controlador de dispositivo.
A continuación, se muestra un ejemplo simple de cómo Rust llama a una API de Windows.
use windows:: data:: xml:: dom:: *; let doc = XmlDocument:: new ()?; doc.load_xml ("Hola Mundo")?; let root = doc.document_element ()?; afirmar! (root.node_name ()? == "html"); afirmar! (root.inner_text ()? == "hola mundo");
Para obtener un ejemplo más significativo, puede consultar el siguiente juego Buscaminas implementado con Rust / WinRT: https://github.com/robmikh/minesweeper-rs
![](/f/7a034189248b66fe211290851ec0fb89.gif)
Microsoft señaló que esta es una vista previa pública muy temprana, por lo que habrá más funciones y correcciones en el futuro. La página de inicio del proyecto está en GitHub:
https://github.com/microsoft/winrt-rs