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

Отдельный процесс ядра рядом с приложением

Как это работает сегодня: ваше приложение, дочерний процесс, обмен строками JSON и ядро на Rust.

Ядро работает отдельным процессом рядом с приложением, поэтому в схеме четыре участника:

  • Ваше настольное приложение — окно, доступ к файлам, связь с операционной системой, веб-оболочка редактора.
  • Канал обмена — долгоживущий сеанс: строка JSON с запросом, строка JSON с ответом.
  • Процессор compute_contract_cli — сеанс книги, вычисления, импорт и экспорт.
  • Локальное или корпоративное хранилище — исходный файл и новая версия.

Процессор запускается в режиме сеанса и первой строкой сообщает версию контракта и номер своего процесса. Дальше он принимает по одной команде JSON в строке и отвечает одной строкой JSON на каждую. Поле requestId возвращается в ответе — по нему вы сопоставляете пару в своих журналах.

Отвечает процессор строго по очереди: ответы приходят в том порядке, в каком отправлены запросы, поэтому долгая операция задерживает всё, что послано после неё. Отправлять следующую команду, не дождавшись ответа на предыдущую, смысла нет — она всё равно будет ждать. Если нужна параллельность, поднимайте второй процесс.

Запуск, завершение и перезапуск процесса — на вашей стороне.

Сильная сторона Цена / ограничение
Больше доступной памяти и предсказуемее работа с большими книгами. Исполняемый файл нужно устанавливать, обновлять и следить за ним.
Прямой доступ к локальным файлам и корпоративному окружению. Нужна строгая изоляция процессов и проверка путей и прав.
Интерфейс тот же, что в браузере. Вы отвечаете за перезапуск после сбоя, тайм-ауты и уборку процессов, оставшихся без хозяина.

Ассистент документации

Ответ собран из документации и может быть неточным — сверяйтесь с источниками.