Skip to content
Esta página fue generada y traducida con asistencia de IA. Si encuentra alguna imprecisión, no dude en ayudar a mejorarla. Editar en GitHub

Arquitectura de plugins

El sistema de plugins de PRX esta construido sobre un runtime WASM que proporciona un entorno de ejecucion seguro y portable para codigo de terceros. Esta pagina describe la arquitectura tecnica.

Runtime

PRX usa el runtime Wasmtime para ejecutar plugins WASM. Cada instancia de plugin se ejecuta en su propio store WASM con memoria lineal aislada.

┌──────────────────────────────────┐
│         PRX Host             │
│                              │
│  ┌────────────────────────┐  │
│  │    WASM Runtime         │  │
│  │  ┌──────┐  ┌──────┐   │  │
│  │  │Plugin│  │Plugin│   │  │
│  │  │  A   │  │  B   │   │  │
│  │  └──┬───┘  └──┬───┘   │  │
│  │     │         │        │  │
│  │  Host Functions API    │  │
│  └────────────────────────┘  │
└──────────────────────────────┘

Frontera host-guest

Los plugins se comunican con el host a traves de un conjunto definido de funciones del host. La frontera aplica:

  • Seguridad de tipos -- todos los parametros de funcion son validados
  • Limites de recursos -- el uso de memoria y CPU esta limitado
  • Verificaciones de permisos -- cada llamada a funcion del host se autoriza contra el manifiesto de permisos del plugin

Modelo de memoria

Cada plugin tiene su propio espacio de memoria lineal (64 MB por defecto). Los datos se intercambian entre host y guest a traves de buffers de memoria compartida con serializacion explicita.

Ciclo de vida del plugin

  1. Carga -- el binario WASM se carga y valida
  2. Inicializacion -- se llama a la funcion init() del plugin con la configuracion
  3. Listo -- el plugin registra sus capacidades (herramientas, canales, etc.)
  4. Ejecucion -- el host invoca funciones del plugin segun sea necesario
  5. Apagado -- se llama a la funcion shutdown() del plugin para limpieza

Paginas relacionadas

Released under the Apache-2.0 License.