Rust 製 Language Server 実装におけるライブラリ選定
(2025年10月時点の情報を記載)
ライブラリ
lsp-types
lsp-server
rust-analyzer のコードベースの中にある
deps: lsp-types
tower-lsp
tower ベースの LSP 実装
deps: lsp-types
tower-lsp-server
tower-lsp の community fork
async-lsp
tower ベースで tower-lsp inspired だけど設計上の違いがあるらしい
deps: lsp-types
観測範囲のツールにおける利用例
tower-lsp または tower-lsp-server の利用例が多い。それ以外では lsp-types のみ利用してサーバは自分で書く例がちらほらある
Oxc
tower-lsp-server
Biome
tower-lsp-server
Deno
tower-lsp の Deno によるフォーク版(deno_tower_lsp)
lsp-types もある
Turborepo
tower-lsp (オリジナル版を利用)
Veryl
tower-lsp-server
Rust Analyzer
lsp-server
Brack
lsp-types
Erg
lsp-types
ここに挙げた中で唯一同期的な実装をしている
結論
以上の内容から、選定するなら以下の感じになりそう
十分な使用実績がある(Biome, Oxc)
メンテナンスの不安が(現時点では)ない
フレームワーク的に乗っかって実装したい時はこれ
参考になりそうな実装
十分な使用実績がある(さまざまなライブラリや LS 実装に使われている)
サーバ部分を自分で実装する場合でも、In/Out 部分だけはこのライブラリを使うケースが多い
参考になりそうな実装
lsp-server は (rust-analyzer 以外の)有名どころではあまり使われていなさそうだったので一旦見送った
あまり調べていないというのが正直なところ
async-lsp は現時点だと利用例が少なそうということでこちらも今回は見送った
参考