Rust 日报 · 2026-08-02
重要新闻
-
chrono 和 chrono-tz 即将停止维护,维护者推荐切到 jiff — 维护者 djc 在 issue 里把话挑明了:API 设计太老,重构代价太大,接下来几个月他会逐步停掉 chrono 和 chrono-tz 的维护,明确建议用
jiff。如果有人愿意接手,他可以酌情移交,但得他点头。对还在用这两个 crate 的项目,迁移只是早晚的事。 -
ST 开始在 crates.io 上发官方 Rust 传感器驱动 — 意法半导体给自家大批传感器推官方 Rust 驱动,直接把内存安全摆在第一位:RAII、所有权机制,不用 GC 就能防 buffer overflow 和 use-after-free。他们也说这不是要取代既有 C 生态,是补充。顺带提了 Embassy STM32 这类 HAL,以后嵌入式 Rust 对 ST 芯片的支持大概率会更“正统”。
-
Servo 0.4.0 发布,一个月 558 个 PR,SharedWorker、媒体查询大批落地 — Servo 0.4.0 把六月所有改动打包,单月 558 个 PR,比四月 534、五月 391 都高,直接创了记录。新加的特性有:实验性
attr()、calc()惰性解析、@font-face里的font-feature-settings,以及@media下的一堆查询(height、aspect-ratio、orientation、pointer、hover)。DOM 这块补了 SharedWorker、console.dir()、customElementRegistry初始化。现在外部贡献者也能参与写月度进展。
版本与发布
-
Xberg v1.0 发布,支持 101 种文档格式、367 种代码与数据格式 — Xberg 是 Kreuzberg 的继任,定位是内容智能引擎,能把文档、代码、数据、音视频、URL 都提取并预处理,供下游消费。官方说单实例吞吐很猛。v1.0 算是从实验室进入稳定阶段了。
-
Rux v0.4:纯 Rust UI 语言,现在 CSS 不再是玩具,能直接在浏览器跑 — Rux 用 taffy 布局、vello 渲染。这一版补了伪类、自定义属性(
var())和@media,样式表终于不是摆设。新增的开发者叠加层能在文件出错时提示,不再是白屏。还加上了完整的无障碍树。整个运行时编译到 Wasm,在线 playground 可以直接体验。 -
Sniffnet 四周年:一个用 Rust 写的网络监控工具成了 GitHub 上最流行的之一 — Sniffnet 纯粹用 Rust 开发。作者发了篇纪念博客,回顾项目怎么从一个“要不要做个 GUI”的念头走到现在。
-
Suprnova:受 Laravel 启发的 Rust 全栈框架放出文档站 — Suprnova 集成了 InertiaJS,前端可以用 React、Vue 或 Svelte,后端是那种“电池已装好”的框架。作者说他已经用它搭了好几个应用和一个在跑的 SaaS。文档站刚上线两天。
新工具与库
-
Syncular:离线优先的 SQL 同步,Rust / TypeScript 双核心实现 — 核心思路:每个客户端都跑一个真实的本地 SQLite 库(浏览器用 OPFS,原生端用 rusqlite),写入走乐观出站队列,服务端做唯一真相。项目是 spec-first 开发,Rust 和 TypeScript 两个核靠一致性测试严格对齐。Rust 核通过 C-ABI FFI 暴露,已经用在 Tauri、React Native、Swift、Kotlin 等绑定里;TS 核基于
@sqlite.org/sqlite-wasm,服务端支持 SQLite、Postgres、D1。测试策略值得一看——内存回环传输、故障注入、禁绝睡眠轮询。 -
QuantWave:一套 Rust 核心打出 Python 量化轮子加 WASM,批处理和流式结果严格一致 — 技术分析与回测引擎,所有指标都实现了流式
Nexttrait。用 proptest 保证了批处理路径(基于 Polars 表达式)和流式路径的结果比特级一致,省去重复的数学逻辑。Python 绑定走 PyO3 的 abi3 模式,一个 wheel 兼容 CPython 3.9 以上;纯数学核还能交叉编译到 WASM,在浏览器里直接回测。 -
Open OneNote Viewer:在 Linux 上用 Rust 看 OneNote 笔记 — 作者攒了十几年 OneNote 笔记,微软一直没出原生 Linux 客户端。他靠这个 Rust 项目,不用再守着 Windows 虚拟机或额外小 PC,直接就能在 Linux 桌面上查看内容。
-
Episko:给 Claude Code 终端会话搭个集中驾驶舱 — 作者用 Claude Code 时被一堆散落的终端窗口搞烦了,就用 Rust 写了个集中管理 Claude Code 会话的工具。目前只支持 Claude Code,团队内部已在日常使用并持续开发。
-
Papr:终端里的论文搜索、阅读、管理与写作 TUI 工具 — 全 Rust 构建的终端学术助手,主面板有每日随机论文推荐、阅读队列、书签、笔记和统计。可以从 arXiv 按标题、作者、DOI 或关键词搜索论文,内置 PDF 阅读靠 ratatui-image 在终端里渲染,还支持 Markdown 笔记。作者把它看成更偏论文场景的 Obsidian 替代品。
深度阅读与技术讨论
-
.boxed()代价实测,附带一个只做Box::pin的微型 crate — 作者测了futures::FutureExt::boxed()的真实开销:不仅做了Box::pin,还把类型擦除了,返回BoxFuture,每次 poll 都走动态派发,编译器没法内联。文章比较了Box::pin和.boxed()的性能差距,然后发了个微型 crateboxpin,用法是async { 42 }.pinned(),只干Box::pin的活,不擦类型。 -
为什么 Casper 分叉了 rand crate — 作者觉得 Rust 生态默认的
randcrate 日常操作太不友好:方法散在RngExt、IndexedRandom、SliceRandom多个 trait 上,IDE 补全基本帮不上忙,你得提前知道哪个方法归哪个 trait、用在哪个类型上。他分叉出urandom,把所有高层操作集中到一个Random包装结构,uniform、choose、shuffle这些方法都是固有方法,不用再去导入扩展 trait。文章把这种单一入口的 API 设计观点讲得很清楚。 -
一种老派的 Rust 命令行参数解析思路 — 作者有一个明确的观点:CLI 工具的行为应该融入目标操作系统,而不是迁就实现语言的习惯。他看不惯 Rust 社区几乎默认
clap的做法,觉得工具最终应该像 coreutils 那样让 Unix 用户觉得得体。文章从getopts出发,给出一套小框架级别的包装方式,兼顾 Rust 的工程便利和 Unix 传统的参数风格。 -
跨线程、无共享状态的消息通道该叫 IPC 吗? — 一个涉及 Rust 和 Python 交互的架构讨论:作者把异步 runtime 放在独立 OS 线程里,Python 解释器线程和它之间没有共享内存,只用通道传命令。他为这个名字犹豫了一下,帖子里引出了不少关于“进程间 vs 线程间”边界的辨析。
-
ATRVASA:用 Rust 搞零拷贝 eBPF 防火墙与可观测性代理 — 作者是系统工程师,设计 ATRVASA 因为传统网络监控工具从内核态往用户态拷贝数据包带来的 CPU 开销和上下文切换延迟,在 10G/40G 以上高吞吐场景下尤其要命。团队发了初始架构 RFC,想听听社区的反馈。
-
一本面向 Rust + ESP32 的实践指南:从闪烁 LED 到 Wi-Fi 服务器 — 书名《impl Rust for ESP32》,算是官方 Rust on ESP Book 的延伸。全书走项目驱动路线,从 PWM 控 LED、OLED 显示屏、超声波测距、光敏照明、舵机,一直做到 Wi-Fi 应用、蓝牙通信、RFID 门禁、SD 卡存储、红外人体检测。适合翻完官方书以后想往真实固件开发再走一步的人。