低メモリ版Rust LSP「Rust Glancer」が発表、4ヶ月の開発を経て公開
メモリ効率を重視したRust言語サーバー実装「Rust Glancer」が発表された。開発者が約4ヶ月の開発期間を経て、1.5ヶ月前から実際に日々の作業で使用を開始している。
リード段落の代わりに、プロジェクト開発者は「過去4ヶ月間にわたって開発してきたプロジェクトを紹介したい。メモリ効率を重視したRust Language Server Protocol(LSP)の代替実装である」と述べた。同プロジェクトは妥当なプロジェクトであれば100MB未満のメモリ使用を目標としており、プロジェクトが一度インデックスされれば「エディタを再起動してもインデックスを再実行する必要がない」という特性を備えている。
メモリ効率と性能
Rust Glancerは低メモリ消費を実現する設計となっている。開発者が過去に使用していたrust-analyzerでは16GBのメモリを消費していたが、Rust Glancerはこれを大幅に削減している。MacBook Pro M4 Max 2025での測定では、Rust Glancerの基本インデックス時間は5秒、完全インデックス時間は8秒であるのに対し、rust-analyzerではそれぞれ6秒と13秒を要している。MacBook Pro M1 2020では、Rust Glancerが6秒と9秒、rust-analyzerが7秒と14秒である。
開発者は約7年間にわたってRustをプロフェッショナルとして執筆してきた。rustc、clippy、rust-analyzerへの貢献経験を持つ同開発者は「私はRustの知識にかなり自信があるため、完全なLSPは必要なく、よりシンプルでメモリ効率の良い何かが使える」と述べている。
機能と実装
Rust Glancerはファイルシステムベースの分析オフロードと凍結されたワークスペーススナップショットを使用する設計である。型推論とChalkを用いたトレイト解決を含む完全なインデックスパイプラインを備え、一般的なRust構文の大部分に対応している。サポートされるLSPアクションには定義への移動、ホバー、インレイヒント、補完が含まれる。
キーストローク時には浅い分析が実行され、ドキュメント保存時に完全な分析が行われる。新たなアイテム(インポート、構造体、トレイト)はドキュメント保存まではインデックスされない。VS Code拡張として利用可能であり、リポジトリからvsixをビルドしてインストールすることもできる。

開発者の視点
開発者は「既に相当な機能を備えている。完全なLSPではなく、既知のバグもあり、改善したいことはたくさんある」と述べている。同開発者は「PC のファンが大量の並列インデックスジョブのため『ブーン』と鳴ることを避けたかった」という背景を明かしており、メモリ消費を重視した設計の動機を説明している。
筆者の見立て
- Rust Glancerは旧型コンピューターに適したツールになるとみられている
- 完全性とキーストローク精度を気にするプロジェクトではrust-analyzerが引き続きデフォルトの選択肢であり、より弱いマシンを使用する人やRAM使用量を削減することを受け入れられる人にはRust Glancerが機能するものと想定されている
- Rust Glancerが「単にrust-analyzerと同じだが、より優れている」状態になることはほぼあり得ないと予想されている
- プロセスマクロサポートについて、信頼されていないコード実行の懸念から実装される可能性は低いと想定されている
この記事は元記事の事実のみに基づいて自動生成されました。
出典
Rust Glancer · Hello, world! https://rust-glancer.github.io/blog/hello-world/