Repolode
marc2332

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. 1

    Добавьте Freya в Cargo.toml

  2. 2

    Клонируйте репозиторий вместе с подмодулями

    git clone --recurse-submodules https://github.com/marc2332/freya.git
  3. 3

    Перейдите в каталог проекта

    cd freya
  4. 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 обновляется ежедневно.

Похожие проекты

Кроссплатформенный движок нативных интерфейсов: логика приложения работает на Go, а каждая платформа отрисовывает интерфейс своими нативными представлениями.

214+38 за неделю9GoOtherАктивно поддерживаетсяОбновлён 4 часа назад

Rust-движок для кроссплатформенных нативных интерфейсов: пишите приложения на Rust или TSX и используйте виджеты каждой платформы.

2 тыс.+1,1 тыс. за неделю123RustOtherАктивно поддерживаетсяОбновлён 5 часов назад