Skip to content
Эта страница создана и переведена с помощью ИИ. Если вы заметили неточности, помогите нам улучшить её. Редактировать на GitHub

Архитектура плагинов ​

Система плагинов PRX построена на среде выполнения WASM, обеспечивающей безопасную, портативную среду исполнения для стороннего кода. На этой странице описывается техническая архитектура.

Среда выполнения ​

PRX использует среду выполнения Wasmtime для исполнения WASM-плагинов. Каждый экземпляр плагина запускается в собственном WASM-хранилище с изолированной линейной памятью.

┌──────────────────────────────┐
│         Хост PRX             │
│                              │
│  ┌────────────────────────┐  │
│  │    Среда выполн. WASM  │  │
│  │  ┌──────┐  ┌──────┐   │  │
│  │  │Плагин│  │Плагин│   │  │
│  │  │  A   │  │  B   │   │  │
│  │  └──┬───┘  └──┬───┘   │  │
│  │     │         │        │  │
│  │  API хост-функций      │  │
│  └────────────────────────┘  │
└──────────────────────────────┘

Граница хост-гость ​

Плагины взаимодействуют с хостом через определённый набор хост-функций. Граница обеспечивает:

  • Типобезопасность -- все параметры функций валидируются
  • Ограничения ресурсов -- использование памяти и CPU ограничено
  • Проверки разрешений -- каждый вызов хост-функции авторизуется по манифесту разрешений плагина

Модель памяти ​

Каждый плагин имеет собственное пространство линейной памяти (по умолчанию 64 МБ). Данные между хостом и гостем обмениваются через общие буферы памяти с явной сериализацией.

Жизненный цикл плагина ​

  1. Загрузка -- WASM-бинарник загружается и валидируется
  2. Инициализация -- вызывается функция init() плагина с конфигурацией
  3. Готовность -- плагин регистрирует свои возможности (инструменты, каналы и т.д.)
  4. Выполнение -- хост вызывает функции плагина по мере необходимости
  5. Завершение -- вызывается функция shutdown() плагина для очистки

Связанные страницы ​

Released under the Apache-2.0 License.