# Office, переписанный на Rust: что уже работает и как попробовать

> AI Release · @ai_release1 · https://ai-release.org/guides/office-na-rust-chto-rabotaet.html

## TL;DR

- Время выполнения: 30–40 минут (без скачивания Android platform-tools и настройки телефона)
- Уровень сложности: Intermediate
- Понадобится: Windows 10/11 x64, macOS или Linux; `git`; Android-устройство с процессором arm64-v8a; `adb` из Android platform-tools; Rust toolchain через `rustup` — если будете собирать из исходников (точную версию сверьте с документацией репозитория)
- Результат: вы ставите на arm64-устройство неофициальный порт WordCraft (`kanaaka/wordcraft-android`) и понимаете границы применимости ArtCraft — Rust-реимплементации Office, которая в open source уже есть, но к производственному использованию не готова

## Требования и подготовка
![Иллюстрация к разделу «Требования и подготовка»](https://ai-release.org/guides/img/office-na-rust-chto-rabotaet-ru-1.jpg?v=1793782026)


- **ОС.** Любая из трёх: Windows 10/11 x64, macOS или Linux. Для сборки Rust-кода на Windows удобно держать Linux-окружение — как это делается, разобрано в гайде [WSL 3.0: официальная x64-сборка 3.0.3.0](https://ai-release.org/guides/wsl-3-0-x64-skachat-release-date.html?utm_source=tg&utm_medium=channel&utm_campaign=guide_inline&utm_content=guide_to_guide).
- **Git** — система контроля версий, через неё вы забираете репозиторий с GitHub.
- **Rust toolchain** — компилятор `rustc` и менеджер пакетов `cargo`. Ставится через `rustup`. Версию, которую требует проект, сверьте с документацией: в исходных постах она не указана.
- **Android platform-tools** — набор утилит, главная из них `adb` (Android Debug Bridge, «мост» между компьютером и телефоном).
- **Телефон или планшет на arm64-v8a.** Это 64-битная ARM-архитектура, на которой работает большинство современных Android-устройств. В посте прямо сказано: APK выложен под arm64-v8a.
- **Права.** На телефоне нужно включить «Для разработчиков» и «Отладку по USB».
- **Свободное место.** Ориентируйтесь на несколько гигабайт под toolchain и platform-tools; точный размер сверьте с документацией.
- **Чего у вас нет и не будет из коробки:** официального установщика ArtCraft. В посте сказано только, что пакет доступен в open source и что в коде участвует ИИ Claude. Ни версии, ни ссылки на установку не приводится — путь установки ArtCraft сверьте с документацией проекта и материалом The Register.

Пример таблицы, которую полезно держать перед глазами, пока проходите шаги:

| Проект | Что это | Платформа | Статус по посту |
|---|---|---|---|
| ArtCraft | Реимплементация Microsoft Office на Rust: аналоги Word, Excel, PowerPoint | не указана в посте | open source, к производственному использованию не готов |
| WordCraft (порт `kanaaka/wordcraft-android`) | Неофициальный Android-порт WordCraft, APK под arm64-v8a | Android | сторонняя сборка, не официальный релиз |

## Шаг 1. Разведка репозитория и фиксация границ
![Иллюстрация к разделу «Шаг 1. Разведка репозитория и фиксация границ»](https://ai-release.org/guides/img/office-na-rust-chto-rabotaet-ru-2.jpg?v=1793782029)


**Что сделать:** склонировать репозиторий порта и посмотреть, из чего он собран, прежде чем что-то запускать.

**Зачем:** порт собран из shell-crate (crate — это пакет кода на Rust), патча к апстримному проекту, заметок о переносе и скриптов сборки. Пока вы не увидели эти части своими глазами, вы не понимаете, что именно ставите на телефон.

```bash
git clone https://github.com/kanaaka/wordcraft-android.git
cd wordcraft-android
ls
git log -1 --format="%H %ad"
```

Ожидаемый результат: `ls` показывает содержимое репозитория — каталог shell-crate, файл патча к апстримному проекту, заметки о переносе и скрипты сборки. Точные имена файлов сверьте с README: в исходном посте они перечислены по смыслу, а не дословно.

**Как проверить:** команда `git log -1` печатает хеш и дату последнего коммита. Запишите хеш — это версия, на которой вы тестируете, и её можно назвать, если что-то пойдёт не так.

**Пример:** сохраните хеш в файл, чтобы потом сравнивать поведение разных сборок:

```bash
git log -1 --format="%H" > ../wordcraft-commit.txt
cat ../wordcraft-commit.txt
```

Почему это работает: Git хранит полную историю, и один хеш однозначно определяет состояние кода. Дальше ищите готовый APK, чтобы не собирать вручную:

```bash
find . -name "*.apk" -type f
```

Если файл нашёлся — переходите к шагу 2. Если нет — APK лежит в разделе Releases репозитория; сборку из исходников выполняйте по скриптам из репозитория, команды сверьте с документацией.

## Шаг 2. Установка APK на arm64-устройство

**Что сделать:** подключить телефон по USB, проверить связь и установить APK.

**Зачем:** APK — это установочный пакет Android. Порт распространяется именно так, без Google Play, поэтому установка идёт через `adb`.

```bash
adb devices
adb install -r /путь/к/wordcraft.apk
```

`/путь/к/wordcraft.apk` замените на реальный путь из вывода `find` из шага 1. Флаг `-r` означает переустановку поверх существующей версии.

Ожидаемый вывод `adb devices` — строка вида `<серийный-номер>	device` (слово `device`, не `offline` и не `unauthorized`). Ожидаемый вывод `adb install` — `Success`.

**Как проверить:** после `Success` откройте список приложений на телефоне и найдите WordCraft. Дополнительно:

```bash
adb shell pm list packages | grep -i wordcraft
```

Команда печатает имя пакета, если он установлен. Точное имя пакета в посте не приводится — если `grep` ничего не нашёл, сверьтесь с документацией или ищите по части названия.

**Пример:** если у вас несколько устройств и `adb` ругается на неоднозначность, укажите серийник явно:

```bash
adb -s <серийный-номер> install -r /путь/к/wordcraft.apk
```

Почему это работает: `adb` ставит пакет через системный установщик Android, а `-s` снимает неоднозначность выбора устройства. Это сторонняя сборка, не официальный релиз, поэтому система может показать предупреждение об источнике — это ожидаемо.

## Шаг 3. Проверка результата и границы применимости
![Иллюстрация к разделу «Шаг 3. Проверка результата и границы применимости»](https://ai-release.org/guides/img/office-na-rust-chto-rabotaet-ru-3.jpg?v=1793782034)


**Что сделать:** открыть приложение, выполнить базовую операцию с документом и отдельно зафиксировать, чего делать нельзя.

**Зачем:** нужно понять, где заканчивается «попробовать» и начинается риск для рабочих файлов.

Чек-лист проверки:

- [ ] Приложение запускается без падения на старте
- [ ] Открывается новый документ
- [ ] Ввод текста и сохранение работают на тестовом файле, не на рабочем
- [ ] Версия Android и модель устройства записаны рядом с хешем коммита из шага 1
- [ ] Ни один производственный документ не открывался в порте

**Как проверить:** создайте пустой тестовый файл, наберите пару слов, сохраните, закройте и откройте снова. Если текст на месте — базовая петля «открыть → изменить → сохранить» работает.

Отдельно про ArtCraft: в посте сказано прямо — пакет доступен в open source, но к производственному использованию не готов. Значит, сценарий «перевести отдел на Rust-Office» на этом шаге не проверяется и не выполняется. Допустимая проверка — только изучение кода и запуск на личной машине по документации проекта.

**Пример:** если нужна чистая система под эксперимент, поставьте её по инструкции [Как установить Windows 11 26H2: пошаговая инструкция с официального ISO](https://ai-release.org/guides/kak-ustanovit-windows-11-26h2-poshagovaya-instruktsiya.html?utm_source=tg&utm_medium=channel&utm_campaign=guide_inline&utm_content=guide_to_guide) — так тест не заденет рабочее окружение.

Почему это работает: вы отделяете эксперимент от данных, которые нельзя потерять. Это единственный безопасный режим для незрелого open-source кода.

## Возможные проблемы и решения

**Проблема. APK не ставится на эмулятор или старое устройство.**
- Ошибка: `Failure [INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113]`
- Причина: сборка выложена только под arm64-v8a, а эмулятор или устройство работает на другой архитектуре (например, x86_64).
- Решение: установите на физическое arm64-устройство. Проверьте, что видно в списке устройств:
```bash
adb devices
adb shell getprop ro.product.cpu.abi
```
Вторая команда должна вывести `arm64-v8a`.

**Проблема. Компьютер не видит телефон.**
- Ошибка: `error: no devices/emulators found`
- Причина: не включена отладка по USB, не подтверждён запрос на телефоне или завис сервер `adb`.
- Решение: включите «Отладку по USB», переподключите кабель, подтвердите диалог на экране телефона, затем:
```bash
adb kill-server
adb start-server
adb devices
```
В выводе должно появиться слово `device`. Если стоит `unauthorized` — подтвердите запрос на телефоне.

**Проблема. Не находится команда сборки Rust.**
- Ошибка: `zsh: command not found: cargo` (или `bash: cargo: command not found`)
- Причина: toolchain установлен, но его каталог `~/.cargo/bin` не попал в `PATH` — переменную окружения со списком каталогов, где система ищет программы.
- Решение: подключите окружение и проверьте:
```bash
source "$HOME/.cargo/env"
cargo --version
```
Команда должна вывести версию. Требуемую проектом версию сверьте с документацией репозитория.

## Резюме и следующие шаги

Вы прошли путь от клонирования `kanaaka/wordcraft-android` до установленного APK на arm64-устройстве и зафиксировали, что ArtCraft в open source уже есть, но к производственному использованию не готов. Дальше сверьтесь с документацией обоих проектов, зафиксируйте хеш коммита и протестируйте ещё одну сборку на отдельном устройстве, прежде чем делать выводы о пригодности.

## FAQ

**ArtCraft — это официальный Microsoft Office?**
Нет. Это собственная реимплементация Office от Rust-стартапа ArtCraft: в открытой линейке появились аналоги Word, Excel и PowerPoint, в работе над кодом участвует ИИ Claude.

**Можно ли перевести рабочие документы на ArtCraft?**
Нет. В посте указано, что пакет доступен в open source, но к производственному использованию не готов.

**WordCraft-порт — это официальный релиз?**
Нет. Это сторонняя сборка из репозитория `kanaaka/wordcraft-android`, выложенная как APK под arm64-v8a; она не является официальным релизом.

**Почему APK не ставится на эмулятор?**
Потому что сборка выложена под архитектуру arm64-v8a, а большинство эмуляторов на x86_64. Нужно физическое arm64-устройство — проверяется командой `adb shell getprop ro.product.cpu.abi`.
