开源项目
Automattic/harper avatar
Automattic/harper

Harper 评测:离线优先的 Rust 语法检查器,能否取代 Grammarly 和 LanguageTool?

离线、隐私优先的语法检查器。快速、开源、由 Rust 驱动。

15,393 个 Star627 个 ForkRustApache-2.0

秒懂

它是什么?
Harper 是一个用 Rust 编写的离线语法检查器,主打隐私和速度。本文基于其 README 和仓库信息,分析它的设计取舍、实际用法和适用人群。
适合谁用?
Harper 适合那些对隐私敏感、需要快速反馈的英文写作者,尤其是 Obsidian、Neovim 或 VS Code 用户。它不适合需要多语言支持或复杂语法建议的人,因为目前只支持英文,且规则引擎的准确性可能不如商业产品。
能商用吗?
可以。Apache-2.0 是宽松许可证:你可以使用、修改并销售基于它的软件,只需保留版权和许可证声明。
还在维护吗?
在维护。仓库在最近一天内有新的提交。
用什么语言写的?
主要是 Rust(依据 GitHub 的语言统计)。

以上回答依据项目的 GitHub 数据(最近同步于 2026年9月15日)和我们的分析,不构成法律意见。

开源项目深度解析

它解决什么问题,谁需要它

Harper 是 Automattic 旗下的开源语法检查器,用 Rust 编写,定位是“刚刚好”的英文语法检查工具。它的 README 明确说,作者受够了 Grammarly 的昂贵、过度干预和隐私问题,也受够了 LanguageTool 的高内存和慢速。Harper 的目标是毫秒级检查、内存占用不到 LanguageTool 的五十分之一,并且完全离线运行。它主要面向英文写作者,尤其是那些使用 Obsidian、VS Code、Neovim 等编辑器的用户。如果你在意写作内容不被上传到服务器,或者你讨厌等待网络请求返回,Harper 可能值得关注。

核心机制:离线、Rust 引擎与 WebAssembly

Harper 的核心是一个 Rust 编写的语法检查引擎,通过 `harper-ls` 提供 Language Server Protocol 支持,这意味着它可以在任何支持 LSP 的编辑器中工作。它不依赖网络,所有分析都在本地完成,这是隐私性的根本保障。文档提到它甚至可以通过 WebAssembly 在浏览器中运行,说明引擎设计得足够轻量。性能问题是项目明确关注的,README 说“长时间 lint 被视为 bug”,这暗示开发团队把速度当作一等公民。从架构上看,它不是一个基于 n-gram 统计的模型,而更像是规则驱动的检查器,这解释了为什么内存占用远低于 LanguageTool。

安装与运行:从编辑器集成到命令行

要使用 Harper,最直接的方式是安装 `harper-ls`,这是它的语言服务器组件。根据 README,支持的编辑器包括 Visual Studio Code、Neovim、Helix、Emacs 和 Zed。以 VS Code 为例,你可以在扩展市场搜索 Harper 并安装,它会自动启动语言服务器。对于 Neovim,你需要配置内置 LSP 客户端来连接 `harper-ls`。具体命令在文档中,但可以预期是标准的 LSP 设置,例如在 init.lua 中注册服务器。如果你是 Obsidian 用户,官方也提供了专门的插件文档。此外,还有 `harper.js` 可以在 JavaScript 环境中使用,适合网页应用。安装后,Harper 会在你输入时实时标记语法问题,并给出建议。

语言支持与扩展边界

Harper 目前仅支持英文,这是最明显的限制。README 说核心是可扩展的,欢迎贡献其他语言,但截至当前版本,多语言支持并未实现。这意味着如果你写中文、西班牙语或德语,Harper 完全无用。即使对于英文,它的规则引擎也可能无法捕捉所有细微的语法错误,尤其是那些需要上下文语义判断的场景。作者在 README 中抱怨 Grammarly 的建议“缺乏上下文”,但 Harper 的规则方法同样可能面临类似问题,只是程度不同。如果你需要深度语义检查,比如同义词建议或风格改写,Harper 可能不是最佳选择。

性能与资源占用:快,但有多快?

Harper 的 README 声称它能在毫秒级完成文档检查,内存占用不到 LanguageTool 的五十分之一。这些数字来自项目作者,我没有实际验证过。但 Rust 的性能优势是合理的,而且离线引擎避免了网络往返,所以响应时间确实应该远低于 Grammarly。不过,性能取决于文档大小和硬件。对于大型文档,比如一本书的章节,即使毫秒级也可能累积。项目把性能问题当作 bug 处理,这表明开发团队会积极优化。但用户仍需注意,如果你编辑的是超大文件,任何检查器都可能变慢。

替代方案对比:Grammarly 与 LanguageTool 的差异

Grammarly 是商业产品,依赖云端,隐私性差,但提供丰富的语义建议和风格改写。LanguageTool 是开源的,支持多语言,但需要约 16GB 的 n-gram 数据集,内存占用高,检查速度慢。Harper 的取舍是:完全离线,轻量,但只支持英文。如果你需要多语言,LanguageTool 是更合适的选择,尽管它重。如果你需要深度语义建议,Grammarly 可能更好,但代价是隐私。Harper 走的是中间路线:它不试图做所有事,而是聚焦于快速、私密的英文语法检查。

维护与升级成本:开源许可证与社区驱动

Harper 使用 Apache-2.0 许可证,这意味着你可以自由使用、修改和分发,甚至用于商业项目,但需要保留版权声明和专利授权条款。项目托管在 Automattic 的 GitHub 组织下,Automattic 是 WordPress 的母公司,这增加了项目的可持续性。最近版本更新频繁,v2.9.1 在 2026 年 8 月发布,说明维护活跃。升级成本取决于你如何使用:如果是编辑器插件,通常会自动更新;如果是集成到自己的应用,你需要跟踪 `harper-ls` 的 API 变化。由于项目开源,你可以自行修复问题,但这也意味着你需要阅读贡献指南。

编辑结论

Harper 适合那些对隐私敏感、需要快速反馈的英文写作者,尤其是 Obsidian、Neovim 或 VS Code 用户。它不适合需要多语言支持或复杂语法建议的人,因为目前只支持英文,且规则引擎的准确性可能不如商业产品。在采用前,先确认你的编辑器有官方集成,并检查它是否能处理你常用的文档类型,比如 Markdown 或 LaTeX。如果对隐私要求极高,Harper 的离线特性是硬性优势,但如果你需要中文或其他语言检查,它目前不是选项。

官方来源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
社区笔记

社区笔记