出来事の日付:2026年8月21日
ある開発者が、メモリ使用量の少なさを重視して構築したRust言語サーバーの代替「Rust Glancer」の初期版を公開した。開始から4カ月のこのプロジェクトはVisual Studio Code拡張機能として利用できるが、作者は、まだ未完成で既知のバグがあり、Language Server Protocolの全機能をまだ網羅していないと注意を促している。
Rust Glancerにはすでに、ワークスペースのインデックス作成、型推論、Chalkをベースとするトレイトソルバーが含まれている。定義への移動、ホバー情報、インレイヒント、補完といった一般的なエディター機能は、通常のRust構文の多くで動作する。公開されたデモではメモリ使用量が100MB未満に保たれ、開発者はRAM 8GBの2020年モデルM1 MacBook Proで満足できる使用感だったと報告した。これらの数値はプロジェクト側によるものであり、独立したベンチマークではない。
そのアーキテクチャーは、意図的にrust-analyzerとは異なる。遅延型のインクリメンタル解析グラフをメモリ内に保持する代わりに、Rust Glancerは固定された解析結果を作成し、インデックス化されたデータをファイルシステムに保存して、ファイルが保存された際にそれを無効化する。クエリーは実行中に必要な情報だけを読み込む。これにより恒常的なメモリ需要は減るが、ディスクからの読み込みとデシリアライズは、すでにメモリ上にあるデータへのアクセスより遅くなる。
対話的な補完機能を維持するため、サーバーはユーザーの入力中、現在の関数本体を浅く解析し、直近の完全なインデックスを再利用する。新しいインポート、構造体、トレイトは、文書が保存されるまでそのインデックスに追加されない。したがってこの設計では、リソース使用量を抑える代わりに、一部の編集内容の認識が遅れることをユーザーに受け入れるよう求めている。
このプロジェクトは、コーディングエージェントが行ったものを含め、エディター外部でのコード変更にも対応している。独自のファイル監視機能によってインレイヒントの位置ずれに対処し、外部からの変更にはインデックス作成の優先度を低く設定することで、エージェントによる大量の編集が高コストの処理を絶えず引き起こさないようにしている。
Rust Glancerは、作者がより賢い形のctagsになると想像していたものとして始まった。本体の低水準表現への変換、型の伝播、トレイト解決、標準ライブラリ対応を追加していくうちに、徐々に、より完全な言語サーバーへと発展した。開発者はRustの実務経験を持ち、rustc、Clippy、rust-analyzerにも貢献してきたが、それでもこの作業の規模は相当なものだと述べている。
掲げられた目標は、すべての人にとってrust-analyzerに取って代わることではない。完全性やキー入力単位の正確性を優先する場合は、今後もrust-analyzerの方が適していると見込まれる。Rust Glancerは、古いコンピューターやリソースに制約のあるコンピューター、そしてRAMを節約するために解析の遅延や先送りを受け入れられるユーザーを対象としている。現在のリリースは、そのまま置き換えられる同等品ではなく、利用可能な機能を備えた、動作するアーキテクチャー実験と捉えるのが最も適切だ。
したがって、ディスク上のインデックスは、このプロジェクトを特徴づける最適化であると同時に、最大の妥協点でもある。ユーザーは、ファイルシステム上の処理が増え、新たに導入した一部のシンボルがサーバーから見えるようになるまで保存操作が必要になることを受け入れる代わりに、メモリ使用量を削減できる。



