Skip to content

プラグインシステムの概要

N.E.K.O. のプラグインシステムにより、開発者は Python プラグインで機能を拡張できます。各プラグインは隔離されたプロセスで実行され、IPC(プロセス間通信)を介してメインシステムと通信します。

主な機能

  • プロセス隔離 — プラグインは個別のプロセスで実行され、クラッシュしてもメインシステムに影響しません
  • 非同期サポート — 同期・非同期の両方のプラグイン関数に対応
  • 型安全性 — JSON Schema による入力バリデーション
  • ライフサイクル管理 — 起動、シャットダウン、リロードフック
  • メッセージプッシュ — プラグインからメインシステムにメッセージを送信可能
  • スケジュールタスク — タイマーベースの定期実行
  • イベント駆動 — システムイベントのサブスクライブ

アーキテクチャ

┌────────────────────────────────────┐
│        メインプロセス                │
│  ┌──────────────────────────────┐  │
│  │   Plugin Server (FastAPI)    │  │
│  │   - HTTP API エンドポイント    │  │
│  │   - プラグインレジストリ       │  │
│  │   - メッセージキュー          │  │
│  └──────────────────────────────┘  │
└──────────────┬─────────────────────┘
               │ キュー(IPC)
    ┌──────────┼──────────┬──────────┐
    ▼          ▼          ▼          ▼
 Plugin 1   Plugin 2   Plugin 3   Plugin N
 (プロセス)  (プロセス)  (プロセス)  (プロセス)

プラグインディレクトリ構造

plugin/plugins/
└── my_plugin/
    ├── __init__.py      # プラグインコード
    └── plugin.toml      # プラグイン設定

クイックリンク

MIT ライセンスの下で公開。