Библиотека оформлена в виде Rust crate под MIT License, который можно использовать вот так: [dependencies] windows = "0.2.1" [build-dependencies] windows = "0.2.1" После этого в скрипте сборки build.rs можно сгенерировать те модули, которые нужны для вашего приложения: fn main() { windows::build!( windows::data::xml::dom::* windows::win32::system_services::{CreateEventW, SetEvent, WaitForSingleObject} windows::win32::windows_programming::CloseHandle ); } Документация о доступных модулях опубликована на [ docs.rs ](
https://microsoft.github.io/windows-docs-rs/doc/bindings/windows/ ) . Пример кода: mod bindings { ::windows::include_bindings!(); } use bindings::{ windows::data::xml::dom::*, windows::win32::system_services::{CreateEventW, SetEvent, WaitForSingleObject}, windows::win32::windows_programming::CloseHandle, }; fn main() -> windows::Result { let doc = XmlDocument::new()?; doc.load_xml("hello world")?; let root = doc.document_element()?; assert!(root.node_name()? == "html"); assert!(root.inner_text()? == "hello world"); unsafe { let event = CreateEventW( std::ptr::null_mut(), true.into(), false.into(), std::ptr::null(), ); SetEvent(event).ok()?; WaitForSingleObject(event, 0); CloseHandle(event).ok()?; } Ok(()) } Для некоторых вызовов функций используется unsafe, так как эти функции предоставляются как они есть, не адаптируя их к конвенциями Rust. По такому же принципу устроен crate [ libc ](
https://crates.io/crates/libc ) , который служит базовым crate для доступа к libc и используется как основа для пострения библиотек с безопасным интерфейсом. Проект создан в рамках [ Win32 Metadata Project ](
https://github.com/microsoft/win32metadata ) , который призван облегчить создание API для разных языков программирования. Вторая библиотека, которая была создана на основе Metadata Project на первое фазе проекта - [ C#/Win32 ](
https://github.com/microsoft/CsWin32 ) . Также Microsoft анонсировала начало работы над [ версией для С++ ](
https://github.com/microsoft/cppwin32 ) , которая использует современный стиль языка.
Ссылка:
https://www.linux.org.ru/news/opensource/16124846