Skip to content

插件架构

PRX 插件系统构建在 WASM 运行时之上,为第三方代码提供安全、可移植的执行环境。本页描述技术架构。

运行时

PRX 使用 Wasmtime 运行时执行 WASM 插件。每个插件实例在自己的 WASM Store 中运行,拥有隔离的线性内存。

┌──────────────────────────────┐
│         PRX 宿主              │
│                              │
│  ┌────────────────────────┐  │
│  │    WASM 运行时          │  │
│  │  ┌──────┐  ┌──────┐   │  │
│  │  │插件  │  │插件  │   │  │
│  │  │  A   │  │  B   │   │  │
│  │  └──┬───┘  └──┬───┘   │  │
│  │     │         │        │  │
│  │   宿主函数 API          │  │
│  └────────────────────────┘  │
└──────────────────────────────┘

宿主-客户边界

插件通过一组定义好的宿主函数与宿主通信。边界强制执行:

  • 类型安全 -- 所有函数参数都经过验证
  • 资源限制 -- 内存和 CPU 使用量有上限
  • 权限检查 -- 每个宿主函数调用都根据插件的权限清单进行授权

内存模型

每个插件拥有自己的线性内存空间(默认 64 MB)。宿主和客户之间通过共享内存缓冲区进行显式序列化的数据交换。

插件生命周期

  1. 加载 -- WASM 二进制被加载和验证
  2. 初始化 -- 调用插件的 init() 函数并传入配置
  3. 就绪 -- 插件注册其能力(工具、渠道等)
  4. 执行 -- 宿主按需调用插件函数
  5. 关闭 -- 调用插件的 shutdown() 函数进行清理

相关页面

Released under the Apache-2.0 License.