【Rust日报】2026-08-23 Rust Glancer:内存占用低于 100MB 的语言服务器

💡 原文中文,约2100字,阅读约需5分钟。
📝

内容提要

本文介绍四个Rust项目:Rust Glancer是低内存语言服务器,冻结分析结果至文件系统;Zellij 0.45新增嵌套会话和Kitty图形协议;Thermite通过GitHub Actions实现浏览器编译服务;Enki用安全Rust统一CPU/GPU内核编写。各项目均处于早期或实验阶段,提供LSP、终端复用、远程构建及并行计算能力。

🔎

延伸解读

Rust Glancer 的设计取舍

Rust Glancer 通过冻结分析结果到文件系统来降低内存占用,与 rust-analyzer 常驻内存的增量查询路径不同。这种设计在编辑器重启后能复用索引,但可能牺牲实时性。项目仍处早期,功能未齐,适合关注内存敏感场景的开发者试用,但需注意其已知问题。

Zellij 0.45 的实用更新

Zellij 0.45 新增嵌套会话支持,方便在多层终端中管理会话;Kitty 图形协议让图片显示更流畅,且支持滚动缩放。移动端 Web UI 和 PWA 安装提升了远程操作的便利性。这些更新增强了终端复用器的灵活性和用户体验,适合频繁使用终端多路复用的开发者。

Thermite 的构建模式与限制

Thermite 利用 GitHub Actions 作为编译后端,用户通过浏览器触发构建,产物以 artifact 形式发布。这种模式免去了本地环境配置,但依赖 GitHub 账户和 Actions 配额,且每次构建对应一次 commit,可能产生较多仓库记录。适合轻量级、交叉编译需求,但需注意公共仓库的可见性。

Enki 的现状与局限

Enki 旨在用安全 Rust 统一 CPU/GPU 内核编写,通过 LLVM bitcode 和 SPIR-V 实现 JIT 编译。目前处于研究阶段,不支持动态堆分配、dyn Trait 和无界递归,且未上架 crates.io。适合对 GPU 并行计算感兴趣的开发者探索,但生产环境使用尚不成熟。

Q&A

Rust Glancer 是什么?它如何实现低内存占用?

Rust Glancer 是一个面向低内存占用的 Rust 语言服务器,目标是在常见规模工程中将常驻内存压到 100MB 以下。它采用冻结分析结果的方式:工作区索引一次后把结果落到文件系统,查询时再按需加载,从而避免像 rust-analyzer 那样将状态常驻内存。

Rust Glancer 目前支持哪些 LSP 功能?

Rust Glancer 已覆盖完整索引流水线、类型推断、基于 chalk 的 trait solver,以及 goto definition、hover、inlay hints、补全等常见 LSP 能力。

Zellij 0.45 新增了哪些主要特性?

Zellij 0.45 新增了嵌套会话、Kitty 图形协议、移动端 Web UI 以及若干插件 API 更新。嵌套会话支持在 Zellij 内运行 Zellij,并提供控制内层会话的模式;Kitty 图形协议支持在 pane 中显示图片;移动端 Web UI 支持 PWA 安装;默认 UI 改为更轻的 title frame,并支持按命令滚动。

Thermite 是如何实现基于 GitHub 的 Rust 编译服务的?

Thermite 是一个基于浏览器的 Rust 构建服务,前端为静态 GitHub Pages 站点,实际编译运行在用户自己的 GitHub Actions runner 上。用户通过 GitHub 登录后选择工具链、目标平台和源码,触发一次 pour,系统会准备一个 public 仓库,提交源码并触发 Actions 工作流构建,产物作为 artifact/release 发布。

Enki 项目的主要目标是什么?它如何实现 CPU 和 GPU 的统一编程?

Enki 是一个实验性 Rust GPU 并行项目,目标是让计算内核用标准安全 Rust 编写,并在 CPU 与 GPU 上共用同一套源码。它通过 #[kernel] 属性将函数同时映射到 CPU 和 GPU 执行路径,构建时 rustc 产出 LLVM bitcode,首次执行时由 Parsu 提取 kernel 并 JIT 生成 SPIR-V,再由 Anu 基于 Vulkan 处理执行。

Enki 当前有哪些限制?

Enki 当前定位为本地研究阶段的 compute 向 PoC,尚未上架 crates.io;内核内不支持动态堆分配、dyn Trait 与无界递归,完整图形管线仍在规划中。

🏷️

标签

➡️

继续阅读