
Rust Glancer 是什么:比 rust-analyzer 省 100 倍内存的 Rust LSP 评测与上手指南
Rust Glancer 是什么?
Rust Glancer 是 2026 年 8 月 19 日正式公开的低内存 Rust LSP 语言服务器,由开发者 popzxc 历时 4 个月开发。它的核心卖点和 rust-analyzer 完全不同:不把整个工作区的分析数据常驻内存,而是"冻结"后卸载到文件系统,从而把空闲内存占用压到 100MB 以内——在大型项目上比 rust-analyzer 低一到两个数量级。
发布仅三天,它就获得了 rust-analyzer 原作者 matklad 的公开背书(原话是"incredibly cool"),Hacker News 帖子拿到 120+ 分,Reddit r/rust 社区 230+ 赞。对于长期被 rust-analyzer 吃掉几个 GB 甚至 13GB 内存的 Rust 开发者来说,这是 2026 年最值得关注的编辑器基础设施新项目。
先把最关键的事实说清楚:
- 内存目标 <100MB:中等规模项目空闲内存 100MB 以内,超大项目约 200-300MB;
- 重启零等待:索引结果存在磁盘上,重启编辑器后无需重新索引,几乎是"秒开";
- 取舍明确:查询响应比 rust-analyzer 慢(补全在几百毫秒级),只在保存文件时重新索引,proc macros 暂不支持;
- 主编辑器是 VS Code:官方扩展已上架 VS Code Marketplace,其他支持 LSP 的编辑器理论上可用;
- 开源免费:Apache-2.0 协议,GitHub 仓库 rust-glancer/rust-glancer。
一句话总结:如果你的电脑内存常年被 rust-analyzer 挤爆,或者你在一台 8GB 内存的老机器上写 Rust,Rust Glancer 值得立刻试;如果你重度依赖 proc macros 和极致补全速度,先观望。本文把它是什么、为什么省内存、和 rust-analyzer 怎么选、怎么装一次讲清。
Rust Glancer 核心信息速览
| 项目 | 内容 |
|---|---|
| 项目定位 | 低内存占用的 Rust LSP 语言服务器 |
| 开发者 | popzxc(GitHub ID 同名,自称 7 年 Rust 经验,参与过 rustc、clippy、rust-analyzer 生态) |
| 首次公开 | 2026 年 8 月 19 日(博客文章《Hello, world!》) |
| GitHub 仓库创建 | 2026 年 4 月 29 日(约 4 个月开发期) |
| 内存目标 | 空闲 <100MB(大项目 200-300MB) |
| 开源协议 | Apache-2.0 |
| 官方编辑器 | VS Code(扩展已上架 Marketplace) |
| 类型系统 | 类型推断 + trait solver(基于 chalk) |
| 已知短板 | proc macros 不支持、只在保存时索引、部分场景类型推断缺失 |
它解决什么问题:rust-analyzer 的内存痛点
要用好 Rust Glancer,得先理解它针对的痛点有多普遍。在 Reddit r/rust 和 rust-analyzer 的 GitHub issues 里,"内存"是常年霸榜的抱怨主题:
- rust-analyzer 官方仓库存在多个高热度内存 issue(如 #11325 Why does Rust Analyzer use so much RAM and CPU?、#20917 Excessive RAM usage、#13954 High memory usage);
- Rust 官方论坛有用户反馈 rust-analyzer 在大工作区吃掉 13GB 内存;
- Reddit 上《rust-analyzer is eating my memory》《rust-analyzer is absolutely murdering my laptop》这类帖子隔三差五就会出现。
为什么 rust-analyzer 内存这么高?项目作者在发布博文里给出了三条原因:
- Rust 工作区信息量天然巨大:几千个函数、结构体、trait 以及它们之间的关系都要索引,每个符号都占内存——这是 Rust 语言本身的复杂度决定的;
- salsa 增量数据库常驻内存:rust-analyzer 用 salsa 做惰性增量计算数据库,算过的数据全部留在 RAM 里,方便增量复用,但代价是内存只增不减;
- rowan 语法树全量驻留:语法树结构支持部分失效重解析,性能好,但整棵树都在内存里。
结果就是:工作区越大、依赖越多,rust-analyzer 的内存占用越高。在 16GB 内存的开发机上,开一个 IDE + rust-analyzer + 浏览器 + Docker,内存基本见底。这也是为什么"低配机写 Rust"一直是社区的老大难问题。
工作原理:冻结工作区,数据落盘
Rust Glancer 的思路和 rust-analyzer 相反,可以概括为"用空间换内存、用全量换增量":
- rust-analyzer:所有数据常驻内存,靠 salsa 增量按需重算。查询快,但内存占用持续保持在高位;
- Rust Glancer:索引用"急切"(eager)方式一次性全量做完,做完后把结果冻结(frozen workspace)并卸载到文件系统。查询时只把当前需要的那一小部分加载回内存。
这个设计带来两个直接收益:
空闲内存极低。索引完成后,内存里只留运行必需的少量数据。作者实测整个演示视频期间内存保持在 100MB 以下;在 8GB 内存的 MacBook Pro M1(2020 款)上体验"相当不错"——这台机器正是很多开发者被 rust-analyzer 折磨的典型配置。
重启即恢复。因为索引在磁盘上,只要你没改代码,重新打开编辑器时已索引的工作区几乎立即可用。而 rust-analyzer 每次重启都要重新跑一遍索引,大项目动辄等十几秒到几十秒。
作者在 Hacker News 上补充了一个容易被误解的点:Rust Glancer 在索引期间可能比 rust-analyzer 占用更多内存(因为它是非惰性的全量索引),但索引结束把数据落盘后,内存会掉下来。而 rust-analyzer 是"一直在高位"。另外,查询时按需加载的数据量也更小——项目可能有 1000+ 个依赖,但你当前查询往往只关心正在打开的这个文件。
Rust Glancer vs rust-analyzer:怎么选
这是大家最关心的问题。两者不是替代关系那么简单,而是不同架构路线的取舍:
| 对比维度 | Rust Glancer | rust-analyzer |
|---|---|---|
| 内存占用(空闲) | <100MB(大项目 200-300MB) | 数百 MB 到数 GB,大工作区可达 10GB+ |
| 重启后索引 | 磁盘直读,几乎瞬时 | 需要重新索引 |
| 查询响应速度 | 较慢但可接受(补全约几百毫秒级) | 快,增量计算 |
| 索引方式 | 全量急切索引,仅保存时触发 | 惰性增量,边用边算 |
| 未保存缓冲区分析 | 精度较低(只在保存时索引) | 精确(实时分析) |
| proc macros | 不支持 | 支持 |
| 类型推断 | 大部分场景可用,个别场景缺失 | 成熟完整 |
| 编辑器支持 | VS Code 为主,其他 LSP 编辑器理论可用 | 全生态(VS Code、Neovim、Emacs、JetBrains 等) |
| 项目成熟度 | 刚发布,功能不完整,有已知 bug | 多年打磨,事实标准 |
作者公布的索引时间基准(发布博文数据):
| 机器 | LSP | 基础索引(引擎可用) | 全量索引 |
|---|---|---|---|
| MacBook Pro M4 Max 36GB(2025) | Rust Glancer | 5 秒 | 8 秒 |
| MacBook Pro M4 Max 36GB(2025) | rust-analyzer | 6 秒 | 13 秒 |
| MacBook Pro M1 8GB(2020) | Rust Glancer | 6 秒 | 9 秒 |
| MacBook Pro M1 8GB(2020) | rust-analyzer | 7 秒 | 14 秒 |
可以看到冷启动索引并不吃亏,甚至略快;真正的差异在重启场景(Rust Glancer 免二次索引)和稳态内存(低一到两个数量级)。
选择建议:
- 选 Rust Glancer:8-16GB 内存的机器、经常同时开多个项目、在意编辑器启动速度、能接受补全稍慢、项目不依赖 proc macros;
- 选 rust-analyzer:32GB+ 大内存机器、依赖 proc macros 重度项目(serde、tauri 等生态)、对补全实时性敏感、需要完整类型推断覆盖。
两者也可以共存:它们理论上能同时运行不冲突(作者实测过),但同时跑两个 LSP 意义不大,官方文档建议装 Rust Glancer 时把 rust-analyzer 扩展禁用。
社区反响:rust-analyzer 作者亲自背书
Rust Glancer 的热度不完全是"新项目流量",它的含金量来自行业头部人物的认可:
- matklad(rust-analyzer 原作者):2026 年 8 月 21 日发表博文《Rust Glancer》,称其"低两个数量级的内存占用,非常酷,去看看吧"。他还在文中给出了技术层面的公允分析:rowan 的增量解析服务于"你正在编辑的那个文件"这 1% 的场景,而 99% 的场景是"6666 个你永远不会看的依赖只需要浅层分析"——Rust Glancer 恰好是为这 99% 设计的。他还预测性地提出了改进方向(函数体处理惰性化)和 proc macros 的解法(类似 Sorbet 的 shim 方案,不真正执行宏而是注入空实现)。这篇博文本身也是 Hacker News 帖子的来源;
- Hacker News:matklad 提交的帖子《Rust Glancer: Rust LSP using 100x less RAM》7 小时内冲到 122 分、32 条讨论,作者 popzxc 本人在评论区逐条答疑;
- Reddit r/rust:作者发帖《Rust Glancer: a memory-efficient Rust language server》,一天内 239 赞、39 条讨论;
- Lobste.rs:同步讨论,标签里赫然写着 "vibecoding"——不少人已经在把它当作 AI 辅助编程工作流的标配(AI Agent 高频改代码时,LSP 内存和重启速度直接影响迭代效率,matklad 在博文中也专门讨论了 agent 编辑代码时 rust-analyzer 的 inlay hints 错位问题)。
值得一提的是,matklad 在博文中坦承 rust-analyzer 的架构包袱("半画的马"),并介绍了 IntelliJ 的 PSI 多后端思想——打开的文件用完整语法树、其余项目用磁盘上的紧凑 Stub Tree。Rust Glancer 的出现,某种程度上验证了这条路线在 Rust 生态的可行性。
限制与已知问题:装之前必须知道
作者非常坦诚地在文档里列出了现状,这些限制决定了它现在适合谁:
- 不是完整的 LSP:项目只有 4 个月历史,"缺少很多功能、有已知 bug",作者自己也说"对某些人这可能是 deal breaker";
- proc macros 不支持:依赖 serde derive、sqlx、tauri 这类宏的重度项目体验会明显缺功能(宏展开的代码看不到分析结果);
- 只在保存时索引:你正在打字的未保存内容,分析精度低于已保存文件。官方为此用了一些"hack"让编辑体验可接受,但原理上做不到 rust-analyzer 那种实时精确;
- 部分场景类型推断不工作:大部分"正常"Rust 语法已支持(含完整的类型推断管线和基于 chalk 的 trait solver),但边角场景仍有缺失;
- 查询速度整体慢于 rust-analyzer:虽然"人类感知上可接受",但对补全延迟极敏感的用户需要适应。
作者的表态是:他正在用 Rust Glancer 开发 Rust Glancer(自举),并且"以它目前的形式已经够用"。这句话比任何营销文案都有说服力。
谁该现在就用?
适合立刻上手的场景
- 低内存机器:8GB MacBook、老款 ThinkPad、云主机、树莓派级设备上写 Rust;
- 多项目并行开发者:同时开 3-5 个工作区,rust-analyzer 每个实例都要吃几百 MB 到几 GB;
- 频繁重启/切换编辑器的人:磁盘索引 + 秒级恢复,工作流更顺滑;
- AI Agent 工作流重度用户:agent 高频批量改代码、频繁触发重索引时,低内存和快速恢复是实打实的效率;
- 喜欢尝鲜、愿意给新项目提 issue 的开发者:项目 Apache-2.0 开源,正处在最欢迎反馈的阶段。
不适合的场景
- proc macros 重度项目:宏展开分析缺失是硬伤;
- 对补全毫秒级延迟敏感的用户:查询性能有折损;
- 需要"开箱即用全功能"的团队生产环境:功能尚不完整,建议先在个人分支试用。
一句话行动清单
在 VS Code 里装上 Rust Glancer 扩展(记得先 rustup component add rust-src,再禁用 rust-analyzer),拿你手上那个最吃内存的 Rust 项目跑一天,用任务管理器看内存对比——具体步骤见站内教程《Rust Glancer 怎么安装使用:VS Code 配置教程与常见问题排错》。
相关阅读
- 站内教程:Rust Glancer 怎么安装使用:VS Code 配置教程与常见问题排错——rust-src 组件、扩展安装、禁用 rust-analyzer 与排错全步骤
- 官方网站:https://rust-glancer.github.io/
- 发布博文《Hello, world!》:https://rust-glancer.github.io/blog/hello-world/
- GitHub 仓库:https://github.com/rust-glancer/rust-glancer
- matklad 的评测博文:https://matklad.github.io/2026/08/21/rust-glancer.html
- Hacker News 讨论:https://news.ycombinator.com/item?id=49393052
- 站内指南:AI 编程工具怎么选:AI IDE、代码助手与 Agent 的区别
- 站内指南:Vibe Coding 入门指南:零基础第一周该干什么
本文信息截至 2026 年 8 月 22 日,基于 Rust Glancer 官网、官方文档、发布博文、matklad 博文及 Hacker News、Reddit 社区公开讨论整理。项目处于快速迭代期,功能与限制可能随时变化,请以官方文档为准。
常见问题
Rust Glancer 是什么?
Rust Glancer 是一个主打低内存的 Rust LSP 语言服务器,2026 年 8 月 19 日公开发布。它用"全量索引 + 冻结工作区 + 数据落盘"的架构替代 rust-analyzer 的"增量计算 + 数据常驻内存",空闲内存可控制在 100MB 以内,重启编辑器无需重新索引。
Rust Glancer 和 rust-analyzer 有什么区别?
核心区别是架构:rust-analyzer 用 salsa 增量数据库把分析数据常驻内存,查询快但内存高;Rust Glancer 一次性全量索引后把数据冻结到文件系统,查询时按需加载,内存低一到两个数量级,但查询响应更慢、未保存代码分析精度更低、proc macros 暂不支持。详见上文对比表。
Rust Glancer 能省多少内存?
作者的目标是空闲内存 <100MB(中等规模项目),超大项目约 200-300MB。rust-analyzer 在大工作区上普遍占用数 GB,Rust 官方论坛有 13GB 的极端案例,所以差距大约是 1-2 个数量级(约 100 倍)。注意:Rust Glancer 索引期间内存会临时升高,低占用指的是索引完成后的稳态。
Rust Glancer 怎么安装?
目前主要支持 VS Code:先运行 `rustup component add rust-src` 安装必需组件,再从 VS Code Marketplace 安装 Rust Glancer 扩展(或从源码构建 VSIX),最后禁用 rust-analyzer 扩展避免重复分析。详细步骤见站内安装教程。
Rust Glancer 支持 Neovim 或 JetBrains 吗?
官方目前只把 VS Code 作为主要适配编辑器。因为 LSP 是标准协议,其他原生支持 LSP 的编辑器(如 Neovim)理论上可以参照 rust-analyzer 的接入方式手动配置,官方文档表示"未来会支持更多编辑器",但暂无官方配置指引。JetBrains 系列 IDE(RustRover)不使用 LSP,暂不适用。
Rust Glancer 免费吗?
免费且开源,采用 Apache-2.0 协议,源码托管在 GitHub(rust-glancer/rust-glancer)。VS Code 扩展也免费。
Rust Glancer 能替代 rust-analyzer 吗?
暂时不能完全替代。它缺 proc macros 支持、部分类型推断场景不完整、只在保存时索引。适合作为低内存场景的替代方案或第二工作区工具;作者本人已用它自举开发,但官方定位仍是"实验性项目"。
Rust Glancer 是谁开发的?
开发者 GitHub ID 为 popzxc,项目开发约 4 个月(2026 年 4 月底创建仓库,8 月中旬公开)。X 社区用户介绍其有 7 年 Rust 经验,参与过 rustc、clippy 和 rust-analyzer 的贡献。项目获得 rust-analyzer 原作者 matklad 的公开推荐。
rust-analyzer 内存占用太高还有什么办法?
除了换用 Rust Glancer,还可以:升级 rust-analyzer 到最新版(内存优化持续在改进);在配置里限制 proc macros 展开与检查范围;关闭不需要的工作区成员;减少同时打开的项目数量。如果内存依然吃紧,Rust Glancer 是目前唯一以"低内存"为第一目标设计的替代 LSP。

京ICP备2024094994号-29