Rust/WinRT使微软更接近在内部采用Rust

2020-05-18 04:48:31

Rust/WinRT现已在预览版中提供,它是Windows运行时的语言投影,支持以自然和惯用的方式调用Windows API,类似于其他语言投影(如C++/WinRT)。

Rust/WinRT允许您使用从描述API的元数据直接动态生成的代码调用任何过去、现在和将来的WinRT API,并直接进入Rust包,在那里您可以像调用另一个Rust模块一样调用它们。

微软首席软件工程师Kenny Kerr解释说,使用Rust/WinRT,Rust开发人员将能够为Windows创建应用程序和组件,以及NT服务或Windows驱动程序。以下是使用XmlDocument类解析XML文档的方式:

使用windows::data::xml::DOM::*;let doc=XmlDocument::new()?;doc.load_xml(";<;html>;hello world<;/html>;";)?;let root=doc.document_element()?;assert!(root.node_name()?==";html&34;);assert!(root.kernel_text())。

微软努力使基于Rust/WinRT的代码看起来尽可能像惯用的Rust代码,这很好地例证了从蛇案例到骆驼案例的自动转换,以及对Rust null合并操作符的支持?以简化前面代码段中的错误传播。

正如InfoQ报道的那样,微软探索Rust作为编写安全软件的解决方案已经有一段时间了。微软工程师Ryan Levick和Sebastian Fernandez在最后的巴塞罗那RustFest上解释说,微软在这里的期望是Rust将能够安全地编写高性能的安全关键组件,尽管Rust社区仍然有许多障碍需要克服,以便在Windows上给予Rust及其工具链一流的支持。

这个新项目似乎证实了微软在任何对其自身发展有意义的地方使用Rust都是认真的:

微软长期以来一直依赖C++作为我们很多工作的主干,但它面临着一些挑战,特别是在安全性方面。[.]。铁锈是一种耐人寻味的语言。它在许多方面与C++非常相似,在编译、运行时模型、类型系统和确定性终结方面都恰到好处。虽然它有自己独特的学习曲线,但它也有可能解决困扰C++项目的一些最棘手的问题,而且它是以内存安全和安全并发为核心原则从头设计的。

要在项目中使用Rust/WinRT,请将其作为依赖项添加到Cargo.toml文件中:

铁锈/WinRT仍然是一个早期的预览版,尽管它已经足够成熟,可以驱动罗伯特·米哈耶利安的扫雷舰克隆人,这也为它的使用提供了一个很好的介绍。

InfoQ上上周内容的综述每周二都会发布。加入一个超过25万名高级开发人员的社区。查看示例。

选择您的国家/地区我同意InfoQ.com按照本隐私声明中的说明处理我的数据。