Light
Light — декларативный реактивный GUI-фреймворк для Rust. Вы пишете HTML-разметку
с директивами (v-if, v-for, v-model), описываете состояние реактивными
свойствами (#[proxy]), а Light компилирует шаблоны на этапе сборки в
Rust-код, строящий виртуальный DOM. Окна создаются на winit, а программно
нарисованный кадр показывается через softbuffer; wgpu доступен отдельной
фичей wgpu-backend.
- Компиляция вместо интерпретации. Шаблоны превращаются в Rust на этапе сборки: в рантайме нет HTML-парсера и интерпретатора разметки.
- Гранулярная реактивность. Изменение свойства перерисовывает только зависящие узлы виртуального дерева.
- Нативные окна. Безрамочные окна, кастомный titlebar, модальные окна и несколько окон — из коробки.
- Платите только за используемое. Каждая подсистема — Cargo-фича; код выключенных возможностей не попадает в бинарник.
- Компактные бинарники. Программный рендеринг через
softbufferвключён по умолчанию: release-сборка демо занимает ~1.7 MB вместо ~7.7 MB сwgpu.
С чего начать
- Быстрый старт — первое приложение за несколько минут.
- Руководство пользователя — шаблоны, реактивность, окна и CLI.
- Архитектура — устройство фреймворка для контрибьюторов.
- Разработка компонентов — собственные элементы и поведения.
- Сторонние компоненты — публикация компонента на crates.io.
Статус
Текущая версия — 0.7.0. Проект в стадии пре-1.0: публичный API ещё не стабилен и может меняться между минорными версиями.
Ссылки
- Основной репозиторий: GitHub
- Зеркало: GitVerse
- Сайт документации: gifoff.github.io/light