Cloudflare 用 Rust 移植 TypeScript
tsrs 是 TypeScript 7 类型检查器的 Rust 移植,仓库在 https://github.com/oxc-project/tsrs ,许可证 Apache-2.0。Cloudflare 2026 年 10 月 20 日发文介绍。Taymon 同日把它发到 r/rust,采集时 98 分、63 条评论。采集时 GitHub 有 1090 个 star,最近推送时间是 2026 年 10 月 21 日。
文章写,Cloudflare、VoidZero 和 Owner.com 的 Max Schwenk 一起做这个移植,并和 TypeScript 团队合作。项目放在 Oxc 工具链里孵化。文章写,语言设计和方向仍由 TypeScript 团队决定,tsrs 按上游实现保持兼容。
文章写,类型检查 worker 数量相同时,tsrs 比 TypeScript 7.0 最多快 8 倍,内存大约少 70%。文章写,TypeScript 7.1 beta 比 TypeScript 7.0 最多快 2.5 倍,其中一部分优化从 tsrs 回到了上游。仓库 bench/RESULTS.md 的 --checkers 4 表让两边都用 4 个 checker 线程,对照 typescript@7.0.2 和更后面的 7.1-dev 移植。这张表里 mui-docs 是 12.69 秒对 1.07 秒,vscode 是 10.94 秒对 2.21 秒。机器是 Depot CI 的 16 vCPU。仓库写,tsrs 移植的提交晚于 7.0.2,部分项目的报错条数不同,是因为中间 TypeScript 本身有变化。
安装命令是 npm install tsrs,然后 npx tsrs。仓库写,当前对齐 microsoft/TypeScript 主分支,稳定版目标是 TypeScript 7.1 上的完全一致。--init 和 --showConfig 还不支持。诊断输出顺序和上游还有差别。WebAssembly 包是 @tsrs/wasm,目标 wasm32-wasip1。浏览器 playground 在 https://tsrs-playground.void.app 。
文章写,接下来会和 Theo Browne 把 tsc-rs 并进 tsrs,仓库在 https://github.com/pingdotgg/ts-rust ,用来补上 LSP。维护方式比照 Vinext,用代理对照上游差异。性能改进会尝试回馈 TypeScript 的 Go 实现。
评论里 Taymon(31 分)写,项目由外部发起,现已交给 VoidZero,放进 oxc,目标是行为和上游 TypeScript 一致。Taymon(15 分)写,内部 arena 把分配出的引用标成 'static,接口没有标 unsafe。
原文链接:https://blog.cloudflare.com/typescript-rust-port/
Rust UI 布局库对照表
Are we layout yet? 是一个对照 Rust UI 布局库功能和性能的网站,地址是 https://arewelayoutyet.mespin.me/ ,源码在 https://github.com/marc2332/arewelayoutyet 。作者 mkenzo_8 2026 年 10 月 20 日把它发到 r/rust,采集时 56 分、15 条评论。作者也是 Torin 的作者。站点基准生成日期是 2026 年 10 月 20 日(UTC)。采集时仓库有 2 个 star,最近推送时间是 2026 年 10 月 20 日。
站点列入 Taffy、Morphorm、Torin、yoga-rs、ui-layout、clay-rs、Ply、Backer。功能对照包括布局模型、换行、尺寸、间距、约束、宽高比、自定义内容测量和像素网格取整。性能部分用从 Taffy 基准改来的 PanGUI 负载,每天跑一次。README 写,不同引擎的布局语义不同,缺结果表示适配器翻不过那个负载,计时不表示输出等价,也不表示总排名。文本测量目前不在对照里。
评论里 nicoburns(7 分)写,这组对比里 Taffy 最慢,但仍比驱动 React Native 的 Yoga 快。作者回复,Taffy 是这组里最快的 CSS 兼容布局库。另一条评论建议加入 backer,作者回复已经加上。
原文链接:https://arewelayoutyet.mespin.me/
Rusteerio 把 Cheerio 移植到 Rust
Rusteerio 是 Cheerio 的 Rust 移植,做成 JavaScript 侧的直接替换,仓库在 https://github.com/context-dot-dev/rusteerio ,许可证 MIT。Context.dev 发文介绍。TerrificMist 2026 年 10 月 21 日把它发到 r/rust,采集时 14 分、0 条评论。采集时 GitHub 有 36 个 star,仓库创建和最近推送都在 2026 年 10 月 16 日。
文章写,解析、选择器、修改和序列化在 Rust 里跑,JavaScript API 保持不变,目标行为是 Cheerio 1.2.0。兼容测试通过全部 777 个上游 Cheerio 测试,没有改原来的断言和夹具,也没有新增跳过。文章写,这次移植在一天以内完成,LLM 花费大约 1000 美元。
一组基准在 1 个 CPU 上解析并抽取 3000 个 Common Crawl 页面。三次 Linux 虚拟机的中位数:Rusteerio 1.1.6 每秒 364 页,Cheerio 1.2.0 每秒 92 页。机器是 AMD Ryzen 9 9950X,16 vCPU,32 GB 内存,Ubuntu 24.04,Node 24.18.1,测试钉在 1 个 CPU。另一组 5000 页流水线做解析、抽元数据和链接、遍历 DOM、去掉 script 和 style,再返回文本和序列化 HTML。Cheerio 用了 22.5 秒,Rusteerio 用了 10.2 秒。这组用 8 vCPU、16 GB 内存,同样不含网络抓取。文章写当前版本是 2.0.0,上面两组数字对应的是文中列出的 1.1.6。
安装命令是 npm install rusteerio。需要 Node.js 20.19 或更新。预编译二进制覆盖 macOS、Linux 和 Windows。
原文链接:https://www.context.dev/blog/introducing-rusteerio
Par 加上 SQL、WebSocket 和自动清理
Par 是用 Rust 实现的实验性并发编程语言,仓库在 https://github.com/par-team/par-lang ,许可证 MIT,网站是 https://par.run/ 。作者 faiface 2026 年 10 月 20 日在 r/rust 写了大约半年的更新,采集时 15 分、11 条评论。采集时 GitHub 有 808 个 star,最近推送时间是 2026 年 10 月 19 日。
标准库新增 Sql 和 WebSocket。Sql 覆盖 PostgreSQL、MySQL 和 SQLite,包括内存库、事务和行解码。WebSocket 同时有服务端和客户端。自动清理允许在类型上标出线性值被丢弃时要调用的方法。Bytes.Writer 的 .close 分支带 *,未使用时按 .close 丢弃。
三个大例子都是带网页的 HTTP 服务,目录在 https://github.com/par-team/par-lang/tree/main/examples 。Chat 用 WebSocket 做单房间聊天。Downloader 把文件下到本机并显示进度,多个文件可以同时下,也可以取消。Tasks 把待办存在 SQLite。
作者写,自己的非正式测试里,I/O 密集应用大约比半年前快 3 倍,计算密集大约快 6 倍,还没有严格基准。作者还写,私有测试里大约到 Python 3.12 的水平,不含 Python 里用 C 写的函数和库。其他更新包括 @core/Time、@core 里 120 多个新函数、编译期 include("file.txt")、todo 类型洞,以及 . 补全。
评论里 Shnatsel(2 分)写,Rust 的 Writer 在 Drop 时隐式 flush,失败时错误会丢掉。作者回复,Par 里可以手动 close,那时能拿到错误。
原文链接:https://www.reddit.com/r/rust/comments/1xax7w7/par_lang_update_3_big_examples_autocleanup_sql/
From Rust中文社区 Mike
社区学习交流平台订阅:
评论区
写评论还没有评论