
Rust Forward 2025 的议程正式发布了。这次它作为 COSCon25 的同场活动出现消息一放出来我身边几个写 Rust 的群聊立刻就热闹起来了。回头想想这几年我参加的线上线下的技术论坛不算少Rust 相关的专场也从最初“要不要用”的讨论慢慢变成了“怎么用好”的经验分享。这份议程就是这种转变的一个标本。先把背景说清楚COSCon25 是国内开源圈的年度聚会Rust Forward 2025 是其中专门聚焦 Rust 生态的专题场次跟大会同期同地举办。按往年这类活动的常规结构议程一般会把编译器、云原生、WebAssembly、嵌入式、AI 基础设施、工具链这些方向集中到一两天里让不同背景的人都能找到对应的场次。如果你正在写 Rust、在评估要不要把 Rust 引入团队、或者纯粹想知道这门语言眼下到底被用在哪些正经场景这份议程特别值得逐行过一遍。我不打算在这里逐条复述议程里的标题更想聊聊议程背后那些没说出来的信息Rust 生态现在究竟到了哪个阶段、哪些方向正在攒劲、一个普通开发者怎么从这份议程里挖到对自己有用的东西。下文对议程方向的解读结合了我历年参加同类活动的经验具体仍以官方最终发布为准但思路和判断可以放心参考。1. 一场议程发布为什么值得单独写一篇1.1 Rust Forward 2025 是什么为什么和 COSCon 放在一起Rust Forward 这个名字懂行的人一眼就能看出它不是那种“科普向”的大路货而是留给 Rust 实践者的专场。放在 COSCon 这个以开源社区和项目生态见长的会议上逻辑也很顺Rust 本身就是一门高度依赖生态和社区的语言没有 crates 仓库里那几十万个库它的生产力会大打折扣。一个只讲语言语法、不讲生态的 Rust 会议价值至少要砍一半。所以当议程发布时我关注的第一件事就是它的内容结构有没有真实项目的落地复盘有没有工具链方向的硬核分享有没有跨语言协作、编译期优化这类“不上手根本聊不出来”的话题。如果这些占了大多数说明这场会是真的站在工程一线如果只是泛泛地介绍“Rust 是什么、有什么优点”那它就更像一场推广活动。从目前释放的方向来看前者的比重明显更高这是好事。1.2 议程发布这个动作本身透露了三个信号第一Rust 的讨论重心已经从“语言特性”转向了“工程化”。前几年大家聊得最多的是所有权、生命周期这些入门门槛现在议程里大量出现的是性能优化、运行时选型、大规模团队协作、跨语言 FFI 这些话题。门槛依旧在但大家已经开始习惯它并且开始解决门槛后面的成本问题。第二Rust 正在成为“基础设施语言”。不是那种写完一个网站就完事的业务语言而是被用在数据库、网络框架、嵌入式固件、AI 推理链路、浏览器引擎、游戏引擎这些“不想出问题”的地方。议程里如果这类分享多了说明产业界已经把它当成一个严肃的底层选择。第三开源社区开始主动整理 Rust 的“最佳实践”。Rust 给人的印象一直是“自由但残酷”编译器会拦着不让你犯错但一旦放飞自我代码照样能写成一团乱麻。社区的成熟标志就是有人开始系统性地总结“什么场景该怎样写”“哪些库值得信任”“哪些坑我们替你踩过了”。1.3 三类人最应该关注这份议程正在做技术选型的开发者你不用每场都听重点挑与你的业务领域对应的场次比如做云原生的关注服务端与运行时做前端的关注 WebAssembly做硬件的关注嵌入式。团队里负责技术管理的同学判断 Rust 是否值得投入最好的方式不是看文档而是看同行踩完坑之后的复盘。刚学完 Rust 基础的新手你可能写不出什么大型项目但可以从一场高质量会议里建立起“这门语言实际解决什么问题”的坐标系之后的学习会轻松很多。2. 从议程看 Rust 生态的四个热区2.1 内存安全从“加分项”变成了“默认要求”要说 Rust 最出圈的特质还是内存安全。但很多人对这个词的理解还停留在“没有空指针、没有内存泄漏”这种层面实际上它带来的变化要深远得多。一个常见的类比是装修水电C 和 C 允许你自己拉电线、自己接水管效率和自由度最高但任何一根线接错了都可能着火而 Rust 的编译器像是一个严格到苛刻的监理它在开工前就检查每根线的接法不符合规范的直接不让通电。代价是你必须按规矩来好处是验收之后基本不会再出线路事故。这就是为什么 Rust 会被大量用在数据面、存储引擎、网络中间件这些“出一次事故就是大事故”的系统里。议程里如果有人分享“我们如何把一个长期内存泄漏的服务用 Rust 重写”核心包袱绝对不是“Rust 语法真优雅”而是“我们用所有权模型重新设计了数据流让不可能出问题这件事变得可证明”。这个思维方式比语言本身更值得学习。2.2 WebAssembly把 Rust 的能力边界推出浏览器Rust 和 WebAssembly 的搭配是近几年生态里增长肉眼可见的方向。早期大家觉得 WebAssembly 就是“在浏览器里跑 C/Rust 代码”让前端做图像处理、视频编解码这些重活但现在它的价值已经远远溢出浏览器的边界。服务端插件系统是典型场景。过去要给一个应用写插件常用方案是嵌入 Lua 或者别的脚本语言好处是灵活坏处是性能和隔离性都一般。现在不少团队改成把插件编译成 WebAssembly 模块宿主程序通过一个沙箱安全地执行插件代码既保证了隔离性能还远超脚本方案。你可以想象成把每个插件的代码装进一个独立的透明盒子里盒子里的动作互相看不见但业务方还能自由地往里塞新逻辑。议程里涉及 WebAssembly 的分享建议重点听两个细节第一是宿主运行时怎么选不同运行时在启动速度、内存占用、支持特性上差异很大第二是 host function 的设计也就是宿主如何向 Wasm 模块暴露能力这里面的接口设计直接决定插件生态好用与否。这才是真正值回票价的干货。2.3 云原生与服务端性能和安全的双重担当服务端可能是 Rust 在工业界落地最广的方向。做网络代理、API 网关、消息队列、对象存储、时序数据库的团队这几年陆续有人在关键组件上用 Rust 重写思路出奇一致用尽量少的机器扛住尽量大的流量同时把内存安全的问题从“运行时排查”变成“编译期杜绝”。Rust 在服务端的异步模型是绕不开的话题。很多从 Go 转过来的人第一次接触 Rust 异步编程都会懵同样是 async/awaitRust 的写法和心智负担明显更重。这里面的根本原因是类型系统Rust 要求编译器能在编译期证明“这个异步任务可以安全地跨线程移动”这带来更高的安全性也带来了更陡的学习曲线。这也是为什么议程里异步运行时的分享总是有人满为患。选哪个运行时、底层 IO 怎么调度、怎么处理任务取消、怎么规避跨 await 的锁光靠看官方文档容易走弯路。听有实战经验的团队讲一遍再对照自己的代码改一遍效果比自己啃半个月源码好得多。2.4 嵌入式与 AI 基础设施no_std 之外的蓝海很多人不知道Rust 在“没有操作系统”的地方其实特别活跃。嵌入式领域里 no_std 环境没有堆分配、没有标准库这让不少语言直接出局而 Rust 依靠受限的库子集照样能写出高效代码再加上编译期检查掉内存错误对固件开发来说是实打实的减负。AI 基础设施这几年也冒出不少 Rust 身影主要集中在几个不太显眼但极其重要的位置数据预处理、推理引擎的算子实现、模型格式的解析转换、CLI 工具链。这些环节的共同特点是性能敏感、容易出内存问题、不适合用 Python 直接扛于是 Rust 成了很自然的补位选项。我建议关注 AI 方向议程的时候别只盯着“大模型有多厉害”多留意那些“把 Python 生态和 Rust 性能接起来”的分享。比如做一个 Python 可以调用、但核心计算都在 Rust 里完成的库既保住了生态便利性又把热点路径的性能提了上去这种工程智慧在其他领域同样适用。3. 议程里最值得逐字听的内容类型3.1 所有权与借用它逼着你重新设计架构很多新手学 Rust 卡在最前面的所有权规则上觉得是编译器在找麻烦。但如果你真在一个项目里被 borrow checker 教育过几周你会慢慢意识到它不是在限制你而是在逼你把“这个数据到底归谁管、这个引用到底能活多久”想清楚。几乎所有架构混乱的 C/C 程序根源都是数据所有权不清。谁负责释放、谁可以修改、引用被存到了不该存的地方这些在运行时才暴露的问题在 Rust 里直接变成编译错误。所以一个用 Rust 写成的服务哪怕代码写得不那么漂亮它的数据流边界往往也是清晰的。听这类分享时我特别推荐关注演讲者如何处理“共享可变状态”。现实项目里总有多个模块要同时改一份数据Rust 的标准答案是锁、原子操作或者消息传递。好的分享会告诉你什么时候用锁、什么时候该把数据复制一份、什么时候用 actor 模型把共享变成通信。这些决策不是语法问题是真正的架构判断。3.2 async/awaitRust 的异步为什么比别的语言“重”但凡在 Rust 里写过网络服务多少都会碰到 async 的坎。同样写一个并发请求Go 里 goroutine 开就完了Rust 里却要考虑 Send 约束、生命周期、pin 这些概念。很多人的第一反应是“Rust 怎么这么麻烦”但麻烦是有回报的你的异步代码在编译期就被验证了线程安全性不会出现数据竞争这种调试起来极其痛苦的 bug。会议里 async 相关的分享通常会讲到几个实操点Future 的内部状态机是怎么生成的、async 块里的引用怎么跨 await 保存、无锁数据结构在单线程 runtime 里的奇效。这些内容听起来偏底层实际上对写业务代码也很有用。举个例子很多人以为 async 就是“开线程”其实单线程异步运行时配合非阻塞 IO在 IO 密集场景下就能发挥很好根本没多线程什么事。另外一个值得记的教训是不要在异步代码里做阻塞操作。曾经有一个服务因为在 async 函数里调用了一个同步的加解密库结果某个高负载时段把所有事件循环线程全部卡住线上延迟直接拉满。这种问题用工具能查出来但最好的办法是从一开始就在代码审查环节立规矩。3.3 宏与编译期能力让编译器帮你写代码Rust 的宏系统算是它的隐藏大杀器。声明式宏可以帮你消除重复代码过程宏更是能让你写出“看起来不像 Rust 的 Rust”比如被各大库广泛使用的派生宏就是在编译期自动生成序列化和反序列化代码的典型例子。用生活化的方式理解宏相当于给编译器配了一个代码生成工厂。你写一小段声明工厂在后台吭哧吭哧生成一大堆实现代码编译进来以后和手写的一模一样。这不仅省事关键是生成代码的逻辑统一不容易出现两个地方实现不一致的“复制粘贴后改漏了”问题。议程里如果有过程宏的实战分享我建议哪怕听不懂也要去感受一下思路。你不需要马上自己写宏但理解了“编译期可以做这么多事”再看很多库的源码就会恍然大悟那些妖艳的 API 背后都是同一套机制。3.4 工具链与工程质量cargo 之外的隐形护城河Rust 常被夸“工具链好用”这确实是它的核心竞争力之一。包管理和构建一体化意味着新成员拉下代码之后几乎不用折腾环境格式化工具统一了代码风格静态检查工具能提前发现大量潜在问题效果和评审制度配合起来尤其明显。不过工具链也有它自己的学问。交叉编译是最典型的痛点给不同目标平台编译二进制时链接器的配置、工具链的安装、系统依赖的处理每一项都可能让新手卡上一整天。还有编译速度项目一大增量编译的时间会肉眼可见地变长这时候就需要合理拆分 crate、控制依赖数量、用好编译缓存。这类分享的高价值内容往往是那些“写在文档角落里的经验”。比如某个构建参数在什么版本才可用、某个 linter 规则误报率太高建议关掉、某个依赖一升级就带来两倍编译时间增长。这些细节单一拿出来都不起眼组合起来却是团队效率的隐形分水岭。4. 参加技术会议的高效姿势4.1 拿到议程之后的“预读清单”我见过太多人参加会议就是“人到现场听个响”回来什么也不记得。想从 Rust Forward 2025 这种密度很高的活动里拿到东西准备工作得提前做。拿到议程后先把有兴趣的议题对应到具体项目和仓库花一晚上浏览一遍源码结构、README 和最近的 issue 讨论。这样做的好处是现场听的时候演讲者讲到任何细节你都有上下文能跟上他省略掉的铺垫散场后提问时你也能直接问出“我在 XX 场景下遇到 XX 问题你们是怎么处理的”这种高质量问题而不是问“能不能再说一遍”。我的习惯是给每场想听的分享准备三到五个问题写在一个小本子上。听的过程里如果问题被覆盖了就划掉没覆盖的留着交流环节问。这个方法听起来笨但实测比随意听要有效得多。4.2 现场笔记要记“决策”而不是“结论”技术分享最容易被记录错的东西是结论本身。演讲者说“我们用 Rust 重写了模块性能提升三倍”这句话其实没有信息量怎么做到的才是信息量。我推荐的笔记方法是对每个分享只记三件事。第一是背景约束比如团队人数、系统规模、历史包袱第二是取舍决策比如为什么选 A 方案而不是 B 方案权衡了哪些指标第三是踩坑记录哪个环节花了最长时间如果重来一次会怎么做。这三件事组合起来才构成一个可以复用到你自己项目里的案例。至于那些 PPT 上的架构图、性能对比表不用急着拍大多数演讲者会后会把材料公开真正值钱的是他在台上用嘴说出来的那些“题外话”。4.3 会后 72 小时的转化窗口参会收获在脑子里留存的衰减速度非常快不想白去就得在散会后的两三天内完成转化。我的做法是当天晚上用半小时把笔记整理成一篇个人总结不用发给谁纯自己看目的是把散点信息串成线。第二天挑一个最感兴趣的议题把对应的项目源码拉下来跑一遍 demo遇到问题就照着笔记里的思路改。第三天把没解决的问题整理成 issue 或者讨论帖发出去通常会有演讲者本人或者其他参会者在社区回复。这套流程走完一份会议笔记就变成了一个或几个自己动手验证过的知识。比起收藏一堆链接这种转化方式带来的成长要扎实得多。5. 从“听会”到“干活”Rust 项目落地的实操笔记5.1 先判断这个场景真的需要 Rust 吗会议听得热血沸腾回来就想把整个系统重写成 Rust这种冲动我太理解了但冷静下来Rust 不是所有场景的最优解。它的核心优势是性能、内存安全和强类型可靠性为此付出的代价是开发效率和学习成本。如果团队规模小、业务以业务逻辑迭代为主、性能瓶颈不突出那么选择一门开发效率更高的语言可能更合适。反过来如果业务里有明确的性能热点、对稳定性要求极高、或者已经吃够了 C/C 内存问题的苦Rust 才是值得认真评估的对象。一个实用的判断标准是看“问题最痛的地方在哪里”。如果痛点是迭代慢Rust 帮不上忙如果痛点是线上内存泄漏和段错误Rust 几乎是量身定制的解法。5.2 团队引入的节奏与配套决定引入 Rust 之后最忌讳的是“全员大迁移”式的激进方案。我见过比较稳妥的路线是先用一个边界清晰、性能敏感、风险可控的模块做试点比如一个数据校验服务、一个协议解析库、一个 CLI 工具。团队里挑一两个自驱力强的同学主攻其他人保持观望。试点上线之后要做两件事。一是建立代码审查清单重点查 unsafe 的使用、错误处理、异步陷阱这几个高频问题二是沉淀内部文档把团队踩过的坑、约定俗成的写法、依赖选型标准记录下来。Rust 的代码风格自由度其实很高没有团队规范的话三个月后的代码就会展现出多种风格并存的状态。工具链配置也值得在第一天就做好。统一格式化规则、开启主要 linter、在 CI 里跑测试和静态检查、配置好交叉编译环境这些前期投入很快就能在代码评审和问题排查上回本。5.3 高频踩坑与排查心得速查我根据自己做过的项目和听过的分享整理了一份 Rust 项目最常见问题的速查表仅供参考常见问题典型表现排查思路与对策编译时间过长一次全量编译几分钟起拆分 crate 减少“一点动全身”审视依赖树去掉用一两个函数就引入的大库用好增量编译缓存borrow checker 反复报错同一处代码改了四五遍先别硬改停下来画数据归属图考虑把数据拆成更小的结构或用内部可变性模式如加锁/原子。必要时重构所有权设计async 代码中做了阻塞调用高负载时延迟突刺检查热点路径是否出现同步 IO、加解密、耗时计算换成异步版本或丢到独立线程池unsafe 引入内存问题偶发崩溃、难以复现用工具定位如地址检测类工具尽可能缩小 unsafe 范围最好封装成安全接口并写压力测试交叉编译失败链接阶段报系统库缺失确定目标平台工具链优先编译静态链接版本把构建环境固定为容器或 CI 模板新版本升级带来破坏性变更依赖升级后接口报错更新前先看 changelog用锁文件管理版本大版本升级单独用分支做兼容测试这张表覆盖的只是入门阶段的集中痛点。议事日程里那些“大规模项目维护”的分享基本就是围绕这些痛点展开的深度版听完回来再对照实践体会完全不同。5.4 一条可复制的学习路径如果你听完会议决定正式入门 Rust我建议别按大部头书从第一章啃到最后一章而是走“最小闭环”路线。第一步用两周把所有权、借用、生命周期这三块硬骨头啃下来配合小型练习题目标是不看答案能写出编译通过、逻辑正确的代码。第二步选一个真实的小工具作为练手项目比如一个命令行版文件批量重命名工具、一个简单的静态网站生成器、一个 Redis 协议的迷你客户端。做完一个就算过了“会说”的阶段。第三步把练手项目部署到真实环境跑起来加上测试、格式化、静态检查、CI体验完整工程链路。这一步是很多人忽略但收益极高的。第四步去读一个自己天天在用的库的源码从入口函数开始把一条调用链读完理解别人是怎么组织代码的。之后再回看会议笔记你会发现当初听不懂的地方突然通了。6. 我在这一类会议里学到的最后几件事这几年参加大大小小的技术会议我最深的感触是会议最大的价值不是“学到新知识”而是“校准优先级”。你一个人闷头写代码的时候容易把精力花在一些其实并不重要的细节上但当你在一个会场里同时听到十几个团队解决不同问题的路径你会很快判断出什么才是这个阶段值得投入的方向。Rust Forward 2025 放在 COSCon 的大背景下其实也是这个作用。它替所有关注 Rust 的人做了一次生态扫描哪些方向已经成熟到可以写复盘哪些方向还在早期需要勇气。哪怕你最后一场都不去现场把议程里的题目挨个搜一遍相关项目也能得到一份很不错的行业脉络图。最后分享一个我自己的小习惯参加完这种会议我会特意挑一个议程里没覆盖的“边角领域”花一个周末做个小的尝试。比如所有人都聊服务端和嵌入式的时候我就去折腾一个桌面端小工具大家都在卷性能优化的时候我就去看测试和文档的完善程度。这种“反着来”的补位经常能打开意想不到的视角。希望这次 Rust Forward 2025 也能给你带来一个值得动手折腾的新方向。