Light
Light — декларативный реактивный GUI-фреймворк для Rust. Вы пишете HTML-разметку с директивами (v-if, v-for, v-model), описываете состояние реактивными свойствами (#[proxy]), а Light компилирует шаблоны на этапе сборки в Rust-код, строящий виртуальный DOM.
Окна создаются на winit, а программно нарисованный кадр показывается через softbuffer; wgpu доступен отдельной фичей. Light даёт привычный DX (как в Vue.js), но с производительностью и надёжностью нативного Rust.
Зачем использовать Light?
- CLI для всего.
light init,light dev,light build— вам не нужно вручную настраивать сборку и зависимости. - Компиляция вместо интерпретации. Шаблоны превращаются в Rust на этапе сборки. В рантайме нет HTML-парсера и интерпретатора разметки.
- Гранулярная реактивность. Изменение свойства перерисовывает только зависящие узлы виртуального дерева.
- Нативные окна. Безрамочные окна, кастомный titlebar, модальные окна и несколько окон — из коробки.
- Платите только за используемое. Каждая подсистема — Cargo-фича; код выключенных возможностей не попадает в бинарник.
- Дружелюбен к ИИ-агентам. Уникальный
light devtoolsпозволяет автономным агентам тестировать UI и собирать скриншоты.
🚀 Быстрый старт (3 шага)
Самый простой способ создать проект — установить CLI и запустить init:
# 1. Устанавливаем CLI
# 2. Создаём проект
# 3. Запускаем с hot-reload
Готово! Откроется окно вашего первого приложения.
Доступны готовые шаблоны showcase-приложений (counter, todo, calculator):
Статус
Текущая версия — 0.17.6. Проект в стадии пре-1.0: публичный API ещё не стабилен и может меняться между минорными версиями. Мы следуем семверу.
Ручная сборка (без CLI)
Если вы предпочитаете классический cargo без использования CLI-утилиты, создайте проект вручную.
Cargo.toml:
[]
= "my-app"
= "0.1.0"
= "2021"
[]
= "0.17"
[]
= ["light-fw/dev-mode"]
src/main.rs:
use *;
templates/app.html:
Привет, {{ name }}!
Поздороваться
# или cargo run --features dev-mode (для DevTools)
Примечание: При использовании
cargo runправки в HTML-файлах не подхватываются автоматически. Используйтеlight devдля горячей перезагрузки.
Showcase
| Calculator | Todo | Dashboard |
|---|---|---|
![]() |
![]() |
![]() |
Полноценный dashboard с изображениями, вкладками и модальным окном:
Разработка и DevTools
Запустите light dev — Light поднимет supervisor, который следит за templates/ и src/.
- При изменении HTML мгновенно применяется
RELOAD_TEMPLATE(без пересборки). - При изменении
.rsпроисходит инкрементальная пересборка с сохранением состояния окна.
Под капотом light dev также запускает TCP-сервер (порт 9229), который отдаёт JSON-снимок состояния UI.
Agent-friendly DevTools (0.17+)
Light можно назвать первым GUI-фреймворком для Rust, спроектированным с учётом ИИ-агентов.
Команда light devtools даёт агенту «увидеть» UI (дерево VDOM, раскладка, снимок состояния, скриншот) и «потрогать» его (клик, ввод текста, клавиши) по стабильным ключам узлов.
Флаг --agent создаёт .light/agent-sessions/<id>/ с журналом действий (actions.jsonl) и генерирует summary.md — готовый отчёт с доказательствами для агента.
Управление компонентами (CLI)
Light поддерживает модульные компоненты (например, элементы форм или валидацию).
Если вы используете компонент в шаблоне, но забыли его установить, light dev или light build автоматически обнаружат это и предложат установить (в неинтерактивном режиме — установят сами).
Крейты воркспейса
Light разделён на крейты, чтобы вы подключали только то, что вам нужно:
| Крейт | Назначение |
|---|---|
light |
CLI-утилита (cargo install light): dev-сервер, сборка, менеджер компонентов. |
light-fw |
Мета-крейт (библиотека): реэкспортирует ядро, макросы и подключённые компоненты. |
light-fw-core |
Ядро: VDOM, реактивность, раскладка, отрисовка, окно. |
light-fw-macros |
Процедурные макросы #[template] и #[proxy]. |
light-fw-html |
Разбор HTML-шаблонов. |
light-fw-element-form |
Компонент-элемент: <checkbox>, <radio>, <select>. |
light-fw-behavior-validation |
Валидация: required, :validator, @validate. |
light-fw-cli-core |
Внутренняя логика CLI. |
Документация
Сайт: gifoff.github.io/light.
- Быстрый старт — установка и первый проект.
- Руководство пользователя — директивы, стили, события, окна, DevTools.
- Справочник CLI — все команды
light. - Архитектура — устройство фреймворка для контрибьюторов.
- Roadmap — планы по развитию.
Лицензия
Распространяется под лицензией MIT OR Apache-2.0 на ваш выбор. Полные тексты — в файлах LICENSE-MIT и LICENSE-APACHE.


