0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Unrealdev.nvim】過去最大の刷新:Rust 製サーバー移行と MessagePack-RPC による高速基盤への進化 2026/02/02

Posted at

はじめに
こんにちは。unrealdev.nvim 開発者の taku25 です。
今回は「今週のアップデート」と言いつつ、二週間じっくり時間をかけて取り組んだ、本プロジェクト始まって以来の最大規模のアーキテクチャ刷新についてお届けします。
これまでキャッシュフォーマットの変更など、何度か破壊的なアップデートを行ってきましたが、今回は「心臓部」そのものを入れ替えました。ユーザーの皆様にはご不便をおかけしますが、この変更により基盤が固まったため、今後はこれほど大きな変更は発生しない予定です。

  1. Rust 製サーバー「unl-server」への全面移行
    今回の最大のトピックは、これまで Lua 側で行っていた データベース(SQLite)の作成や tree-sitter による C++ 解析処理を、すべて Rust 製の外部サーバー unl-server に委譲した ことです。
    これまでは UEP.nvim が個別に DB を管理していましたが、これからは unl.nvim が窓口となり、MessagePack-RPC を介してバイナリ形式で Rust サーバーからデータを直接取得します。
    単なるユーティリティ集だった unl.nvim が、名実ともに unrealdev.nvim エコシステムの**「心臓部(Core)」**へと進化しました。
  2. コマンド体系の変更と自動起動の導入
    アーキテクチャの変更に伴い、サーバー管理の権限が UEP から UNL へ移動しました。
  • コマンドの移動:
    • UEP refresh/start/stop → 廃止
    • UNL refresh/start/stop → 新設
      また、利便性を高めるために「サーバーの自動起動」を実装しました。
      設定(auto_server_start:デフォルト true)により、.uproject が存在するディレクトリで Neovim を起動したり、cd で移動したりした際に、裏側で自動的にサーバーが立ち上がります。
  1. ファイルシステムのリアルタイム監視
    新しいサーバーは、単にデータを取得するだけではありません。プロジェクトファイルを常に監視しており、ソースコードの変更を検知して自動的にデータベースを最新の状態に保ちます。
    これにより、ユーザーは「今、DB は最新かな?」と意識することなく、常に最新のシンボル情報にアクセスできるようになりました。
    今後の展望
    主要なコマンドのデバッグは完了していますが、まだ細かいバグや、一部速度が以前より低下している箇所も認識しています。
    今週からは以下の 2 点に注力して開発を進めていく予定です:
  • 動作の安定化とパフォーマンスチューニング
  • LSP に頼らない、独自 DB を活用した爆速補完機能の実装
    さらなる進化を遂げる unrealdev.nvim を、引き続きよろしくお願いいたします!
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?