本システムは、Tauri 2 をホストとしたマルチプロセス・マルチレイヤー・アーキテクチャを採用しています。
graph TD
subgraph "Presentation Layer (Webview2)"
UI[Frontend UI: HTML/CSS/JS]
end
subgraph "Application Layer (Rust / Tauri Core)"
Tauri[Tauri Backend]
Axum[Axum MCP Server]
Llama[Llama Client / HTTP]
Sidecar[Sidecar Process Manager]
end
subgraph "Infrastruture Layer"
DB[(SQLite / sqlite-vec)]
LS[Sidecar: llama-server]
M[Gemma-3 GGUF]
end
UI <-->|IPC: Invoke/Events| Tauri
Tauri <--> Axum
Tauri <--> DB
Axum <--> DB
Tauri <--> Llama
Llama <-->|HTTP| LS
Sidecar -->|Life Cycle Control| LS
LS -->|Inference| M
invoke コマンドによる非同期通信。reqwest を使用した API 通信。Sidecar との疎通とリトライを制御。llama-server バイナリの起動、DLL パス解決、子プロセスの死活監視。SeaORM を介したリレーショナルデータ管理。vec0 仮想テーブルによるベクトル検索エンジン(DLL 拡張)。llama.cpp ベースの推論エンジン。| 処理 | 同期/非同期 | 説明 |
|---|---|---|
| UI 更新 | 非同期 (Event) | バックエンドからの非同期メッセージ受信により更新。 |
| API リクエスト | 非同期 (Async/Await) | tokio ランタイム上でのノンブロッキング I/O。 |
| DB トランザクション | 原子性 (Atomic) | items と vec_items の一貫性は Rust 側トランザクションで保証。 |
llama-server プロセスの起動とヘルスチェック待機。