Установка F1
Что именно устанавливается, как скачать сборку, сверить контрольную сумму, подпись и нотаризацию, где найти процессор.
Что именно устанавливается
Заголовок раздела «Что именно устанавливается»F1 — табличный редактор. Внутри установленного приложения находится Rust-процессор compute_contract_cli. Он принимает JSON-запросы, держит открытую книгу в памяти текущего процесса и возвращает JSON-ответы.
| Объект | Роль | Граница |
|---|---|---|
| F1.app | Пользовательский интерфейс табличного редактора | Открытие и редактирование книг человеком |
compute_contract_cli |
Контракт операций в ядре на Rust | Открытие, чтение, изменение, история, вычисление и сохранение |
subsetId |
Идентификатор открытого сеанса книги | Живёт только внутри одного процесса программы командной строки |
sheetKey |
Стабильный ключ листа | Берётся из activeSheet.path; не заменять именем листа |
viewport |
Окно просмотра: наружу уходит только видимый участок листа | Книга не разворачивается в память целиком |
result.xlsx |
Физический OOXML-пакет | Результат save_workbook_subset |
Сильная сторона
Заголовок раздела «Сильная сторона»Одно и то же ядро обслуживает и настольное приложение, и внешний процесс интеграции. Оболочка не должна реализовывать отдельную семантику формул, истории или сохранения.
Ограничение
Заголовок раздела «Ограничение»Это процессный API, а не HTTP API. Браузер не может запускать локальный бинарный файл напрямую. Для сервера или Web UI поверх него нужен контролируемый service host; схема — на странице Интеграция в приложение.
Скачать F1
Заголовок раздела «Скачать F1»-
Откройте каталог релиза. В браузере откройте dl.plantype.ru.
-
Выберите пакет под свою систему.
Файл вида F1-…-mac-arm64.zip для компьютеров на Apple
Silicon и F1-…-mac-x64.zip для Mac на процессоре Intel.
Файл вида F1-…-x64-setup.exe — обычный установщик.
Файл F1-….deb для Debian и Ubuntu, F1-….rpm для Fedora
и RHEL, либо F1-….AppImage, который работает без установки.
- Скачайте список контрольных сумм. В том же каталоге лежат файлы
latest.yml,latest-mac.ymlиlatest-linux.yml— в них указаны суммы sha512 для каждой сборки, в кодировке base64.
То же одной командой
Заголовок раздела «То же одной командой»mkdir -p ~/Downloads/f1-first-runcd ~/Downloads/f1-first-run
base=https://dl.plantype.ru/f1/release/latestcurl -fsSLO $base/latest-mac.yml# имя файла с номером версии берём из того же спискаcurl -fLO $base/$(awk '/mac-arm64.zip/ {print $3; exit}' latest-mac.yml)mkdir $HOME\Downloads\f1-first-run -Forcecd $HOME\\Downloads\\f1-first-run
$base = "https://dl.plantype.ru/f1/release/latest"Invoke-WebRequest "$base/latest.yml" -OutFile latest.yml# имя файла с номером версии берём из того же списка$name = (Select-String -Path latest.yml -Pattern 'x64-setup\.exe').Line.Trim().Split(' ')[-1]Invoke-WebRequest "$base/$name" -OutFile $namemkdir -p ~/Downloads/f1-first-runcd ~/Downloads/f1-first-run
base=https://dl.plantype.ru/f1/release/latestcurl -fsSLO $base/latest-linux.yml# имя файла с номером версии берём из того же спискаcurl -fLO $base/$(awk '/amd64.deb/ {print $3; exit}' latest-linux.yml)Проверка контрольной суммы
Заголовок раздела «Проверка контрольной суммы»cd ~/Downloads/f1-first-run# суммы лежат в latest-mac.yml рядом со сборкой, в виде sha512curl -fsSLO https://dl.plantype.ru/f1/release/latest/latest-mac.ymlopenssl dgst -sha512 -binary F1-*-mac-arm64.zip | base64grep -A1 'mac-arm64.zip' latest-mac.ymlcd $HOME\Downloads\f1-first-run# суммы лежат в latest.yml рядом со сборкой, в виде sha512$yml = Invoke-WebRequest ` "https://dl.plantype.ru/f1/release/latest/latest.yml" -UseBasicParsing$hex = (Get-FileHash .\F1-*-setup.exe -Algorithm SHA512).Hash$b64 = [Convert]::ToBase64String(($hex -split '(..)' -ne '' | ForEach-Object { [byte]('0x' + $_) }))$yml.Content -split "`n" | Select-String -Pattern $b64Строка найдена — сумма совпала.
cd ~/Downloads/f1-first-run# суммы лежат в latest-linux.yml рядом со сборкой, в виде sha512curl -fsSLO https://dl.plantype.ru/f1/release/latest/latest-linux.ymlopenssl dgst -sha512 -binary F1-*-amd64.deb | base64grep -A1 'amd64.deb' latest-linux.ymlУстановить и проверить F1
Заголовок раздела «Установить и проверить F1»Распаковка
Заголовок раздела «Распаковка»cd ~/Downloads/f1-first-runmkdir -p unpackedditto -x -k F1-*-mac-*.zip unpackedditto unpacked/F1.app ~/Applications/F1.appЗапустите скачанный F1-…-setup.exe и пройдите установщик. Установка идёт
на всю машину, поэтому потребуются права администратора. Каталог по
умолчанию — C:\Program Files\F1, в самом установщике его можно изменить.
cd ~/Downloads/f1-first-run
# Debian, Ubuntu и производныеsudo apt install ./F1-*.deb
# Fedora, RHEL и производныеsudo dnf install ./F1-*.rpmПакет ставится в /opt/F1.
Проверка подписи и нотариального заверения
Заголовок раздела «Проверка подписи и нотариального заверения»APP="$HOME/Applications/F1.app"codesign --verify --deep --strict --verbose=2 "$APP"spctl -a -vv "$APP"Ожидается успешная проверка codesign и строка accepted с
Notarized Developer ID от spctl.
Get-AuthenticodeSignature "C:\Program Files\F1\F1.exe" | Format-List Status, SignerCertificateОжидается Status: Valid. Значение NotSigned означает, что файл получен
не из каталога релиза — такой пакет запускать не нужно.
Целостность пакета проверяет менеджер пакетов при установке: apt и dnf
отвергнут пакет с испорченным содержимым. Отдельной команды не требуется —
достаточно сверки контрольной суммы на предыдущем шаге.
Рядом с пакетом .deb лежит отделённая подпись — файл .asc; у пакета
.rpm её в каталоге выпуска нет. Открытый ключ к ней
в каталоге выпуска F1 пока не публикуется, поэтому проверить происхождение
файла этой подписью нельзя: сверяйте контрольную сумму из latest*.yml, а
если проверка подписи обязательна по вашим правилам, запросите ключ у нас.
Ожидается успешная проверка codesign и строка accepted / Notarized Developer ID от spctl.
Первый запуск интерфейса
Заголовок раздела «Первый запуск интерфейса»open ~/Applications/F1.appЗапустите F1 из меню «Пуск» или ярлыком на рабочем столе — установщик создаёт оба.
/opt/F1/f1Откройте любую XLSX-книгу и убедитесь, что видна сетка. После этого F1 можно закрыть: следующий раздел использует встроенный Rust-процессор напрямую.
Найти процессор
Заголовок раздела «Найти процессор»F1_CLI="$HOME/Applications/F1.app/Contents/Resources/runtime/native/compute_contract_cli"file "$F1_CLI"test -x "$F1_CLI" && echo "процессор готов"$F1_CLI = "C:\Program Files\F1\resources\runtime\native\compute_contract_cli.exe"Test-Path $F1_CLIОтвет True означает, что процессор на месте.
F1_CLI="/opt/F1/resources/runtime/native/compute_contract_cli"file "$F1_CLI"test -x "$F1_CLI" && echo "процессор готов"Что дальше
Заголовок раздела «Что дальше»Процессор установлен — дальше четыре пути:
- Проверить, что API отвечает. Быстрый старт: открыть книгу, записать значение и формулу, сохранить результат.
- Понять устройство сеанса. Как устроен сеанс API: транспорт, состав ответа и обработка отказов.
- Посмотреть разбор вызовов. Запросы из примера — что именно отправляется на каждом шаге.
- Увидеть готовый код. Примеры — двадцать три маленьких проекта, каждый показан целиком.
Если что-то не запускается — диагностика.