Перейти к основному содержимому

Обзор

Нужен быстрый выбор режима? Смотрите Сравнение транспортов.

Модель экосистемы

Ссылка на заголовок

Целевой сценарий это extension-экосистема:

  • любой продукт может открыть extension surface;
  • сторонние команды могут выпускать remote-расширения независимо;
  • @omnicajs/vue-remote синхронизирует UI-деревья между host и remote runtime.

Scope библиотеки

Ссылка на заголовок

@omnicajs/vue-remote покрывает только синхронизацию рендера:

  • Host: createProvider, createReceiver, HostedTree.
  • Remote: createRemoteRoot, createRemoteRenderer, defineRemoteComponent.
  • Обновления по channel-контракту (конкретный transport подключается отдельно).

Намеренно вне scope:

  • бизнес-контракты данных и методов продукта;
  • discovery расширений, auth, billing, governance;
  • marketplace-политики и комплаенс-процессы.

Рекомендуемая топология

Ссылка на заголовок

Host-продукт и remote-расширения должны быть отдельными deliverables.

host-product/
src/
extensions/
host-components/
runtime/
hostBridge.ts
remote-extension/
src/
entry.ts
App.vue
bridge/

Слои организации runtime

Ссылка на заголовок
  1. UI provider layer: host-компоненты, экспортируемые через createProvider(...).
  2. Runtime transport layer: iframe, worker, window, MessagePort, desktop IPC, socket и т.д.
  3. Business bridge layer: продуктовые методы и данные.
  4. Security layer: capability-checks и lifecycle-policy.

Startup-контракт

Ссылка на заголовок

Независимо от транспорта держите этот handshake стабильным:

  1. Host инициализирует runtime-shell и receiver.
  2. Remote экспортирует run/release.
  3. Host вызывает run(channel, hostBridge).
  4. Remote монтируется и рендерит через channel-updates.
  5. Сессия завершается вызовом release().

Выбор транспорта

Ссылка на заголовок

Для non-baseline и research-ориентированных окружений смотрите Экспериментальные возможности.