Resumen
¿Necesitas elegir un modo rápidamente? Salta a Comparación de transportes.
Modelo de ecosistema
Enlace al encabezadoEl objetivo es un ecosistema de extensiones:
- cualquier producto puede exponer una superficie de extensibilidad;
- equipos de terceros pueden distribuir extensiones remotas de forma independiente;
@omnicajs/vue-remotesincroniza árboles de UI entre runtimes host y remotos.
Alcance de esta biblioteca
Enlace al encabezado@omnicajs/vue-remote cubre únicamente la sincronización del render:
- Host:
createProvider,createReceiver,HostedTree. - Remoto:
createRemoteRoot,createRemoteRenderer,defineRemoteComponent. - Actualizaciones sobre un contrato de canal, cuya implementación de transporte es intercambiable.
Fuera del alcance por diseño:
- contratos de datos de negocio y APIs del producto;
- discovery de extensiones, auth, billing y governance;
- políticas de marketplace y flujos de compliance.
Topología recomendada
Enlace al encabezadoEl producto host y las extensiones remotas deberían entregarse por separado.
host-product/ src/ extensions/ host-components/ runtime/ hostBridge.ts
remote-extension/ src/ entry.ts App.vue bridge/Capas de organización del runtime
Enlace al encabezado- UI provider layer:
componentes host expuestos por
createProvider(...). - Runtime transport layer: iframe, worker, window, MessagePort, IPC de escritorio, socket, etc.
- Business bridge layer: métodos y datos específicos del producto.
- Security layer: comprobaciones de capacidades y aplicación de políticas de ciclo de vida.
Contrato de arranque
Enlace al encabezadoIndependientemente del transporte, mantén estable este handshake:
- El host inicializa el shell del runtime y el receiver.
- El remoto expone
run/release. - El host llama a
run(channel, hostBridge). - El remoto monta y renderiza mediante actualizaciones del canal.
- La sesión termina con
release().
Elegir un transporte
Enlace al encabezado- Aislamiento por defecto en navegador: Integración con iframe.
- Runtime en worker: Runtime de Web Worker.
- Runtime en popup: Transporte Window.
- Cableado explícito por canal: Transporte MessagePort.
- Puente de procesos de escritorio: Transporte IPC de escritorio.
- Puente de red/sesión: Transporte Socket.
- Runtime único para dev/test: Transporte en memoria.
Para entornos no baseline u orientados a investigación, consulta Capacidades experimentales.