今天是 Rust 自 2015 年发布 1.0 版本以来的六周年。自那时起,特别是过去一年里,许多事情都发生了变化,Rust 也不例外。在 2020 年,Rust 基金会尚未成立,还没有 const generics 功能,许多组织仍在观望 Rust 是否已达到生产环境的要求。
在 COVID-19 大流行期间,Rust 全球分布的数百名团队成员和志愿者发布了九个新的稳定版本,此外还有各种错误修复版本。如今,“在生产环境中使用 Rust”已不再是一个疑问,而是一个事实陈述。新成立的 Rust 基金会拥有多个成员,他们高度重视在生产环境中使用 Rust,并为此继续支持和贡献于其开放的开发生态系统。
我们想借今天回顾过去一年的一些主要改进,了解社区如何在生产环境中使用 Rust,并展望未来一年中正在进行的一些工作,以改进 Rust 并将其用于大小规模项目。让我们开始吧!
近期新增功能
Rust 语言在过去一年里取得了巨大进步,增加了许多提升使用体验的功能,这些功能虽然没有从根本上改变语言,但有助于在更多地方更容易地使用和维护 Rust。
-
截至 Rust 1.52.0 版本及升级到 LLVM 12,少数关于前向进展(例如处理无限循环)的健全性问题终于得到了解决。这是 Rust 团队与 LLVM 项目长期合作的成果,也是 Rust 改进如何惠及更广泛编程语言生态系统的绝佳范例。
-
在支持更广泛生态系统方面,对 64 位 ARM Linux 的 Tier 1 支持以及对 ARM macOS 和 ARM Windows 的 Tier 2 支持,使得 Rust 在跨新旧不同架构轻松构建项目方面变得更加出色。
-
在完善主题中最值得注意的是 Rust 编译时能力的重大改进。原始类型的 const generics 稳定化,
const fn
支持控制流,以及允许在更多地方使用过程宏,这些都使得创建强大全新的 API 类型和 crates 成为可能。
Rustc 并非唯一取得显著改进的工具。
-
Cargo 最近稳定了其新的 feature resolver,这使得跨不同目标使用依赖项变得更加容易。
-
Rustdoc 稳定了其“文档内链接”功能,让您可以在文档中轻松自动地交叉引用 Rust 类型和函数。
-
现在,Clippy 配合 Cargo 使用独立的构建缓存,提供了更加一致的行为。
Rust 在生产环境的应用
每年 Rust 在社区和行业中的增长和采用速度都令人难以置信,过去一年也不例外。在 2020 年,Rust 再次被 StackOverflow 评选为 最受欢迎的编程语言。感谢社区中所有人的支持,以及帮助 Rust 成为今天的样子。
随着 Rust 基金会 的成立,Rust 处于更好的位置来构建一个可持续的开源生态系统,赋能每个人构建可靠高效的软件。许多使用 Rust 的公司已经组建了专门的团队来维护和改进 Rust 项目,其中包括 AWS、Facebook 和 Microsoft。
而且不仅仅是 Rust 本身在壮大。越来越多的大型公司在其项目中使用 Rust,并提供官方支持的 Rust API。
- Microsoft 和 Amazon 最近都宣布并发布了新的官方支持的 Rust 库,用于与 Windows 和 AWS 交互。对这些庞大 API 的官方第一方支持,有助于使 Rust 成为人们在决定项目使用何种语言时的首选。
- cURL 项目发布了新版本,提供了选择性支持,可以使用 Rust 库来处理 HTTP/s 和 TLS 通信。这是 ISRG、Hyper 和 Rustls 团队以及 cURL 项目之间巨大的社区协作成果,我们要感谢所有人的辛勤工作,为一个像 cURL 这样庞大且广泛使用的项目提供了新的内存安全后端!
- Tokio(一个用 Rust 编写的异步运行时)发布了其 1.0 版本,并宣布了三年的稳定性保证,为所有人提供了一个坚实稳定的基础,可以在不牺牲速度的情况下编写可靠的网络应用。
未来工作
当然,所有这些都只是一个开始,我们看到越来越多的倡议将 Rust 带到令人兴奋的新领域;
- Critical Section 和 Ferrous Systems 启动了 Ferrocene 项目,旨在使 Rust 成为整个行业安全和任务关键系统的可行编程语言。
- Embark Studios 发布了
rust-gpu
的初始原型,这是一个新的编译器后端,允许使用 Rust 为 GPU 编写图形着色器。 - Linux 项目目前正在考虑一项将 Rust 作为内核第二语言的提案,以实现编写更安全的驱动程序和内核空间代码。
- Google 宣布 现在支持使用 Rust 构建 Android 操作系统的低级组件,并已经开始着手使用 Rust 重写其蓝牙堆栈!
目前 Rust 团队正在规划和协调 Rust 的 2021 版本。就像过去一年一样,很多更改的主题都围绕着提升使用体验。您可以查阅我们最近关于 “Rust 2021 版本计划” 的文章,了解团队正在计划哪些更改。
而这仅仅是冰山一角;还有很多正在进行的更改,以及每天都有新的令人兴奋的开源项目在 Rust 中启动。我们迫不及待地想看到大家在未来一年中构建的成果!
对于过去一年的更改或项目,您是否感到兴奋?您是否正在考虑开始学习 Rust?您是否想为 2021 版本做出贡献?那么就来加入我们吧,介绍一下自己,并在我们的 Discourse 论坛和 Zulip 聊天室参与讨论!我们欢迎所有人,我们致力于为所有人提供一个友好、安全和热情的环境,无论性别、性取向、残疾、种族、宗教或类似的个人特征如何。