< 返回版块

Mike Tang 发表于 2026-07-09 09:09

Bun 重写转向 Rust:不是追新,而是拿编译期约束去解决运行时与手动内存混用的稳定性债

Bun 这篇文章真正值得 Rust 社区关注的,不只是“一个知名 Zig 项目改写成 Rust”这种标题效应,而是它把为什么要重写讲得非常具体。Bun 现在每月 CLI 下载量已经超过 2200 万次,产品面又横跨运行时、包管理、测试、Node API、HTTP/WebSocket 等多个层面;在这种规模下,团队过去一直在和 use-after-free、double-free、漏释放、异常路径清理不完整这类问题拉扯。文章里列出的 bug 清单很长,但核心结论很简单:他们不想再靠一次次补洞来维持稳定,而是想用语言层面的约束把这类问题系统性压下去。

这也是 Bun 选择 Rust 而不是继续靠风格约束、homegrown smart pointer 或单纯加强 review 的原因。文中反复强调,对 Bun 这种同时要处理垃圾回收对象和手动管理内存的项目来说,“什么时候释放、谁负责释放、是否只释放一次” 不能只靠经验和 code review 兜底;在 safe Rust 里,这类问题很多直接会变成编译错误。换句话说,这不是一次为了“换个更流行语言”而做的重写,而是一次把稳定性反馈前移到编译期的工程决策。

更有传播性的地方在于,它还顺手展示了另一层现实:Bun 团队用大规模工作流和测试体系推动这次迁移,但最后真正支撑决策的,仍然是 Rust 在资源生命周期建模上的确定性。对 Rust 社区来说,这次重写更像是一张来自超大体量运行时项目的“稳定性投票”,说明当系统复杂度和用户规模都上来后,Rust 的价值依然会越来越硬。

原文链接:https://bun.com/blog/bun-in-rust 参考链接:https://www.reddit.com/r/rust/comments/1ur8ca1/rewriting_bun_in_rust/

broadsheet 开源:把算法讲解视频做成“时间纯函数”的 Rust 动画引擎

今天 r/rust 上最容易让人眼前一亮的项目之一,是 broadsheet 这个专门面向算法 / 数据结构讲解视频的 Rust 动画引擎。它的切口并不是“我要做另一个通用动画工具”或者“Rust 版 After Effects”,而是非常克制地盯住技术讲解场景:节点、数组、代码块、箭头、镜头移动、路径描边、typewriter 文本这些解释器材,能不能被一套可编程、可复现的 DSL 高效组织起来。

这个项目最漂亮的设计点,是作者把整条时间线定义成 scene_at_time = f(base_scene, timeline, t)。也就是说,每一帧都是绝对时间 t 的纯函数,播放器不需要从前一帧一路模拟到后一帧,暂停、拖动、逐帧检查、离线渲染都直接落到同一套求值路径上。这种“无状态时间线”思路很 Rust:把场景、轨道、求值和导出拆成清晰的数据变换边界,再让类型系统帮你把这些边界固定住。

它的价值不只在美观,而在可复现的技术内容生产。作者已经给出 seq!par!stagger 这类组合原语,内建 circles / cells / code blocks / arrows / camera-aware page rendering,还直接打通 ffmpeg 导出、GIF、PNG、marker JSON 等路径。对做技术讲解、课程内容、系统设计演示的人来说,这不只是一个炫酷 demo,更像是一个正在形成产品形态的内容基础设施雏形。

原文链接:https://khushal.net/blog/broadsheet-rust-animation-engine/ 项目地址:https://github.com/SK1PPR/broadsheet

RootAsRole 4.0 发布:Rust 重写三年后,这个 sudo/doas 替代品继续把权限边界做细

RootAsRole 4.0 这次更新的看点,不只是版本号跳到了大版本,而是它继续沿着“把权限委派边界做得更细”这条路往前走。项目本身是一个基于 RBAC 的 Linux 权限委派工具,可以把它理解成 sudo / su 的替代路线;作者在 Reddit 里回顾时提到,项目三年前完成 Rust 重写后,后续又把策略格式从 XML 转到了 JSON,并持续优化策略评估与执行模型。

4.0 里比较关键的两个新增点,一个是工作目录约束:某些命令只能在指定工作目录下执行;另一个是目录式策略配置:允许把策略拆成目录下的多个文件,方便做按用户审计和更清晰的组织方式。更重要的是,作者没有把这版描述成“加了几个 feature”,而是顺着执行模型继续往下改:新的 rar-exec crate 把程序执行方式从更接近 doas 的模型,转向更像 sudo 那样带中介进程的执行 / 转发 / 过滤思路,强调的是更强的控制面和安全性。

这类项目在 Rust 生态里的意义很直接:它不是做一层表面 CLI 包装,而是在碰真正敏感的系统权限边界。与此同时,4.0 还顺手完成了 Rust 2024 edition 升级、依赖整理、更严格的 Clippy 策略和 AI 使用透明度文档。把这些放在一起看,RootAsRole 4.0 更像是一个安全工具项目在工程成熟度、策略表达力和治理透明度上的同步升级

原文链接:https://github.com/LeChatP/RootAsRole/releases/tag/v4.0.0 参考链接:https://www.reddit.com/r/rust/comments/1ur3fab/three_years_after_rewriting_rootasrole_in_rust/

Linux 内核里的 Rust 增长图谱出炉:349 个 .rs 文件、9.3 万 SLOC,驱动与抽象层一起变厚

今天另一个很适合进日报的点,是有人把 Rust 在 Linux 内核主线里的增长情况 做成了一个按版本展开的量化观察站。这个站点不是泛泛而谈“Rust 正在进入内核”,而是直接按版本去数 .rs 文件、SLOC、注释行数、目录类别和驱动子系统,让你能看到 6.12 到 7.1 之间 Rust 代码到底是怎么长起来的。对经常关注 “Rust for Linux 到底走到哪了” 的人来说,这比单条新闻更有持续参考价值。

截至最新快照 7.1.3,站点给出的数字是 349 个 Rust 源文件、93,245 行 SLOC、4.6 MiB 代码体积、13 个用途类别、6 个已出货 Rust 驱动子系统。更有意思的是,它把增长拆成了两条叙事:一条是内核自己的 Rust 抽象层、生产驱动和配套基础设施在稳定扩张;另一条则是 6.19 那次比较剧烈的抬升,主要来自内核把 synquoteproc-macro2 等过程宏依赖整批 vendoring 进树里。也就是说,Rust 在内核里的存在感,已经不是“有几个试验性驱动”那么简单,而是在工具链、宏系统、抽象层和驱动层同时变厚。

如果再看子系统分布,会发现 GPU/DRM、Android binder 等方向已经积累了相当可观的 Rust 代码量。这条信息最有价值的地方在于,它让“Rust for Linux”从理念讨论变成了可测量、可追踪的工程现实。当 Rust 在主线内核里可以被按版本做增长分析时,说明它已经进入了一个真正值得长期跟踪的阶段。

原文链接:https://rusted-kernel.com/ 参考链接:https://www.reddit.com/r/rust/comments/1ura8xu/rust_proliferation_in_the_linux_kernel/

评论区

写评论

还没有评论

1 共 0 条评论, 1 页