初探 Rust 2026 项目目标:66 个目标、6 大旗舰主题与全年路线图
本文是对 Rust 官方 Inside Rust 博客《First look at 2026 Project goals》及其配套 RFC 草案的完整中文解读。作者为 Niko Matsakis,代表 Goals 团队发布于 2026 年 2 月 3 日。
内容结构概览
- 背景:项目目标机制的演变
- RFC 草案已发布,正式征求反馈
- 六大旗舰主题详解
- Beyond the
&:让智能指针像引用一样自然 - Unblocking dormant traits:解锁沉睡的 trait
- Constify all the things:全面 const 化
- Higher-level Rust:更高层次的 Rust
- Secure your supply chain:保障供应链安全
- Building blocks:基础设施积木
- Beyond the
- 流程时间线:从草案到正式公告
- 66 个目标全览(按规模分类)
- 大型目标(Large):16 项
- 中型目标(Medium):30 项
- 小型目标(Small):20 项
- 常见问题解答
- 为什么是"2026 目标"而不是"2026H1 目标"?
- 目标还可以提交吗?
- 是否有资金支持?
- 什么是"旗舰主题"?
- Small / Medium / Large 请求分别意味着什么?
- 什么是团队 Champion?
- "项目目标"名称的含义
- 如何参与
一、背景:项目目标机制的演变
Rust 项目目标计划(Project Goals)是 Rust 社区近年来建立的一套机制,用于明确声明项目在特定时间段内重点推进的工作,并为这些工作匹配"所有者"(owner,负责做事的人)和"团队"(team,负责接受和支持这项工作的人)。
本次发布的是2026 年度项目目标的第一稿 RFC 草案,与以往半年一次的节奏不同,这次计划以全年为周期运作。目标机制也在持续完善,加入了"旗舰主题"(Flagship Theme)这一新概念,为更长远的技术方向提供高层次的叙事框架。
二、RFC 草案已发布,正式征求反馈
Goals 团队已发布 2026 项目目标 RFC 草案的第一稿,内容包括迄今为止提交的所有目标提案,以及候选的旗舰主题列表。
作为第一稿,其目的是征集反馈、激发讨论。如果你有疑问或意见,欢迎在 Zulip 的 #project-goals/2026-workshop 频道中开启话题。
Goals 团队希望收到以下方面的反馈:
- 对任何目标向你所在团队发出请求,是否有顾虑?(例如认为这个目标方向不好,或你的团队没有能力支持它)
- 各目标中的"Team Asks"是否合理?规模是否应该调整?
- 对"旗舰主题"有何看法?是否有其他主题方向的想法?是否愿意担任某个主题的联系人(point of contact),负责追踪整体进展并起草定期更新博文?
- 是否有你想推进的工作,认为可以作为一个目标,或与现有主题契合?(如果资金是障碍,也许可以获得支持!)
三、六大旗舰主题详解
旗舰主题是跨越多个目标周期的长期努力方向,每个主题代表对 Rust 未来走向的一种愿景,并配有 2026 年度的具体里程碑。以下逐一介绍。
1. Beyond the&:让智能指针像引用一样自然
Rust 的引用(&和&mut)非常符合人体工学,但对于Arc、Pin、自定义智能指针等类型来说,用法往往要繁琐得多。这一主题致力于弥合这一差距,让智能指针拥有接近原生引用的使用体验。
2026 年关键里程碑:
- Field Projections 的实验性支持:允许通过智能指针直接访问其包裹类型的字段,而无需手动解引用或编写样板代码。
- Reborrow traits 的推进:通过引入显式的 reborrow trait,让自定义指针类型能够像
&T那样参与借用检查,支持更自然的临时借用语义。 - In-place initialization 的设计对齐:为在智能指针中直接构造对象(无需先在栈上构造再移动)提供语言层面的支持,对 Linux 内核等场景尤为重要。
2. Unblocking dormant traits:解锁沉睡的 trait
Rust 中有一些 trait 和类型系统特性长期处于"沉睡"状态,无法稳定或演进,根本原因在于底层 trait solver 的局限性,以及缺乏必要的类型系统基础设施。这一主题旨在系统性地解决这些阻碍。
2026 年关键里程碑:
- 稳定下一代 trait solver:新版 trait solver(基于 next-generation solver)将带来更正确、更强大、更可预测的类型推断和 trait 解析能力,是解锁众多沉睡特性的前提。
- 稳定 Sized 层次结构:通过引入更精细的 Sized 层次(包括对
?Sized、dyn以及可扩展向量等的改进),使之前无法正确表达的类型关系得以建模。
3. Constify all the things:全面 const 化
将更多计算提前到编译期是 Rust 性能与表达能力的重要组成部分。这一主题推动const能力在语言的各个层面得到全面扩展和完善。
2026 年关键里程碑:
- 稳定 const generics 的扩展:完整的 const generics 支持(Full Const Generics)将允许在泛型参数中使用更复杂的常量表达式,包括对 struct 和关联常量的支持。
- prototype reflection:探索编译期类型内省(reflection)和 comptime 求值的原型,为 Rust 未来的元编程能力奠定基础。
4. Higher-level Rust:更高层次的 Rust
这一主题关注降低 Rust 的使用门槛,提升日常开发体验,让 Rust 能更自然地用于脚本、工具和应用级开发,而不仅仅是系统编程场景。
2026 年关键里程碑:
- 稳定 cargo-script:允许在单个
.rs文件的开头直接声明依赖,无需创建完整的 Cargo 项目即可运行含依赖的 Rust 脚本,大幅降低一次性工具和脚本的编写门槛。 - prototype the Share trait(即 Ergonomic ref-counting):探索让引用计数(
Arc/Rc)更符合人体工学的语言机制,减少.clone()噪音,使共享所有权的代码更加简洁。
5. Secure your supply chain:保障供应链安全
随着 Rust 在安全敏感领域(内核、嵌入式、云基础设施)的广泛应用,供应链安全变得愈发重要。这一主题致力于为 Rust 生态提供更强大的供应链安全工具。
2026 年关键里程碑:
- 稳定 public/private dependencies:允许 crate 显式声明哪些依赖是公开 API 的一部分,哪些仅用于内部实现,从而帮助工具链检测意外的 API 泄漏。
- 稳定 SBOM 支持:为 Cargo 添加软件物料清单(Software Bill of Materials)的生成能力,使项目能够系统化地追踪和审计其依赖树中的所有组件。
6. Building blocks:基础设施积木
这一主题聚焦于让 Rust 的工具链和构建系统在复杂、大型工程场景中更具可组合性和可集成性,为 Rust 进入更多工业级场景打下基础。
2026 年关键里程碑:
- build-std 的设计推进:允许用户以自定义编译选项重新构建标准库(如启用特定优化或目标特性),对嵌入式和裸机场景尤为关键。
- cargo plumbing 命令原型:探索一组底层 Cargo "管道"命令,使 Cargo 能够更方便地被集成到 Bazel、CMake 等外部构建系统中,而无需绕过 Cargo 的核心逻辑。
四、流程时间线
本轮项目目标的推进按月推进,各阶段如下:
- 一月(已完成):征集目标提案,撰写第一稿草案。
- 二月(进行中):公开征求反馈,完善 RFC 文本。
- 三月:正式开放 RFC,推动合并。RFC 需获得所有在目标中有"Team Ask"的团队负责人的批准。
- 四月:正式公告 2026 项目目标。
五、66 个目标全览
本次草案共包含66 个目标,按团队投入规模分为大型(Large)、中型(Medium)、小型(Small)三类。以下按分类逐一列举。
大型目标(Large)——共 16 项
大型目标需要整个团队深度参与,包括设计会议、复杂 RFC 的审查与推进等。
| 目标 | 负责人 | 核心团队 |
|---|---|---|
| Arbitrary Self Types(任意 Self 类型) | Ding Xiang Fei | types、lang、libs-api 等 |
| build-std(标准库自定义构建) | David Wood | cargo、compiler、libs 等 |
| Full Const Generics(完整 const 泛型) | Boxy | lang、types |
| Const Traits(const trait) | Deadbeef | lang、types |
| Architectural groundwork for expansion-time evaluation(展开期求值架构基础) | Oliver Scherer | compiler、types |
| Field Projections(字段投影) | Benno Lossin | lang、compiler、types、libs 等 |
| Evolving the standard library API across editions(跨 edition 演进标准库 API) | Amanieu d’Antras | edition、libs-api、compiler 等 |
| MIR move elimination(MIR 移动消除) | Amanieu d’Antras | opsem、compiler |
| Immobile types and guaranteed destructors(不可移动类型与确定性析构) | Jack Huey | lang、types |
| Stabilize the next-generation trait solver(稳定下一代 trait solver) | lcnr | types、lang |
| Promoting Parallel Front End(推进并行前端) | Sparrow Li | wg-parallel-rustc、compiler |
| Stabilize and model Polonius Alpha(稳定并建模 Polonius Alpha) | Rémy Rakic | types |
Redesigningsuper let:Flexible Temporary Lifetime Extension(重新设计super let:灵活的临时值生命周期扩展) | dianne | lang、compiler |
| reflection and comptime(反射与编译期求值) | Oliver Scherer | lang、compiler、libs-api |
Normative Documentation for SoundunsafeRust(健全 unsafe Rust 的规范性文档) | Pete LeVasseur | opsem、lang、libs-api |
| Design, model, and implement a stabilizable-subset of specialization(设计并实现可稳定化的 specialization 子集) | Jack Huey | types、lang、libs |
| Stabilize FLS Release Cadence(稳定 FLS 发布节奏) | Pete LeVasseur | fls、spec |
中型目标(Medium)——共 30 项
中型目标需要来自团队的一名 Champion 提供专项支持,但不需要整个团队深度介入。
| 目标 | 负责人 |
|---|---|
| Box notation for dyn async trait(dyn async trait 的 Box 表示法) | Niko Matsakis |
| Assumptions on Binders(Binder 上的假设条件) | Boxy |
| Async Future Memory Optimisation(异步 Future 内存优化) | Ding Xiang Fei |
| Async statemachine optimisation(异步状态机优化) | Dion Dokter |
| BorrowSanitizer(借用检查器 Sanitizer) | Ian McCormack |
| Cargo cross workspace cache(Cargo 跨 workspace 缓存) | Ross Sullivan |
| Dictionary Passing Style Experiment(字典传递风格实验) | Nadrieril |
| Ergonomic ref-counting(人体工学引用计数) | (寻找负责人) |
| Experimental language specification(实验性语言规范) | Jack Huey |
| High-Level ML optimizations(高层 ML 优化) | Manuel Drehwald |
Improverustc_codegen_craneliftperformance(改进 Cranelift 代码生成后端性能) | bjorn3 |
| In-place initialization(原地初始化) | Alice Ryhl |
| Incremental Systems Rethought(增量编译系统重构) | Alejandra González |
Declarative (macro_rules!) macro improvements(声明式宏改进) | Josh Triplett |
| Control over Drop semantics(Drop 语义控制) | Jayan Sunil |
| Implement and Maintain MC/DC Coverage Support(MC/DC 覆盖率支持) | Dorian Péron |
| Implement Verifiable Mirroring Prototype(可验证镜像原型实现) | walterhpearce |
| Open Enums(开放枚举) | Alyssa Haroldsen |
| Nightly support for function overloading in FFI bindings(FFI 绑定中函数重载的 nightly 支持) | Devin Jeanpierre |
| Continue Experimentation with Pin Ergonomics(继续 Pin 人体工学实验) | Frank King |
| Stabilize public/private dependencies(稳定公开/私有依赖) | (寻找负责人) |
| Reborrow traits(重新借用 trait) | Aapo Alasuutari |
| Prepare TAIT + RTN for stabilization(为 TAIT + RTN 稳定化做准备) | (寻找负责人) |
| Stabilize Rust for Linux compiler features(稳定 Rust for Linux 编译器特性) | Tomas Sedovic |
| Sized Hierarchy and Scalable Vectors(Sized 层次结构与可扩展向量) | David Wood |
| Stabilize MemorySanitizer and ThreadSanitizer Support(稳定 MSan/TSan 支持) | Jakob Koschel |
| Stabilize Cargo SBOM precursor(稳定 Cargo SBOM 前驱特性) | (寻找负责人) |
| Stabilize the Try trait(稳定 Try trait) | Tyler Mandry |
Implement Supertraitauto impl(实现 Supertrait auto impl) | Ding Xiang Fei |
Explicit tail calls &loop_match(显式尾调用与loop_match) | Folkert de Vries |
| Wasm Components(Wasm 组件模型支持) | Yoshua Wuyts |
小型目标(Small)——共 20 项
小型目标通过标准团队流程处理,不需要专人专项支持。
| 目标 | 负责人 |
|---|---|
| Expanding a-mir-formality to work better as a Rust type system spec(扩展 a-mir-formality 作为类型系统规范) | Jack Huey |
| AArch64 Pointer Authentication using pauthtest target(AArch64 指针认证) | Jakub Chlanda |
| Stabilize Cargo’s linting system(稳定 Cargo lint 系统) | Ed Page |
| Prototype a new set of Cargo “plumbing” commands(Cargo 管道命令原型) | (寻找负责人) |
| Stabilize cargo-script(稳定 cargo-script) | Ed Page |
Continue resolvingcargo-semver-checksblockers(推进 cargo-semver-checks 合入 cargo) | Predrag Gruevski |
| Improving Unsafe Code Documentation in std(改进标准库 unsafe 文档) | XU Hui |
| Interactive cargo-tree: TUI for dependency graph(cargo-tree 交互式 TUI) | Orhun Parmaksız |
| C++/Rust Interop Problem Space Mapping(C++/Rust 互操作问题空间映射) | teor |
| libc 1.0 release readiness(libc 1.0 发布准备) | Yuki Okushi |
| Finish the libtest json output experiment(完成 libtest JSON 输出实验) | (寻找负责人) |
| Implement Open Rust Namespace Support(开放命名空间支持实现) | (寻找负责人) |
| Establish a Spot for Safety-Critical Lints in Clippy(在 Clippy 中为安全关键 lint 建立专区) | Pete LeVasseur |
Stabilize never type (!)(稳定 never 类型) | waffle |
Stabilizingf16(稳定 f16 类型) | Folkert de Vries |
| Type System Documentation(类型系统文档) | Boxy |
| Stabilize Unsafe Fields(稳定 unsafe 字段) | Jack Wrenn |
| Establish a User Research Team(建立用户研究团队) | Niko Matsakis |
六、常见问题解答
为什么说"2026 目标"而不是"2026H1 目标"?
项目目标的节奏从每半年一次调整为每年一次。目标计划聚焦于规模较大、需要较长时间推进的工作。
团队成员可以在年中新增目标,但要求届时已有 Champion 和团队对目标方向的基本共识。
还可以提交目标吗?
可以,目标全年均可提交。但对于二月及之后提交的目标,要求提交时已有 Champion,并已获得相关团队的初步认可。当然,作为某个团队的成员,你可以为自己所在团队的目标担任 Champion。
是否有资金支持?
有。团队正在与潜在赞助方就项目目标及 Champion 的资助事宜进行商议。如果有意向,可以在 Zulip 上联系 nikomatsakis 进一步沟通。
什么是"旗舰主题"?
旗舰主题的设计初衷是:对于只有有限时间关注 Rust 进展的人,它能提供一个高层次的视角,了解项目在大方向上的走势。这些主题的时间跨度往往超过一年(例如"Beyond the&"代表一个多年期的技术演进计划)。
目标是:每个旗舰主题都有一名联系人(point of contact),负责持有愿景、回答外部问题,并参与起草定期进展博文。
可以提出新的旗舰主题吗?
可以,截止日期为 2 月 14 日(情人节)。可以使用FLAGSHIP_TEMPLATE.md提交 PR。
如果只是对现有主题提出修改意见,或愿意担任某个主题的联系人,可以在#project-goals/2026-workshop中联系。
Small / Medium / Large 请求分别意味着什么?
这三个级别用于描述一个目标需要从各团队获取的支持规模,帮助各团队避免过度承诺。
- Vibes:快速检验一个想法是否值得深入探索,是否适合未来带着更成熟方案来找团队。
- Small(小型):团队只需做常规性的小型 review 和操作。典型场景:添加一个 lint,涉及单个 PR。
- Medium(中型):需要一名团队成员提供专项支持,协助探索设计或特性,其他团队成员小范围参与。典型场景:早期阶段的实验,或需要多个 PR 才能完成的任务。
- Large(大型):需要整个团队围绕设计或特性达成共识。典型场景:RFC、稳定化决策,或需要广泛团队共识的事项。
以下是一些具体规则参考(以 lang + compiler 为例):
| 任务 | lang | compiler |
|---|---|---|
| 添加一个 lint | Small | Small |
| 落地复杂的编译器变更 | — | Medium |
| 推进早期语言实验 | Medium | Medium |
| 接受一个语言 RFC | Large | Medium |
| 稳定一个语言特性 | Large | Medium |
| 审查并稳定微妙的引用变更 | Large | — |
| 重构编译器增量系统 | — | Large |
什么是团队 Champion?
团队 Champion 是指同意以个人身份为目标 owner 提供持续支持的团队成员。Champion 通常每周或每两周与 owner 进行一次会面,帮助提供设计指导,指引 owner 找到团队内更合适的人获取进一步信息,并负责代表 owner 在团队内部回答关于该目标的问题。
作为某个团队的成员,你可以为自己的目标担任 Champion。
"项目目标"这个名称的含义
项目目标(Project Goal)是以下两方之间的一个协议:
- Owner(所有者):负责完成具体工作的人;
- Team(团队):愿意接受并支持这项工作的团队。
Owner 可以是 Rust 团队成员,也可以是项目外部的贡献者。唯有"相关团队认可该目标"这一条件成立,它才能成为 Rust 的项目目标。这也是"项目目标"中"项目"二字的含义所在——它代表整个 Rust 项目对这项工作的背书。
七、如何参与
如果你:
- 对某个目标有疑问或想法,欢迎在 #project-goals/2026-workshop 频道发起讨论。
- 想提交新目标,现在仍然来得及,只需提前找好 Champion 并与相关团队取得初步共识。
- 想提出或完善旗舰主题,参见上方"可以提出新的旗舰主题吗?"一节,截止日期为 2 月 14 日。
- 需要资金支持,可在 Zulip 上联系 nikomatsakis。
完整草案可在 rust-lang.github.io/rust-project-goals/2026/ 查阅。
原文作者:Niko Matsakis,代表 Goals 团队发布。原文链接:https://blog.rust-lang.org/inside-rust/2026/02/03/first-look-at-2026-project-goals/
