Microsoft ogłosił projekt Rust/WinRT
Microsoft ogłosił projekt Rust/WinRT, który zapewnia programistom Rust naturalny i idiomatyczny sposób wywoływania API Windows. Rust/WinRT pozwala na wywołanie dowolnego interfejsu API WinRT w przeszłości, teraźniejszości, i w przyszłości za pomocą kodu generowanego w locie bezpośrednio z metadanych opisujących API i bezpośrednio do pakietu Rusta, gdzie można je wywołać tak, jakby były po prostu kolejnym Rustem moduł.
Środowisko wykonawcze systemu Windows jest oparte na interfejsach API modelu COM (Component Object Model) pod maską i jest przeznaczone do uzyskiwania dostępu za pośrednictwem projekcji języków, takich jak C++/WinRT i Rust/WinRT. Te projekcje języka pobierają metadane opisujące różne interfejsy API i zapewniają naturalne powiązania dla docelowego języka programowania. Dzięki temu programiści mogą łatwiej tworzyć aplikacje i składniki dla systemu Windows w żądanym języku. Możesz następnie użyć tych interfejsów API systemu Windows do tworzenia aplikacji klasycznych, przechowywania aplikacji, składnika, usługi NT lub sterownika urządzenia.
Poniżej znajduje się prosty przykład Rust wywołującego API Windows.
użyj windows:: data:: xml:: dom::*; let doc = XmlDocument:: new(); doc.load_xml("Witaj świecie")?; let root = doc.document_element(); attach!(root.node_name()? == "html"); asercja!(root.inner_text()? == "Witaj świecie");
Aby uzyskać bardziej znaczący przykład, możesz sprawdzić następującą grę Saper zaimplementowaną przy użyciu Rust/WinRT: https://github.com/robmikh/minesweeper-rs
Microsoft zauważył, że jest to bardzo wczesna publiczna wersja zapoznawcza, więc w przyszłości pojawi się więcej funkcji i poprawek. Strona główna projektu znajduje się na GitHub:
https://github.com/microsoft/winrt-rs