blog.dopana

Back

Grammarlyは高価で、書いたものすべてがサーバーに送られ、文脈のない間違った提案をすることがよくあります。LanguageToolは動作しますが、ギガバイト級のRAMと約16GBのn-gramデータセットが必要で、中規模のドキュメントでも数秒かかります。

Harperはそれらすべてを解決するために作られました。完全にオフラインでプライバシーファーストの文法チェッカーで、ドキュメントをミリ秒で検査し、LanguageToolの50分の1以下のメモリ使用量、WebAssemblyでも実行できるサイズです。

Harperとは#

HarperはAutomatticがRustで構築したオープンソースの英語文法チェッカーです。シンプルな哲学に基づいて設計されています:ちょうどいいこと — ワークフローを妨げない速さ、文章がマシンの外に出ないプライバシー、どこでも動く小ささ。

Harperの利点#

圧倒的な速さ#

Harperは平均約10ミリ秒でドキュメントを検査します(クラウド系は約400ms〜4000ms)。検査時間が非常に重要で、プロジェクトでは遅い検査時間はバグと見なされます。

プライバシーファースト&オフライン#

テレメトリなし、クラウド送信なし。すべてデバイス上でローカルに実行されます。第三者サーバーに送信できない機密文書を扱うジャーナリスト、法務専門家、企業に最適です。

小さなメモリフットプリント#

LanguageToolの50分の1以下のメモリ使用量 — ギガバイト級のRAMも16GBのn-gramデータセットも不要です。

WebAssembly対応#

HarperはWebAssemblyにコンパイルできるほど小さいため、Webブラウザやブラウザ拡張機能で動作します — サーバーなしでどこでも文法チェック可能。

言語サポート#

英語の方言#

アメリカ英語、イギリス英語、カナダ英語、オーストラリア英語、インド英語に対応。

ホスト言語(コメントとドキュメント)#

文法エンジンは英語を検査しますが、harper-lsは数十のプログラミング言語とマークアップ言語のコメントとドキュメントを解析・検査します:

  • マークアップ: Markdown、AsciiDoc、Org Mode、LaTeX/TeX、HTML、Email/Plain Text
  • プログラミング(コメント): 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 --locked
bash

エディタ統合#

Visual Studio Code、Neovim、Helix、Emacs、Obsidian、Zed、Sublime Text、Chrome・Firefoxブラウザ拡張機能の公式プラグインがあります。

アーキテクチャ#

Harperモノレポには3つの主要コンポーネントがあります:

コンポーネント役割
harper-coreコアRustライブラリ — テキストのトークン化、解析、分析、検査
harper-lsエディタとIDEをエンジンに接続するLanguage Server Protocol(LSP)サーバー
harper.js / harper-wasmWebAssembly経由でエンジンをブラウザとNode.js向けにパッケージ化するJS/TSバインディング

harper-coreパイプライン#

  1. Document — 構造化されたテキスト表現
  2. Parser — 英語とホスト言語(Markdownなど)をトークンストリームに変換
  3. Linter — ドキュメントを検査してエラーLintを生成するトレイト

主な機能#

細かい辞書管理#

ユーザーレベル、ワークスペースレベル、ファイルローカル、組み込みの静的辞書をサポート — あらゆるスコープで自分の語彙を管理できます。

コードアクションとクイックフィックス#

IDEの組み込みコードアクションで、間違いを提案に置き換え、セッションのlintを無視し、カスタム辞書に単語を追加できます。

コメント無視#

// harper:ignorespellchecker:ignoreなどのコメントスキップタグを尊重するため、CSpellなどのツールと共存できます。

Weirによるカスタムルール#

Harper独自の表現言語Weirで、独自の文法・スタイルルールを作成できます。組織はルールをWeirpack(圧縮された.weirファイル)にバンドルし、ブランド命名規則、独自用語、チーム固有のライティングガイドラインを強制できます。

ユースケース#

プライバシー重視の執筆 — 機密データを扱い、クラウド文法チェッカーに文書を送信できないジャーナリスト、法務チーム、企業。

開発者ドキュメント — IDE内でREADME、コードコメント、Markdownドキュメントを即座にフィードバックを得ながら作成。

エンタープライズスタイルガイド — カスタムWeirルールで独自用語とブランド規則を自動的に強制。

Web上でのチェック — WebAssemblyビルドにより、サーバーなしのオフラインでブラウザと拡張機能で文法チェックが可能。

まとめ#

Harperは文法チェッカーが本来あるべき姿を体現しています:速く、プライベートで、オープン。ドキュメントを書く開発者、情報源を守るジャーナリスト、ブランドボイスを守る企業 — 誰にとってもちょうどいい文法チェッカーです。

Rust製、WebAssembly対応、Apache 2.0ライセンス、完全オフライン — Harperはプライバシーと時間を尊重するモダンな文法チェッカーです。

参考資料#