F1 — что это
Встраиваемый табличный процессор уровня Excel: где находится ядро, как связаны слои и каким предлагается сделать публичный интерфейс.
F1 — табличная часть платформы FastOffice: самостоятельный табличный движок с формулами, разрежённым состоянием книги, историей, импортом и сохранением, а вместе с ним готовая поверхность, которую можно заменить своей.
- Ваш продукт — карточка документа, пользователи, права, версии, аудит, процессы согласования.
- Оболочка редактора — лента, сетка, диалоги, клавиатура, отображение результата.
- Compute Contract — единый язык команд, результатов, ошибок, ревизий и событий.
- Ядро F1 на Rust — книга, формулы, операции, история, импорт/экспорт, сохранение.
- Адаптер выполнения — WebAssembly в браузере или отдельный процесс на компьютере либо сервере.
Как читать документ
Заголовок раздела «Как читать документ»Сначала — компоненты и объекты. Затем — путь одной операции. После этого показано, как одна и та же архитектура размещается в браузере, на сервере, на настольном компьютере и на мобильном устройстве. В конце — сильные стороны, ограничения и границы готовности.
Термины, которые встречаются во всех разделах — сеанс книги, ревизия, окно просмотра, явный отказ, — собраны в глоссарии.
Табличный процессор внутри вашего продукта
Заголовок раздела «Табличный процессор внутри вашего продукта»F1 — табличная часть платформы. Её задача: дать вам самостоятельный табличный движок с формулами, разрежённым состоянием книги, историей, импортом и сохранением, а вместе с ним готовую поверхность, которую можно заменить своей.
| Принцип | Следствие для архитектуры | Пользовательская ценность |
|---|---|---|
| Одно ядро на Rust | Формулы, ячейки, история и смысл файла не дублируются в JavaScript. | Книга считается одинаково в настольном приложении, в браузере и в оболочке. |
| Один контракт операций | Интерфейс, автоматизация и адаптеры к приложению проходят через одну типизированную границу. | Устойчивый набор вызовов вместо доступа к внутренностям. |
| Счёт по видимой области | В память попадает не вся книга, а запрошенная часть: разрежённое хранилище и предпросмотр видимого участка. | Большие книги открываются и правятся, не разворачиваясь целиком. |
| Отказ вместо тихой ошибки | Устаревшая ревизия, неверный запрос и запрет по правилам дают явный отказ — до того, как что-то изменится. | Книга не портится незаметно. |
| Неделимая история | Операция создаёт одну запись в общей истории — либо не меняет книгу вовсе. | Отмена, повтор и журнал остаются согласованными. |
| Владение остаётся у вас | Вход, хранилище, приёмник показателей, сетевые правила и бренд — ваши. | Данные не покидают ваш контур. |
Каким предлагается сделать публичный интерфейс
Заголовок раздела «Каким предлагается сделать публичный интерфейс»| Метод | Что возвращает | Что гарантирует |
|---|---|---|
F1.create(...) |
Готовый движок | Выбор среды выполнения, проверка допуска и согласование версии контракта. |
engine.open(...) |
Сеанс книги | Собственный идентификатор, объявленные возможности и начальная ревизия. |
document.getSnapshot(...) |
Проекция запрошенного участка | Книга не разворачивается в память целиком незаметно для вас. |
document.execute(...) |
Результат операции | Либо успех целиком, либо явный отказ с причиной. |
document.subscribe(...) |
Подписка | События сеанса приходят в заданном порядке. |
document.save(...) |
Результат сохранения | Формат и само право сохранять объявлены явно. |
document.close() |
Ничего | Повторный вызов безопасен и ресурсы освобождаются один раз. |