| .github | 8 days ago | ||
| .vscode | 7 days ago | ||
| document | 6 days ago | ||
| scripts | 7 days ago | ||
| src | 6 days ago | ||
| src-tauri | 6 days ago | ||
| test | 6 days ago | ||
| .env.example | 6 days ago | ||
| .gitignore | 6 days ago | ||
| README.md | 6 days ago | ||
| analyze_nesting.js | 7 days ago | ||
| bun.lock | 7 days ago | ||
| count_lines.js | 7 days ago | ||
| generate-icon.js | 8 days ago | ||
| jsconfig.json | 8 days ago | ||
| launch.cmd | 7 days ago | ||
| mcp.json.sample | 8 days ago | ||
| package-lock.json | 8 days ago | ||
| package.json | 6 days ago | ||
究極のパフォーマンスとポータビリティを追求した、ローカル完結型ベクトル検索基盤
このプロジェクトは、Model Context Protocol (MCP) に準拠した、高性能なベクトル検索サーバーです。かつて Electron + Bun で構成されていた基盤を、Tauri 2 + Rust へと完全にフルスクラッチで移植しました。
単なる移植に留まらず、Gemma 3 300M Embedding モデルのフルサポートと、llama-server の Sidecar 自動管理機能を標準装備。これにより、外部サーバーや複雑な環境構築に頼ることなく、ダブルクリック一つで高度なセマンティック検索環境があなたのローカルマシン上で完結します。
バックエンドを Rust で構築したことで、Electron 時代と比較してメモリ使用量を劇的に削減しました。システムトレイにスマートに常駐し、バックグラウンドで静かに、かつ確実に MCP リクエストに応答します。
sqlite-vec 拡張を Rust から直接制御。SQLite の堅牢なリレーショナル機能と、高速な近傍検索(MATCH 演算子)を融合させました。
llama-server をアプリケーションに内蔵(Sidecar)。アプリの起動と共に、最適化された Embedding 生成エンジンが自動的にスピンアップします。
Rust の強力な型システムと SeaORM を採用。リレーショナルデータとベクトルデータの不整合を排除し、created_at / updated_at の自動更新トリガーなど、運用面での信頼性も追求しています。
tauri-plugin-log による詳細なログ記録に加え、10MB×5世代の自動ローテーションを実装。デバッグ時にはプロジェクトルート、本番環境では OS 標準のログフォルダへと適切に振り分けます。
プロジェクトは、論理的な役割に基づいて以下のように「合理的」に整理されています。
. ├── bin/ # 🚀 サイドカーバイナリ (llama-server等) ├── data/ # 🗄️ データベースファイル (vector.db) ├── document/ # 📚 技術詳細ドキュメント ├── journals/ # 開発の軌跡(非公開) ├── logs/ # 📝 実行ログ (開発時) ├── resources/ # 🎨 静的アセット (icons等) ├── scripts/ # 🏗️ セットアップ・自動化スクリプト ├── src/ │ ├── backend/ # 🦀 Tauri / Rust (Core Source Only) │ └── frontend/ # ⚛️ Webview UI (React) ├── target/ # 🏗️ ビルド成果物 (一括集約) └── test/ # 🧪 E2E / 統合テスト
本システムは、高い分離性と連携性を両立した 3 レイヤー構造を採用しています。
graph TD
subgraph "Frontend Layer (WebView2)"
UI["User Interface (React/JS)"]
end
subgraph "Tauri Backend Layer (Rust / v2)"
Tray["System Tray Manager"]
Axum["MCP SSE Server (Axum)"]
SeaORM["ORM Logic (SeaORM)"]
LlamaClient["Llama API Client"]
SidecarMgr["Sidecar Process Manager"]
end
subgraph "Sidecar Layer (Local Process)"
llama["llama-server.exe"]
Model["Gemma 3 300M GGUF"]
end
subgraph "Persistence Layer"
DB[("SQLite + sqlite-vec")]
end
UI <-->|Tauri Commands| Tray
Axum <--> SeaORM
SeaORM <--> DB
LlamaClient <-->|HTTP/JSON| llama
SidecarMgr -->|Spawn/Lifecycle| llama
llama -->|Memory Mapped| Model
SidecarMgr -.->|DLL Path Solution| llama
依存関係のインストールと、必要なバイナリ・モデルのダウンロードを一括で行います。
bun install bun setup
bun dev
または、プロジェクトルートの launch.cmd をダブルクリックするだけでも起動可能です。
起動後、システムトレイに 🦀 アイコンが表示されます。
本サーバーは以下のツールを外部エージェント(Claude Desktop 等)に提供します。
| ツール名 | 説明 | 主要引数 |
|---|---|---|
add_item_text |
文書を追加(自動ベクトル化) | content, path |
search_text |
自然言語による類似文書検索 | content, limit |
add_item |
ベクトルを指定して文書追加 | content, vector, path |
search_vector |
純粋なベクトル検索 | vector, limit |
llm_generate |
内蔵 LLM によるテキスト生成 | prompt, n_predict |
より深い情報を知りたい場合は、以下のドキュメントを参照してください。
sqlite-vec の動作ISC License.