Chromium 项目将支持使用 Rust 库

铬

, Chromium 项目将支持在 Chromium 中使用第三方 C++ Rust 库

谷歌最近宣布,Chromium 项目背后的团队正在努力将生产环境的Rust 工具链添加到其构建系统中。

对于那些还不知道 Rust 的人来说,他们应该牢记它,因为这种由 Mozilla 开发的专门用于编写浏览器的编程语言已经开始渗透并被许多重要项目所接受,其中之一就是Rust 内核。Linux。

这将使我们能够在明年将 Rust 代码包含在 Chrome 二进制文件中。 目标是从小处着手,并明确期望哪些图书馆准备就绪后会被考虑。

因此,Chromium 最终也开始开发这项技术也就不足为奇了。对谷歌而言,在 Chromium 中引入 Rust 将实现其目标,即提供一种更便捷、更安全的方式来达成“二元法则”,即加速开发并提升 Chrome 的安全性。此外,它还能通过消除内存错误和降低代码中的 bug 密度来提升安全性。

我们知道 C++ 和 Rust 可以很好地协同工作,这要归功于 cxx、autocxx bindgen、cbindgen、diplomat 和(实验性的)crubit 等工具。 但是,也有局限性。 我们可以预期这些限制的形状会随着时间的推移随着新的或改进的工具而改变,但这里的决定和描述是基于当前的技术状态。

此举旨在防止Chrome 代码库中出现内存错误。两年前的统计数据显示,Chromium 中 70% 的严重安全问题都是由内存错误引起的。

使用注重安全内存管理并提供自动内存管理的 Rust 语言,可以降低因访问已释放的内存区域和缓冲区溢出等问题而导致的漏洞风险。

将 Rust 引入 Chromium 的目标是提供一种更简单(无 IPC)和更安全(通常 C++ 不那么复杂,没有沙盒内存安全漏洞)的方式来满足二元法则,以加快开发速度(编写更少的代码) ,更少的设计文档,更少的安全补丁)和提高 Chrome 的安全性(内存中没有安全漏洞的更多代码行,更低的代码漏洞密度)。 此外,该公司有信心我们可以使用第三方 Rust 库来实现这一目标。

2022 年初,Chromium 团队已经对 Rust 进行了试验,几个月后,他们得出结论:对于需要与现有代码协同工作的复杂异步代码任务,该语言最初并不适合替代 C++。

因此,Chromium 中 Rust 的使用计划初期显然会受到限制。一方面,互操作性将仅实现单向转换:从 C++ 到 Rust。另一方面,初期仅允许使用第三方库。这些库作为独立组件运行,与 Chromium 的内部组件无关。这些库必须为其特定任务提供简洁的 API。Chromium 团队随后将对这些库进行审核。

最后值得一提的是,Chromium 添加对 Rust 的支持后,从明年开始,Rust 代码就可以移植到 Chrome 二进制文件中。这一决定主要是出于安全考虑:Rust 在内存写入方面比 C++ 更安全,它禁止了诸如读取未写入的变量、访问超出数组限制的值、解引用空指针或无效指针以及使用失效迭代器等潜在有害行为。

如果您有兴趣了解更多信息,可以点击以下链接查看详情。


在 Google 中将其添加为首选来源