2022 OceanBase 年度发布会,点击了解详情 了解详情
写点什么

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

  • 2020 年 5 月 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 年 5 月 26 日 10:132055

评论

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

一文讲清楚 MySQL 事务隔离级别和实现原理,开发人员必备知识点

古时的风筝

MySQL 数据库 事务隔离级别 mysql事务 数据库事务

凡事必先骑上虎背

Steve

学习 态度 方法论

微服务架构深度解析与最佳实践 - 第六部分

kimmking

微服务 最佳实践 深度解析 高可用

2019 年

贾献华

2020 2019 总结 日历 计划

微服务架构深度解析与最佳实践(全篇汇总)

kimmking

微服务 最佳实践 深度解析 高可用

两边夹的应用二

孙苏勇

算法 两边夹 重排序 函数式接口 Lambda

两边夹的应用

孙苏勇

算法 积水问题 两边夹

程序员职业生涯的八点感想

池建强

程序员 职业

归去来兮:递归

曲镇

算法

一个独立开发者,他是如何做到月入 20 万的?

非著名程序员

程序员 独立开发者 副业赚钱 开发者 程序人生

小程序的当下和未来可能 | GMTC.2019深圳站演讲文稿

崔红保

小程序 uni-app

聊聊:Python

谢烟客

Python 人工智能 编程

数据分析师应该了解的数据湖

数据社

大数据 数据仓库 数据湖 数据分析

亚马逊云 AWS LightSail 搭建高性能 LNMP 环境并安全部署 Wordpress

小蚂蚁(Snow Hide)

nginx Wordpress 部署 SELinux 安全上下文配置 亚马逊云 AWS Lightsail 安全

微服务架构深度解析与最佳实践-第一部分

kimmking

微服务 最佳实践 深度解析 高可用

微服务架构深度解析与最佳实践 - 第三部分

kimmking

微服务 最佳实践 深度解析 高可用

【译】Rust 开发者的2019

WasmEdge

程序员 rust

你不是迷茫,只是缺乏目标

Steve

学习 身心健康 方法 自我管理

黄金思维圈,养成透过现象看本质的能力

非著名程序员

读书笔记 程序员 程序人生 提升认知

申请鲲鹏920测试机试水+编译nginx

草宝虫

nginx 鲲鹏920 centos7 armv8

微服务架构深度解析与最佳实践 - 第七部分

kimmking

微服务 最佳实践 深度解析 高可用

求稳不得

孙苏勇

职业 发展 职场

一个运营经理人的工作两周年总结

霍太稳@极客邦科技

高效工作 身心健康 项目管理 自我管理

平均响应1000ms到200ms,PHP和Go那家强?

拖地先生

php 架构 性能优化 后台开发 运维

阿里笔记之数据模型

迹_Jason

大数据

微服务架构深度解析与最佳实践 - 第四部分

kimmking

微服务 最佳实践 深度解析 高可用

浅谈数据中台

数据社

大数据 数据中台 数据仓库

微服务架构深度解析与最佳实践 - 第五部分

kimmking

微服务 最佳实践 深度解析 高可用

最近看了两本书:The Rules of Life 和 Make Big Happen

霍太稳@极客邦科技

创业 团队管理 自我管理

越是困难,越是要做有分析判断能力的人

霍太稳@极客邦科技

创业 团队管理 个人成长

微服务架构深度解析与最佳实践-第二部分

kimmking

微服务 最佳实践 深度解析 高可用

2022 阿里云飞天技术峰会 - 主论坛

2022 阿里云飞天技术峰会 - 主论坛

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