Microsoft vydal oficiální knihovnu Rust pro Windows API

Knihovna je navržena jako Rust bedna pod licencí MIT, kterou lze používat takto:

[závislosti] windows = "0.2.1"

[build-dependencies] windows = "0.2.1"

Poté můžete ve skriptu build.rs vygenerovat moduly potřebné pro vaši aplikaci:

fn main() {
okna::stavět!(
windows::data::xml::dom::*
windows::win32::system_services::{CreateEventW, SetEvent, WaitForSingleObject}
windows::win32::windows_programming::CloseHandle
);
}

Dokumentace o dostupných modulech je zveřejněna na docs.rs.

Ukázkový kód:

mod vazby {
::windows::include_bindings!();
}

použít vazby::{
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(" Ahoj světe ")?;

let root = doc.document_element()?;
tvrdit!(root.název_uzlu()? == "html");
tvrdit!(root.inner_text()? == "ahoj světe");

nebezpečný {
let event = CreateEventW(
std::ptr::null_mut(),
true.into(),
false.into(),
std::ptr::null(),
);

SetEvent(event).ok()?;
WaitForSingleObject(událost, 0);
CloseHandle(event).ok()?;
}

OK(())
}

Některá volání funkcí jsou nebezpečná, protože tyto funkce jsou poskytovány tak, jak jsou, bez jejich přizpůsobení konvencím Rust. Bedna je navržena na stejném principu. libc, který slouží jako základní bedna pro přístup k libc a používá se jako základ pro vytváření knihoven se zabezpečeným rozhraním.


Projekt vznikl v rámci Projekt metadat Win32, který je navržen tak, aby usnadnil vytváření API pro různé programovací jazyky. Druhá knihovna, která byla vytvořena na základě projektu Metadata v první fázi projektu - C#/Win32. Microsoft také oznámil zahájení prací na verze pro C++, který používá moderní styl jazyka.

Zdroj: linux.org.ru