Microsoft har tillkännagett Rust/WinRT-projekt
Microsoft har tillkännagett Rust/WinRT-projekt som ger ett naturligt och idiomatiskt sätt för Rust-utvecklare att anropa Windows API: er. Rust/WinRT låter dig anropa alla WinRT API förr, nu, och framtida med hjälp av kod som genereras i farten direkt från metadatan som beskriver API: et och direkt in i ditt Rust-paket där du kan anropa dem som om de bara vore ännu en Rust modul.
Windows Runtime är baserad på Component Object Model (COM) API: er under huven och är designad för att nås via språkprojektioner som C++/WinRT och Rust/WinRT. Dessa språkprojektioner tar metadata som beskriver olika API: er och ger naturliga bindningar för målprogrammeringsspråket. Detta gör att utvecklare enklare kan bygga appar och komponenter för Windows med deras önskade språk. Du kan sedan använda dessa Windows API: er för att bygga skrivbordsappar, lagra appar, en komponent, NT-tjänst eller enhetsdrivrutin.
Här nedan är ett enkelt exempel på att Rust anropar ett Windows API.
använd windows:: data:: xml:: dom::*; let doc = XmlDocument:: new()?; doc.load_xml("Hej världen")?; låt root = doc.document_element()?; hävda!(root.node_name()? == "html"); hävda!(root.inner_text()? == "hej världen");
För ett mer meningsfullt exempel kan du kolla in följande Minesweeper-spel implementerat med Rust/WinRT: https://github.com/robmikh/minesweeper-rs
Microsoft noterade att detta är en mycket tidig offentlig förhandsvisning, så fler funktioner och korrigeringar kommer i framtiden. Hemsidan för projektet finns på GitHub:
https://github.com/microsoft/winrt-rs