Кроссплатформенный движок нативных интерфейсов: логика приложения работает на Go, а каждая платформа отрисовывает интерфейс своими нативными представлениями.
marc2332/freya
Кроссплатформенная декларативная GUI-библиотека на Rust для создания нативных приложений для компьютеров и мобильных устройств.
- Звёзды
- 3,344
- Форки
- 151
- Открытые issues
- 42
- Последний коммит
- 8 часов назад
Что это?
Freya — декларативная GUI-библиотека для Rust, которая отображает нативные интерфейсы на компьютерах и других платформах. Разработчики описывают UI с помощью функций и компонентов на Rust, а изменение состояния, заданного хуками вроде use_state, автоматически запускает повторную отрисовку зависящих от него частей. Начиная с версии 0.4, библиотека использует собственное реактивное ядро, а не Dioxus.
В библиотеку входит набор готовых компонентов, в том числе Button, Switch, Slider, VirtualScrollView, Calendar и ColorPicker. Дополнительные возможности можно подключить через feature flags: редактор кода на основе tree-sitter, просмотрщик Markdown, маршрутизацию, глобальное состояние через freya-radio, интернационализацию на базе Fluent, стилизацию Material Design, отображение HTML/CSS через Blitz, эмулятор терминала с поддержкой PTY и построение графиков с помощью Plotters.
Freya также поддерживает тестирование без графического интерфейса через freya-testing: с его помощью можно имитировать щелчки и сохранять отрисованный UI в файл изображения. Кроме того, есть приложение devtools для просмотра дерева компонентов.
Ключевые возможности
- 01Декларативная модель компонентов и состояние на основе хуков: зависимый UI перерисовывается автоматически.
- 02Встроенные компоненты, например Button, Switch, Slider, Calendar и VirtualScrollView.
- 03Дополнительный редактор кода: Rope для работы с текстом и tree-sitter для подсветки синтаксиса.
- 04Маршрутизация, управление глобальным состоянием и интернационализация на базе Fluent, подключаемые через feature flags.
- 05Встроенный эмулятор терминала с поддержкой PTY и отображение HTML/CSS через Blitz.
- 06Тестирование без графического интерфейса с возможностью сохранять отрисованный UI в файл.
Сценарии использования
- Создание нативных инструментов и утилит для компьютеров на чистом Rust.
- Разработка инструментов для разработчиков, например редакторов кода и интерфейсов для работы с терминалом.
- Создание прототипов панелей визуализации данных с помощью функции построения графиков.
- Написание UI-тестов для GUI-приложений на Rust без открытия окна.
Быстрый старт
- 1
Добавьте Freya в Cargo.toml
- 2
Клонируйте репозиторий вместе с подмодулями
git clone --recurse-submodules https://github.com/marc2332/freya.git - 3
Перейдите в каталог проекта
cd freya - 4
Запустите пример
cargo run --example counter
Что важно знать
- Для запуска примеров необходима среда разработки Rust и подмодули git.
- При сборке windows-gnu в Windows могут возникать ошибки компиляции.
В подборках
Темы
Частые вопросы
- Что такое freya?
- Кроссплатформенная декларативная GUI-библиотека на Rust для создания нативных приложений для компьютеров и мобильных устройств. Freya — декларативная GUI-библиотека для Rust, которая отображает нативные интерфейсы на компьютерах и других платформах. Разработчики описывают UI с помощью функций и компонентов на Rust, а изменение состояния, заданного хуками вроде use_state, автоматически запускает повторную отрисовку зависящих от него частей. Начиная с версии 0.4, библиотека использует собственное реактивное ядро, а не Dioxus.
- freya можно использовать бесплатно? Какая у него лицензия?
- freya распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- freya всё ещё поддерживается?
- Активно поддерживается. Последний коммит в freya — 7 нояб. 2026 г..
- Для чего можно использовать freya?
- Создание нативных инструментов и утилит для компьютеров на чистом Rust. Разработка инструментов для разработчиков, например редакторов кода и интерфейсов для работы с терминалом. Создание прототипов панелей визуализации данных с помощью функции построения графиков. Написание UI-тестов для GUI-приложений на Rust без открытия окна.
- Как установить freya?
- Добавьте Freya в Cargo.toml Клонируйте репозиторий вместе с подмодулями: git clone --recurse-submodules https://github.com/marc2332/freya.git Перейдите в каталог проекта: cd freya Запустите пример: cargo run --example counter
- Где скачать freya?
- Исходный код и инструкции по установке — на GitHub: https://github.com/marc2332/freya
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Slint — декларативный GUI-фреймворк для создания нативных интерфейсов в приложениях на Rust, C++, JavaScript и Python.
Библиотека Elixir для создания нативных настольных приложений с декларативным UI на базе фреймворка GPUI, написанного на Rust.
Кроссплатформенный UI-фреймворк .NET для создания десктопных, мобильных, встроенных и WebAssembly-приложений на C# и XAML.
Python-фреймворк для создания веб-, десктопных и мобильных приложений с интерфейсом на базе Flutter — без опыта во фронтенд-разработке.
Rust-движок для кроссплатформенных нативных интерфейсов: пишите приложения на Rust или TSX и используйте виджеты каждой платформы.