5

9bb801a7a0b434fd2419b0311fa5935873f.jpg

技术编辑:王治治丨发自 假期流动岗


(SegmentFault 思否报道)近日,微软在 GitHub 上发布了Rust/WinRT 的早期公开预览版。该项目由微软 Windows 开发者平台团队的首席软件工程师 Kenny Kerr 带头发起。

WinRT 就是 Windows Runtime,它构成了通用 Windows 平台(UWP)应用程序的基础。Rust/WinRT 可以让 Rust 开发者更容易地构建 Windows 桌面应用、存储应用和设备驱动等组件。

该项目沿袭了微软早期的 C++/WinRT Windows Runtime 库,允许开发者编写 UWP 和 Win32 Windows 应用程序。这两个库都提供了对 Windows Runtime 组件对象模型 API 的访问。

"Rust/WinRT 让你可以直接使用从描述 API 的元数据中快速生成的代码来调用过去、现在和未来的任何 WinRT API,并直接放入你的 Rust 包中,在这里你可以像调用另一个 Rust 模块一样调用它们,"Kerr 在一篇文章中写到。

不过注意的是,Windows Runtime 并不是什么都能用的。例如,WinRT 不支持 Windows Presentation Foundation(WPF) 和 Windows Forms 应用程序。


据悉,微软主要是用 C++/WinRT 支持这种用例,近期也宣布 Rust 将与 Rust/WinRT 一起使用 C++。

根据微软公司的说法,C++ 有一些优点,这些优点使它具有吸引力,有时也变成了「必需品」。它的速度非常快、成熟;具有可预测的执行力、内存和磁盘占用空间小、几乎无人能及的平台等特点,而且你不需要安装额外的组件就可以使用。

所以,微软认为,如果开发人员能够拥有 .NET、C# 等语言的所有内存安全保证,再加上 C++ 的高效率,就可以避免在软件中引入某些缺陷。

"微软安全响应中心(MSRC)团队表示:"Mozilla 最初开发的 Rust 编程语言是最新的、最符合这些要求的编程语言之一。"

然而,微软并不是唯一一家推动 Rust 进行更安全的编程的公司。其他科技巨头和小企业已经开始依赖 Rust 作为其工作的关键因素。比如Node.js程序包管理器背后的 npm。

2019 年 2 月,npm 发布了一份研究报告,认为 Rust 编程语言比 Go、C 和 C++ 等其他语言有更好的管理依赖关系的方法。因此团队选择了 Rust 来做一个 npm 注册表服务的新实现方式,避免了长期以来的性能问题。


微软表示,Rust/WinRT 是一个非常早期的公开预览版,但现在团队已经决定使用公开版中进行部分工作。

GitHub 地址:https://github.com/microsoft/...

clipboard.png


王治治
1.2k 声望5.2k 粉丝

学者所志至大,犹恐所得浅。