A Microsoft lançou uma biblioteca Rust oficial para a API do Windows

A biblioteca é apresentada como um crate Rust sob a Licença MIT, que pode ser utilizada assim:

[dependencies]
windows = "0.2.1"

[build-dependencies]
windows = "0.2.1"

Após isso, no script de construção build.rs, você pode gerar os módulos necessários para o seu aplicativo:

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

A documentação sobre os módulos disponíveis está publicada em docs.rs.

Exemplo de código:

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("<html>hello world</html>")?;

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(()
}

Para algumas chamadas de funções, `unsafe` é utilizado, uma vez que essas funções são fornecidas como estão, sem adaptações para as convenções do Rust. O crate é estruturado de forma similar, libcque serve como um crate base para acesso ao libc e é utilizado como base para a construção de bibliotecas com interface segura.


O projeto foi criado no âmbito do Win32 Metadata Project, que visa facilitar a criação de APIs para diversas linguagens de programação. A segunda biblioteca construída com base no Metadata Project na primeira fase do projeto é C#/Win32. A Microsoft também anunciou o início do trabalho em uma versão para C++, que utiliza um estilo moderno da linguagem.

Fonte: linux.org.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster