Rust 文章
-
将跨平台 GUI 应用程序移植到 Rust
在这篇博文中,我们将深入探讨选择 Rust 作为崩溃报告器的原因,概述为崩溃报告器设计一个在主浏览器崩溃时也能运行的应用程序的独特挑战,并讨论我们实施的新架构。我们还将分享对实施技术细节的见解,展示如何利用 Rust 的功能更有效地处理崩溃并提高安全性。
-
使用 UniFFI 自动生成 Rust-JS 绑定
这篇博文将介绍我们如何开发 UniFFI:一个用于自动生成外语绑定的 Rust 库。我们将介绍开发过程中遇到的一些问题以及我们如何解决这些问题。
-
使用模糊测试 rust-minidump 以找出尴尬问题和崩溃 - 第 2 部分
在过去的一年里,我们一直在开发 rust-minidump,这是一个纯 Rust 版本,用于替换 google-breakpad 中处理 minidump 的一半功能。本系列的最后一部分将引导您完成使用模糊测试 rust-minidump 的过程。
-
将 Firefox 移植到 Apple Silicon
去年年底,苹果推出了基于 Apple Silicon 的 Mac,这引发了大量的新闻报道,也让人们对这台机器的性能感到惊讶。这篇文章详细介绍了将 Firefox 移植到这些 CPU 上以原生运行的一些背景信息。
-
Cranelift 的新后端,第一部分:指令选择
这篇文章将描述我最近在 Mozilla 担任全职工作期间对 Cranelift 做的一些工作。在这篇文章中,我将介绍一些背景信息,并描述指令选择问题。特别地,我将讨论我们一直在进行的指令选择器和后端框架的总体改进。
-
使用 WebAssembly 保护 Firefox 的安全
保护个人安全和隐私是 Mozilla 使命的重要原则。虽然我们继续在 Firefox 中广泛使用沙盒和 Rust 来解决浏览器中的安全挑战,但每种方法都有其局限性。今天,我们将在我们的武器库中添加第三种方法。RLBox 是一种新的沙盒技术,由加州大学圣地亚哥分校和德克萨斯大学奥斯汀分校的研究人员开发,它使我们能够快速高效地将现有的 Firefox 组件转换为在 WebAssembly 沙盒中运行。
-
跨越 Rust FFI 前沿,使用 Protocol Buffers
Firefox 应用程序服务工程团队决定使用 Rust 构建 Firefox Sync 的跨平台组件,为众多设备上的 Firefox 帐户提供支持。他们使用 Rust 实现核心业务逻辑,并将其封装在薄平台原生层中,例如 Android 的 Kotlin 和 iOS 的 Swift。
-
使用 Rust 和 Wasm 实现快速、基于 bump 分配的虚拟 DOM
Dodrio 是一个新的虚拟 DOM 库,旨在通过充分利用 Wasm 的线性内存和 Rust 的低级控制来发挥两者优势,并广泛使用快速 bump 分配。早期的基准测试结果验证了 Dodrio 的设计,并表明它已经拥有业界领先的性能。现在,我们正在寻求来自实际使用的反馈。
-
将浏览器组件重写为 Rust 的影响
自 2002 年浏览器首次发布以来,Firefox 的样式组件出现了 69 个安全漏洞。如果我们有时光机,可以从一开始就用 Rust 编写这个组件,那么其中 51 个(73.9%)漏洞就不会出现。Rust 并非万无一失,但通过消除内存安全的负担,Rust 使程序员能够专注于逻辑正确性和健壮性。
-
无畏的安全:线程安全性
多线程允许程序更快地完成更多任务,但也会带来同步错误和攻击。编程语言已经演化出不同的并发策略来帮助开发人员管理多线程应用程序的性能和安全挑战。Diane Hosfelt 探讨了线程安全性的挑战,以及 Rust 的方法。