2024 年 8 月 12 日 · Niko Matsakis 代表 领导委员会
随着 RFC #3672 的合并,Rust 项目已经为 2024 年下半年(2024H2)选择了一组 26 个项目目标。这是我们首次运行一种 实验性的新路标制定过程;如果一切顺利,我们预计大约每六个月进行一次这一过程。在这些目标中,我们将其中三个指定为 旗舰目标,代表我们最雄心勃勃且最有影响力的努力:1)为 Rust 2024 版做最后准备;2)使异步 Rust 的体验更接近同步 Rust;3)解决 Linux 内核在稳定 Rust 上构建的最大阻碍。随着今年的进展,我们将定期发布这三个旗舰目标以及其他 23 个目标的更新。
Rust 的使命
所有选定的目标最终都在推动 Rust 的使命,即 赋能每个人构建可靠且高效的软件。Rust 的目标程序注重:
- 可靠性和稳健性;
- 性能、内存使用和资源消耗;以及
- 长期维护和可扩展性。
我们认为,“三者中任意两个”是项目适合使用 Rust 的正确标准,Rust 可能是最佳选择之一,我们选择目标的部分原因是为了确保这一点。
为什么选择这些特定的旗舰目标?
2024 版。 2024 年将标志着第 4 个 Rust 版本,继 2015、2018 和 2021 版之后。与 2021 版 类似,2024 版并不是一次“主要的市场推广”,而是一个纠正 Rust 中小型使用问题的机会,从而整体上使其更易于使用。2024 版计划的变更 包括:
1)通过对捕获行为的对齐,在特性中支持 -> impl Trait
和 async fn
;
2)通过保留 gen
关键字为将来添加(异步)生成器做准备;
3)改变 !
类型的回退行为。计划 是在今年完成 2024 功能的开发;
版本本身计划在 Rust v1.85 中发布(预计在 2025-01-03 发布 beta 版,并在 2025-02-20 发布稳定版)。
异步。 2024 年我们计划交付几个关键的异步 Rust 基础构建块功能,最值得注意的是支持 异步闭包 和 Send
限界。这是一个多年的计划,旨在将编写“异步 Rust”的体验提升到与“同步 Rust”相同的质量水平。异步 Rust 广泛使用,在 2023 年 Rust 调查 中,有 52% 的受访者表示他们使用 Rust 来构建服务器端或后端应用程序。
Rust for Linux。 在 Linux 内核中开发 Rust 的实验性支持 是 Rust 的一个分水岭时刻,向世界展示了 Rust 确实能够针对各种底层系统应用程序。然而,目前这种支持依赖于 许多不稳定的功能,阻碍了这一努力从实验性状态进一步发展。对于 2024H2,我们将努力消除阻碍支持的 最大障碍。
其他目标的亮点
除了旗舰目标外,路线图还定义了 其他 23 个目标。以下是其中的一部分,以供参考:
- 稳定 cargo-script,允许嵌入依赖项的单文件 Rust 脚本;由 Ed Page 负责。
- 在 nightly 上支持可扩展的 Polonius,改进 Rust 的借用检查器以支持 条件返回和其他模式;由 Rémy Rakic 负责。
- 将并行前端移向稳定,将 Rust 编译时间提高多达 20%;由 Sparrow Li 负责。
- 更简洁的引用计数,减少处理引用计数数据的语法开销;由 Jonathan Kelley 负责。
- 实现“合并 doctests”,将 doctest 文件合并为一个测试以节省测试时间;由 Guillaume Gomez 负责。
请查看 完整列表!(请随意查看,但看完后记得回来!)
如何跟踪进度
随着今年的进展,我们将定期发布博客文章,汇总各项目标的进展情况。如果您想查看更多详细信息,可以查看 rust-lang/rust-project-goals 仓库中的 2024h2 里程碑,其中每个目标都有跟踪问题。每个问题都分配给了该特定目标的 负责人。您可以订阅问题以接收定期更新,或者监控 rust-lang Zulip 上的 #project-goals 频道。随着时间的推移,我们可能会创建其他方式来跟进,例如在 rust-lang.org 上创建一个页面以可视化进展(如果您想帮助实现这一点,请联系 @nikomatsakis,谢谢!)。
值得提前声明:我们并不指望所有这些目标都能完成。其中许多是由志愿者提出和负责的,而事情不总是按计划进行是正常且可以预期的。如果某个目标似乎停滞不前,我们可以寻找新的负责人,或者在下一个目标规划周期中重新考虑该目标。
我们如何选择项目目标
每个项目目标最初都是作为 rust-lang/rust-project-goals 仓库中的 PR 提出。当每个 PR 提交后,这些目标都会与团队进行讨论。这一过程有时会导致对目标进行修改,或者将较大的目标拆分为