Exact: создание приложений для веба и платформ с AI-агентом
Exact — это инструмент для создания приложений, которые работают на вебе, macOS, iOS и Linux из одного кода, с помощью AI-агента для сборки и тестирования.
Проект упрощает разработку, позволяя избежать скучной мультиплатформенной адаптации. Задачи, которые обычно требуют значительных усилий на разных платформах, здесь делегируются AI-агенту, что экономит время. Это может быть полезно как для индивидуальных разработчиков, так и для команд, стремящихся ускорить процесс создания и тестирования приложений.
Запуск происходит через Bun: достаточно выполнить bun scripts/exact.mjs setup для инициализации, а затем bun scripts/exact.mjs new <path> для создания нового приложения. Будь внимателен, проект пока находится в разработке, так что могут быть баги, особенно если ты используешь его на нестандартных платформах. И учитывай, что для работы требуется установка Xcode, Rust и Chrome на Mac.
Exact — это кроссплатформенная среда выполнения приложений, позволяющая писать код один раз и запускать его на различных платформах: веб, macOS, iOS и Linux. Примечательно, что проект также поддерживает автоматизированных агентов, которые могут создавать, запускать и тестировать приложения на этих платформах.
Что это такое?
С помощью Exact ты описываешь интерфейс приложения на языке Contract — это декларативный язык, а логика данных пишется на TypeScript или Rust. Компилятор Contract превращает интерфейс в компактный план, который затем исполняется на различных платформах:
- На вебе — создается один ES-модуль с компактым рантаймом (около 20 КБ), который управляет реальным DOM.
- На macOS, iOS и Linux используется Rust-исполнитель, который исполняет тот же план, используя платформенные инструменты для отрисовки.
Важно, что в пользовательском интерфейсе нет webview и JavaScript bridge, что увеличивает производительность и уменьшает задержки. Приложения работают без запуска JavaScript до первых визуализируемых элементов.
Как установить и запустить
Для начала работы с Exact тебе нужно установить ряд инструментов:
- Rust через rustup.
- Bun — текущую версию можно скачать [здесь](https://bun.sh).
- Google Chrome для работы веб-агента.
- Xcode (для macOS) для сборки приложений для Apple.
- Дополнительно нужна установка Hermes для приложений на TypeScript.
Для запуска приложения выполни команды:
git clone https://github.com/expo/exact.git
cd exact
bun scripts/exact.mjs setup
bun host/web/dev.mjs
Первый запуск может занять несколько минут для компиляции инструментов. После этого можно открывать приложение в браузере по адресу: http://127.0.0.1:8765/.
Примеры и возможности
Exact позволяет создавать приложения с минимальной настройкой. Например, используя команду:
bun scripts/exact.mjs new ../hello
Ты создашь новый проект, который затем можно будет запустить с помощью команд для различных платформ:
bun exact.mjs web # Запустит веб-версию
bun exact.mjs mac --run # Запустит на macOS
bun exact.mjs ios --run # Запустит в iOS-симуляторе
Приложения могут включать такие модули, как управление состоянием, работа с REST API, SQLite и графические интерфейсы с использованием CSS.
Ограничения
На данный момент Exact находится на стадии pre-1.0, поэтому возможны изменения в API, нет обратной совместимости, а также отсутствуют руководства по миграции. Кройте приложения, используя native modules для интеграции с платформенными интерфейсами, однако следует помнить, что в проекте нет поддержки Windows, и разрабатываемая для Android функциональность также находится на начальных стадиях.
Кроме того, в разработке отсутствуют инструменты для редактирования на Linux, поддержка JSX и React, а также возможность осуществлять обновления кода в продуктиве.
Заключение
Exact предлагает уникальную инфраструктуру для разработки, ориентированную на кроссплатформенность и автоматизацию, позволяя создавать полноценные приложения с потенциалом для масштабирования и быстрого развертывания. Однако обязательно учитывай текущие ограничения и непредсказуемость API при работе с этим проектом.
Открыть на GitHub: expo/exact →
RepoRadar