Deno 团队加入 Cloudflare
Deno 是 JavaScript/TypeScript 运行时,仓库是 denoland/deno。Deno 官方博客宣布,整个 Deno 团队加入 Cloudflare。
博客写明,Deno 运行时还会再支持一年,每月发布包含 bug 修复和安全更新。一年之后,Deno 团队结束对 Deno 运行时的开发。Deno 保持开源,其他人可以继续开发。Deno Deploy 继续运行六个月后关闭。付费客户迁到 Cloudflare Workers 时会得到迁移支持。JSR 继续运行,基础设施迁到 Cloudflare。rusty_v8 会继续维护,并推进接入 workerd。后续开发放到 Cloudflare Workers、Durable Objects 和 celld 这条共享平台上。作者 Ryan Dahl 的联系邮箱改为 ry@cloudflare.com。Cloudflare 侧的联合说明在 https://blog.cloudflare.com/deno-joins-cloudflare 。
原文链接:https://deno.com/blog/cloudflare
Zeta 发布借用检查模型
Zeta 是 Eyad Amr 在做的编程语言,仓库是 zeta-lang/zeta。2026-10-09 作者发布了借用检查模型说明。作者写到,模型已经在最新的编译器、LSP 和工具链管理器 zetaup 里实现,Zed 扩展还在开发。
模型有三种引用:&mut、不可变引用和 &alias。基础规则仍是共享与可变互斥。不相交证明允许同时取出 list.get_mut(0) 和 list.get_mut(1):编译器看 get_mut 的地址公式,下标不同就判定地址不同。证明来源包括常量、循环下标、运行时守卫和算术。unsafe 断言 $compiler_assert 还没在编译器里实现。同一下标两次 get_mut 会报错。作者记录 NLL 已经实现,没有实际使用的借用会被擦掉。函数参数可以写成多位置引用,例如 Vec3f.{&mut x, &mut y, &z},标明哪些字段可写、哪些只读。
&alias 允许对同一数据持有多个可变别名。它不提供 noalias。默认不能跨线程共享,除非 T 实现 Send 和 Sync。&alias 与 &mut、不可变引用互斥。集合扩容使旧分配失效后,指向旧分配的 &alias 不能再使用。作者写明这个模型很难直接贡献回 Rust,转成 Rust 或 Rust MIR 的编译器也做不到。
原文链接:https://gist.github.com/FlameyosSnowy/a49a35ba006238be55d8c3e410c31061
Kalem:一个二进制编辑 Org 和 LaTeX
Kalem 是一个 Rust 编辑器,仓库 getkalem/kalem,许可证是 MIT 或 Apache-2.0。它在同一个二进制里打开 Org、Markdown、LaTeX、CSV、PDF、图片和 Excel。文件本身不转换,也不整篇重写,只保存改过的部分。窗口版用 gpui,依赖 crates.io 上的 gpui-unofficial。终端版用 ratatui 和 crossterm。当前是 alpha,作者称已在日常使用。
工程是 24 个 crate,加上测试大约 30 万行 Rust,工具链是 Rust 1.96,打成一个二进制。Org 和 LaTeX 有各自的增量解析器。Markdown 用 comrak 的一个 fork。插件是 Wasm 组件,跑在 wasmtime 49 上,带内存和时间预算。PDF、图片和工作簿查看器本身也是这类组件,按 SHA-256 固定并嵌入。语言插件目前有 Elixir 和它的 language server,Rust 还在做。和 Zed 共用 gpui,仓库独立。
校验包括 Org 和 LaTeX 的字节级往返属性测试,以及 4 个 fuzz target。Org 树和 Emacs org-element 逐节点对比。编辑命令对照 Emacs 的 15800 个用例,928 张表逐字段重算。Markdown 覆盖 CommonMark 0.31.2 和 GFM 0.29 的全部例子,对照 cmark-gfm。LaTeX 渲染视图测了 925 篇 arXiv 论文,正文里留下源码的比例不到 0.1%。测试函数 1344 个,另有 191 个 async 和 gpui 测试。CI 限制完整二进制不超过 81 MiB,仅终端版不超过 42.5 MiB。
100 MB 纯文本在终端 135 毫秒内可交互,窗口版 430 毫秒,按键中位数 2.7 毫秒。1 MB LaTeX 论文解析 32 毫秒,按键重解析段落 0.64 毫秒。10 MB Markdown 的按键是 10 毫秒。发布用 cargo-dist,覆盖 macOS、Linux 和 Windows。手册在 https://getkalem.github.io/kalem 。
原文链接:https://github.com/getkalem/kalem
skeptic 0.14:文档代码块测试提速
skeptic 是把 Markdown 里的 Rust 代码块变成测试的库。0.14.0 已发到 crates.io。Rust Cookbook 用它在 CI 里检查示例。0.13 在 rustc 1.77 之后失效:编译器元数据指纹变化后,确定性选择 rlib 不再正确。
0.14 支持 Cargo 1.77 及以后的依赖查找,以及 build/<pkg>/<hash>/ 目录布局。测试提取从按页大小的平方时间改成线性。rustc 设置每个进程只解析一次,代码片段跑在有上限的 worker 池上,环境变量是 SKEPTIC_JOBS。缓存文件从 bincode 换成 JSON,旧缓存会重建。依赖缓存复用前会检查每个 rlib 是否还在,写入用临时文件再改名。同一版本有多份构建时,按有多少其他单元对着它编译来选择,新鲜度只用于打破平局。MSRV 是 1.85。依赖里去掉了 once_cell、num_cpus 和 semver。一个 panic 的片段不再把后面的测试挂住。
作者用 divan 和 CodSpeed 测生成阶段。单页 1000 个代码块,未修改版本 1.1 秒,0.14 是 2.4 毫秒。行号以前对每个 markdown 事件都从文件头数换行,现在只从上一块代码块接着数。冷启动:无依赖从 123 毫秒降到 83 毫秒,12 个依赖从 420 毫秒降到 238 毫秒,同一 crate 的两个版本从 200 毫秒降到 106 毫秒,8 成员 workspace 从 351 毫秒降到 146 毫秒。热路径基本没变,compile_test 从 77 毫秒到 76 毫秒,run_test 从 466 毫秒到 459 毫秒。Rust Cookbook 的 225 个片段可以通过。完整 cargo test --test skeptic 在作者机器上大约 57 秒,Cookbook 原来钉住的 fork 是 297 秒。
原文链接:https://andygauge.github.io/2026/10/09/rust-skeptic-0-14.html
From Rust中文社区 Mike
社区学习交流平台订阅:
评论区
写评论还没有评论