Overview
Need a quick mode choice first? Jump to Transport Comparison.
Ecosystem model
Section titled “Ecosystem model”The target is an extension ecosystem:
- any product can expose an extension surface;
- third-party teams can ship remote extensions independently;
@omnicajs/vue-remotesynchronizes UI trees between host and remote runtimes.
Scope of this library
Section titled “Scope of this library”@omnicajs/vue-remote covers render synchronization only:
- Host:
createProvider,createReceiver,HostedTree. - Remote:
createRemoteRoot,createRemoteRenderer,defineRemoteComponent. - Updates over a channel contract (transport implementation is pluggable).
Out of scope by design:
- business data contracts and product APIs;
- extension discovery, auth, billing, governance;
- marketplace policy and compliance workflows.
Recommended topology
Section titled “Recommended topology”Host product and remote extensions should be separate deliverables.
host-product/ src/ extensions/ host-components/ runtime/ hostBridge.ts
remote-extension/ src/ entry.ts App.vue bridge/Runtime organization layers
Section titled “Runtime organization layers”- UI provider layer:
host components exposed by
createProvider(...). - Runtime transport layer: iframe, worker, window, MessagePort, desktop IPC, socket, etc.
- Business bridge layer: product-specific methods and data.
- Security layer: capability checks and lifecycle policy enforcement.
Startup contract
Section titled “Startup contract”Independent of transport, keep this handshake stable:
- Host initializes runtime shell and receiver.
- Remote exposes
run/release. - Host calls
run(channel, hostBridge). - Remote mounts and renders through channel updates.
- Session ends with
release().
Choosing a transport
Section titled “Choosing a transport”- Default browser isolation: Iframe Integration.
- Worker runtime: Web Worker Runtime.
- Popup runtime: Window Transport.
- Explicit channel wiring: MessagePort Transport.
- Desktop process bridge: Desktop IPC Transport.
- Network/session bridge: Socket Transport.
- Dev/test single runtime: In-Memory Transport.
For non-baseline and research-oriented environments, see Experimental Capabilities.