Grammarly 很贵,会把你的所有写作内容发送到他们的服务器,而且常常给出缺乏上下文甚至完全错误的建议。LanguageTool 能用,但它需要几千兆字节的 RAM 和约 16GB 的 n-gram 数据集——检查一份中等规模的文档都要好几秒。
Harper 就是为了解决所有这些问题而诞生的。它是一款完全离线、隐私优先的语法检查器,可以在毫秒级检查文档,内存占用不到 LanguageTool 的 1/50,甚至小到可以通过 WebAssembly 运行。
Harper 是什么?#
Harper 是由 Automattic ↗ 用 Rust 构建的开源英语语法检查器。它的设计理念很简单:应该恰到好处——足够快,永远不会打断你的工作流;足够私密,你的文字永远不会离开你的设备;足够小,可以在任何地方运行。
为什么选择 Harper?#
极速#
Harper 平均约 10 毫秒即可检查完一份文档,而云端方案通常需要约 400ms–4000ms。检查速度如此重要,以至于该项目将”检查时间长”视为 bug。
隐私优先 & 完全离线#
零遥测。零云端传输。一切都在你的设备上本地运行。这使得 Harper 非常适合处理无法发送到第三方服务器的敏感文档的记者、法律专业人士和企业。
极小的内存占用#
Harper 的内存占用不到 LanguageTool 的 1/50——不需要千兆字节的 RAM,也不需要下载 16GB 的 n-gram 数据集。
支持 WebAssembly#
Harper 小到可以编译为 WebAssembly,因此它可以在 Web 浏览器和浏览器扩展中运行——无需任何服务器,随处进行语法检查。
语言支持#
英语方言#
Harper 支持多种英语方言:美式、英式、加拿大式、澳大利亚式和印度式英语。
宿主语言(注释与文档)#
语法引擎检查英语,但 harper-ls 可以解析和检查数十种编程语言和标记语言的注释与文档:
- 标记语言: Markdown、AsciiDoc、Org Mode、LaTeX/TeX、HTML、Email/纯文本
- 编程语言(注释): C、C++、C#、Go、Rust、Python、JavaScript、TypeScript、Java、Ruby、PHP、Swift、Kotlin、Lua、Bash/Shell、Haskell、Scala、Zig、TOML、YAML 等
安装#
# macOS / Linux
brew install harper
# Windows
scoop install harper
# Arch Linux
sudo pacman -S harper
# Nix
nix shell 'nixpkgs#harper'
# Rust
cargo install harper-ls --lockedbash编辑器集成#
Harper 拥有官方插件:Visual Studio Code、Neovim、Helix、Emacs、Obsidian、Zed、Sublime Text,以及 Chrome 和 Firefox 浏览器扩展。
架构#
Harper 单体仓库有三个主要组件:
| 组件 | 角色 |
|---|---|
harper-core | 核心 Rust 库——对文本进行分词、解析、分析和检查 |
harper-ls | 将核心引擎连接到编辑器和 IDE 的 Language Server Protocol (LSP) 服务器 |
harper.js / harper-wasm | 通过 WebAssembly 为浏览器和 Node.js 打包引擎的 JS/TS 绑定 |
harper-core 流水线#
- Document — 结构化的文本表示
- Parser — 将英语和宿主语言(如 Markdown)词法化为 Token 流
- Linter — 检查文档并产生错误
Lint的 trait
主要功能#
细粒度词典#
支持用户级、工作区级、文件本地级和内置静态词典——你可以在每个层级管理自己的词汇表。
代码操作与快速修复#
内置的 IDE 代码操作让你可以:用建议替换错误、忽略当前会话的 lint、将单词添加到自定义词典。
注释忽略#
Harper 尊重 // harper:ignore 和 spellchecker:ignore 等注释跳过标签,因此可以与 CSpell 等工具和平共处。
通过 Weir 自定义规则#
使用 Weir(Harper 的自定义表达式语言)编写你自己的语法和风格规则。组织可以将规则打包为 Weirpack(压缩的 .weir 文件),以强制执行品牌命名约定、专有术语和团队特定的写作规范。
使用场景#
注重隐私的写作 — 处理敏感数据、无法将文档发送到云端语法检查器的记者、法务团队和企业。
开发者文档 — 直接在 IDE 中编写干净的 README、代码注释和 Markdown 文档,即时获得反馈。
企业风格指南 — 使用自定义 Weir 规则自动强制执行专有术语和品牌约定。
网页端检查 — WebAssembly 构建意味着语法检查可以在浏览器和扩展中离线运行,无需服务器。
总结#
Harper 集语法检查器应有的优点于一身:快速、私密、开源。无论你是编写文档的开发者、保护消息来源的记者,还是维护品牌声音的企业,它都是一款恰到好处的语法检查器。
Rust 驱动、支持 WebAssembly、Apache 2.0 许可、完全离线——Harper 是一款尊重你隐私和时间的现代语法检查器。