Topcoat 0.9:全栈 Rust Web 框架推进服务端交互
Topcoat 是 tokio-rs 下的 batteries-included 全栈 Rust Web 框架,包含视图、组件、mailer,以及 ORM Toasty 等。约两月前由 Carl Lerche 与 Julien 首次公布;本次博客介绍近期进展,并发布 Topcoat v0.9。
框架默认偏向服务端渲染,同时用 client-side signals 与可转译为 JavaScript 的类型检查运行时表达式,在浏览器侧处理点击、加载态等无需整页往返的交互。为支持结构级 UI 变化,引入 shard:依赖信号参数变化时在服务端重渲染局部 markup,再把 HTML 回传并 morph,尽量保留焦点与输入状态。0.8 起可在服务端渲染路径中直接读取 signal,由框架追踪依赖并只刷新相关片段。
0.9 加强 live! / emit!:除初始加载的 streaming SSR / suspense 外,支持经 WebSocket 的 server-push,可在长连接上持续推送 UI 更新(例如聊天消息列表)。Toasty 方面补充 update! 宏(单次更新可写字段赋值与 increment() 一类表达式)、#[document] 文档字段(PostgreSQL JSONB 过滤示例),以及 polymorphic relations 等能力。
原文链接:https://tokio.rs/blog/2026-09-24-topcoat-server-applications
matklad:用生成式测试在 regex 里找 bug
作者 matklad 讨论生成式(随机)测试相对示例单元测试发现 bug 的效率,并以旧版 regex crate 为案例写复现过程。目标 bug 是:对模式 .abb|b 与输入 zabb,错误版本会先匹配到 b,而正确匹配应是整段 zabb。
方法核心是 oracle:对同一 API,生成随机正则与输入,交叉比对 regex 与 regex_lite 的结果。生成侧强调短而结构化的用例,而不是超大随机串:先固定候选字母表,再对每次迭代随机抽取子集(swarm testing),字符串长度也取较小随机范围,并跨迭代复用缓冲区。正则生成同样对 |、*、.、字面量等特性赋权重后抽样。
作者强调:即便已知 bug 可被 fuzzer 命中,把“漏掉该 bug”视为 fuzzer 自身缺陷并补强生成策略,再写修复与单元测试,是防御纵深的一部分。文中未在最新版 regex 中再找到该问题,但在旧版本上除目标 bug 外还发现了另一处不一致。
原文链接:https://matklad.github.io/2026/09/19/finding-bugs.html
csveee:单次遍历的高速并行 CSV 解析
作者基于 VLDB 论文与演讲介绍 csveee:面向真实 CSV 的解析器。单线程约比常见 csv crate 快约 3 倍;在多核服务器上可接近约 200 GB/s,相对 csv 约 256x。动机是:经典 iterator 接口在并行场景下往往需要“先完整解析再处理”的两遍扫描,大文件吞吐容易被限制在约一半内存带宽。
并行难点在于引号内也可出现换行,不能简单按 \n 切块。已有策略包括并行数引号、多状态机投机、模式探测等,各有额外扫描或对怪异文件不稳的问题。csveee 利用用户声明的记录形态(字段数/类型等)对 chunk 做投机解析,直到边界落成期望形状;若后续证明假设错误则重解析。
接口把解析器“翻转”:用户提供 init / acc / merge 回调,在解析过程中完成聚合,而不是从 iterator 取出 record。字段模式用于约束记录形状;acc 返回错误(如类型转换失败)会触发换假设重解析。实现上配合 ring-buffered reader 做零拷贝记录构造与向量化 chunk 解析。论文 PDF:https://db.in.tum.de/~ellmann/papers/csveee.pdf
原文链接:https://www.reddit.com/r/rust/comments/1wp1esi/fast_csv_parsing_in_rust/
Maintainer spotlight:Alejandra González(@blyxyas)
Rust Content 团队继续发布维护者聚焦系列,本篇介绍 Alejandra González(@blyxyas)。她约四年前开始贡献 Rust,2023 年加入 Clippy 团队,主要维护 Clippy,并帮助新人上手;近期成为首批 Maintainers in Residence 之一。
访谈中她谈到经 Rustlings 与 The Book 学习 Rust,首个贡献是为 Clippy 增加误用 ^(XOR 而非幂运算)的 lint。Clippy 架构使多数 lint 可在单文件内理解,便于组合已有模式写新 lint。她提到 xFrednet 等 mentor 的引导,以及自己也在 mentor 新贡献者;当前还参与编译器 incremental 相关 Project Goal,希望减少无用重编译、提升 rustc 与 Clippy 性能。文中亦鼓励向 Rust Foundation Maintainers Fund 捐款支持维护者。
原文链接:https://blog.rust-lang.org/inside-rust/2026/09/21/maintainer-spotlight-alejandra-gonzalez-blyxyas/
From Rust中文社区 Mike
社区学习交流平台订阅:
评论区
写评论还没有评论