【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

Rust/WinRT 预览版发布,微软在 Rust 大道上又进了一步

  • 2020-05-26
  • 本文字数:1014 字

    阅读完需:约 3 分钟

Rust/WinRT预览版发布,微软在Rust大道上又进了一步

Rust/WinRT是 Windows 运行时的一种语言映射,现在发布了预览版,可以通过自然惯用的方式来调用 Windows API,类似于C++/WinRT等其他语言映射。


借助 Rust/WinRT,你可以直接使用由 API 元数据生成的动态代码来调用 WinRT API,不管是过去的、现在的还是未来的,并可以直接调用 Rust 包,就好像调用另一个 Rust 模块一样。


微软首席软件工程师 Kenny Kerr 解释说,Rust 开发人员可以使用 Rust/WinRT 开发 Windows 应用程序和组件,以及 NT 服务或 Windows 驱动程序。下面演示了如何使用 XmlDocument 类来解析 XML 文档:


use 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");assert!(root.inner_text()? == "hello world");
复制代码


微软努力让 Rust/WinRT 代码尽可能看起来接近惯用的 Rust 代码,比如,蛇形命名到驼峰命名的自动转换、对 Rust null 合并操作符?的支持、简化错误传递,等等。


根据 InfoQ 之前的报道,一段时间以来,微软一直在探索将 Rust 作为开发安全软件的解决方案。微软工程师 Ryan Levick 和 Sebastian Fernandez 在上一界巴塞罗那 RustFest 大会上解释说,微软期望 Rust 能够让高性能关键组件的开发变得更安全,尽管 Rust 社区仍然需要克服很多困难才能让 Rust 及其工具链为 Windows 提供一等支持。


这个新项目似乎证实了微软对待在开发中使用 Rust 这件事是认真的:


长期以来,微软一直将 C++作为开发的基础,但也面临着一些挑战,尤其是在安全方面。Rust 是一种有趣的编程语言,它在很多方面与 C++非常相似,在编译、运行时模型、类型系统和确定性终止机制方面都做得很好。它有自己独特的学习曲线,不过它可以解决困扰 C++项目的一些最令人头疼的问题,而且它的设计从一开始就是以内存安全和安全并发作为核心原则。


要在项目中使用 Rust/WinRT,可以在 Cargo.toml 文件添加依赖:


[dependencies]winrt = { git = "https://github.com/microsoft/winrt-rs" }
复制代码


这样就可以导入任意 Windows 模块:


use winrt::*;import!(    dependencies        os    modules        "windows.data.xml.dom"        "windows.foundation"        "windows.ui");
复制代码


Rust/WinRT 现在只提供了早期预览版,虽然已经足够成熟了。Robert Mikhayelyan 的Rust扫雷游戏提供了非常好的示例。


原文链接


Rust/WinRT Brings Microsoft Closer to Adopting Rust Internally


2020-05-26 10:132327

评论

发布
暂无评论
发现更多内容

技术分享 | Selenium 测试用例编写

霍格沃兹测试开发学社

一道有趣的大厂测试面试题,你能用 Python or Shell 解答吗?

霍格沃兹测试开发学社

阿里分布式全栈手册,整整1000页,太顶了

程序知音

Java 架构 分布式 阿里 后端技术

如何成为一个好的设计师 or 程序员?

宇宙之一粟

读书笔记 设计 技巧 知识 9月月更

技术分享 | 白盒测试方法论

霍格沃兹测试开发学社

测试人生 | 入行3年,年薪36W+,从外包到知名互联网公司,疫情之下薪资不止翻倍~

霍格沃兹测试开发学社

经典面试题-元组和列表的区别

霍格沃兹测试开发学社

一道大厂测试开发面试真题,你需要几分钟解答?

霍格沃兹测试开发学社

技术分享 | 什么是软件缺陷

霍格沃兹测试开发学社

技术分享 | web前端的HTML浅析

霍格沃兹测试开发学社

Linux下使用LVM方式进行文件系统创建,详细教程

阿柠xn

Linux 运维 文件系统 lvm 9月月更

技术分享 | Web测试方法与技术之CSS讲解

霍格沃兹测试开发学社

如何快速开发灵活自定义报表

力软低代码开发平台

LED显示屏人屏互动未来已来

Dylan

户外LED显示屏 led显示屏厂家

经典面试题-平时用的测试框架是什么?pytest框架下怎么入参?

霍格沃兹测试开发学社

技术分享 | Web自动化之Selenium安装

霍格沃兹测试开发学社

技术分享 | WEB 端常见 Bug 解析

霍格沃兹测试开发学社

技术分享 | Web测试方法与技术实战演练

霍格沃兹测试开发学社

经典面试题-Appium原理

霍格沃兹测试开发学社

技术分享 | Web测试方法与技术之JavaScript 讲解

霍格沃兹测试开发学社

测试人生 | 40+的年龄50W+的年薪,2线城市入职名企,他曾想放弃测试?

霍格沃兹测试开发学社

拼多多、蚂蚁、字节2022届(大三)后端研发暑期实习

Java-fenn

Java

技术分享 | SeleniumIDE用例录制

霍格沃兹测试开发学社

技术分享 | 常用测试策略与测试手段

霍格沃兹测试开发学社

技术分享 | Bug定位方法

霍格沃兹测试开发学社

技术分享 | 测试环境搭建

霍格沃兹测试开发学社

经典面试题-显式等待与隐式等待

霍格沃兹测试开发学社

如何通过C#/VB.NET在Excel中隐藏或显示网格线

在下毛毛雨

C# .net Excel

经典面试题-定位不到元素

霍格沃兹测试开发学社

技术分享 | 黑盒测试方法论—因果图

霍格沃兹测试开发学社

经典面试题-Python装饰器

霍格沃兹测试开发学社

Rust/WinRT预览版发布,微软在Rust大道上又进了一步_编程语言_Sergio De Simone_InfoQ精选文章