Режимы встраивания
Семь способов подключить платформу — от готовой поверхности до сервера в своём контуре: когда выбирать каждый и что обязательно в любом из них.
Платформа поставляется уровнями: можно начать с готовой поверхности, а потом углубить интеграцию — до работы без интерфейса, до отдельного процесса или до WebAssembly. Способ передачи данных при этом не меняет смысла: команду определяет контракт, а не то, пришла она по WebSocket, строкой JSON или через WebAssembly.
| Режим | Когда выбирать | Как устроено | Готовность и границы |
|---|---|---|---|
| A4 внутри настольного приложения | Нужен полноценный редактор DOCX внутри вашей программы. | Ваше приложение плюс Surface Host на каждый документ; HTTP и WebSocket только на локальном интерфейсе; окно WebView2 или WKWebView. | Проверено на macOS; приёмку на Windows нужно проводить отдельно. |
| A4 в браузере | Ваш продукт живёт в вебе, и пользователю не нужно ничего устанавливать. | Редактор открывается в iframe на вашем домене, а документ считает ядро на сервере — по процессу на пользователя. См. Редактор в браузере. |
Работает; совместного редактирования пока нет — второму открывается копия. |
| A4 без интерфейса | Пакетная обработка, службы и агенты, которым экран не нужен. | Строки JSON через стандартный ввод-вывод или WebSocket с пропуском. | Работает как протокол сеанса; какая часть станет публичной, оговаривается отдельно. |
| F1 в браузере | Встраивание в веб-продукт, когда данные не должны покидать браузер. | Оболочка F1 → фоновый поток → ядро в WebAssembly. | Ядро подбирает сборку под браузер: обычная работает везде, сборка с векторными вычислениями (SIMD) — где они есть, многопоточная — только если браузер изолирован по источнику и SIMD при этом доступен. Изоляция включается двумя заголовками сайта, COOP и COEP; для SIMD они не нужны. Путь на случай, когда многопоточности не будет, предусмотрите заранее. |
| F1 отдельным процессом | Работа без сети, локальные файлы, полная скорость. | Ваше приложение → дочерний процесс → строки JSON → ядро на Rust. | Нужно следить за процессом, доставлять исполняемый файл с обновлениями и корректно его закрывать. |
| Смешанный режим | Веб-интерфейс, но с доступом к файлам и правилам системы. | Веб-оболочка → адаптер на стороне приложения → ядро на Rust. | Нужен защищённый канал между ними и продуманный жизненный цикл окон. |
| Сервер в своём контуре | Централизованная обработка, агенты, конвейеры. | Интерфейс с проверкой доступа и изолированные сеансы ядра. | Отдельная промышленная архитектура: квоты, изоляция и средства эксплуатации. |
Что обязательно в любом режиме
Заголовок раздела «Что обязательно в любом режиме»-
Один открытый документ на процесс — самая простая и безопасная изоляция для пилота.
-
Приложение читает приветственную строку процессора до того, как покажет интерфейс или отправит первую команду.
-
Пропуски, адреса, учётные данные, текст документа и его исходная разметка по умолчанию в журналы не попадают.
-
Закрытие освобождает всё: слушателей, сокеты, фоновые потоки, файлы и дочерние процессы.
-
Неизвестная команда или возможность не выполняется молча: работа останавливается либо приходит отказ с причиной. Смотреть при этом нужно не только на признак успеха в конверте: у правки документа исход назван отдельным полем ответа — как читать ответ.