Slint — декларативный GUI-фреймворк для создания нативных интерфейсов в приложениях на Rust, C++, JavaScript и Python.
elixir-crab/gpui
Библиотека Elixir для создания нативных настольных приложений с декларативным UI на базе фреймворка GPUI, написанного на Rust.
- Звёзды
- 102
- Форки
- 4
- Открытые issues
- 12
- Последний коммит
- 4 дня назад
Что это?
GPUI позволяет разрабатывать нативные настольные приложения на Elixir. Состояние приложения, компоновка окон и описание UI остаются в Elixir, а Rust отвечает за нативный цикл обработки событий, окна, отрисовку, фокус, IME и доступность. UI описывается с помощью шаблонов в стиле HEEx, а события указателя, клавиатуры и активации с использованием вспомогательных технологий передаются обратно в Elixir через типизированный механизм событий.
Одно и то же декларативное приложение можно запустить с локальным нативным дисплеем, детерминированным тестовым дисплеем, которому не нужен сервер дисплея, или удалённым дисплеем на другой машине. Стандартные элементы управления доступны в отдельном пакете gpui_components, который построен на gpui-component. Предварительно скомпилированные архивы NIF доступны для Linux, macOS на Apple silicon и Windows x86-64.
Репозиторий — это umbrella-проект Mix с пакетами gpui, gpui_components и gpui_native, а также примерами: просмотром форматированного текста, панелью мониторинга среды выполнения BEAM и галереей компонентов.
Ключевые возможности
- 01Декларативный UI на Elixir с шаблонами в стиле HEEx
- 02Rust и GPUI отвечают за нативные окна, фокус, IME и доступность
- 03Детерминированный тестовый дисплей, работающий без сервера дисплея
- 04Удалённые дисплеи, при этом основная сессия остаётся на другой машине
- 05Сохраняющее состояние нативное редактирование текста с позициями UTF-16, отменой и повтором действий, а также IME
- 06Виртуализированные коллекции и форматированный текст с возможностью выделения
Сценарии использования
- Создание нативного настольного инструмента или панели мониторинга поверх существующей системы на Elixir/OTP
- Написание UI-тестов для настольных приложений на Elixir без сервера дисплея
- Запуск приложения под управлением Elixir, окна которого отображаются на другой машине
- Добавление стандартных элементов управления, например кнопок и форм, в настольное приложение на Elixir
Быстрый старт
- 1
Клонируйте репозиторий
- 2
Загрузите зависимости
mix deps.get - 3
Запустите пример окна hello
RUST_FONTCONFIG_DLOPEN=1 mix run apps/gpui/examples/getting_started/01_hello_window.exs
Что важно знать
- Предварительно скомпилированные нативные бинарные файлы доступны только для Linux, macOS на Apple silicon и Windows x86-64.
- Для нативных функций отображения необходим локальный сервер дисплея и выполнение требований платформы.
В подборках
Темы
Частые вопросы
- Что такое gpui?
- Библиотека Elixir для создания нативных настольных приложений с декларативным UI на базе фреймворка GPUI, написанного на Rust. GPUI позволяет разрабатывать нативные настольные приложения на Elixir. Состояние приложения, компоновка окон и описание UI остаются в Elixir, а Rust отвечает за нативный цикл обработки событий, окна, отрисовку, фокус, IME и доступность. UI описывается с помощью шаблонов в стиле HEEx, а события указателя, клавиатуры и активации с использованием вспомогательных технологий передаются обратно в Elixir через типизированный механизм событий.
- gpui можно использовать бесплатно? Какая у него лицензия?
- gpui распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- gpui всё ещё поддерживается?
- Активно поддерживается. Последний коммит в gpui — 3 нояб. 2026 г..
- Для чего можно использовать gpui?
- Создание нативного настольного инструмента или панели мониторинга поверх существующей системы на Elixir/OTP Написание UI-тестов для настольных приложений на Elixir без сервера дисплея Запуск приложения под управлением Elixir, окна которого отображаются на другой машине Добавление стандартных элементов управления, например кнопок и форм, в настольное приложение на Elixir
- Как установить gpui?
- Клонируйте репозиторий Загрузите зависимости: mix deps.get Запустите пример окна hello: RUST_FONTCONFIG_DLOPEN=1 mix run apps/gpui/examples/getting_started/01_hello_window.exs
- Где скачать gpui?
- Исходный код и инструкции по установке — на GitHub: https://github.com/elixir-crab/gpui
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Кроссплатформенная декларативная GUI-библиотека на Rust для создания нативных приложений для компьютеров и мобильных устройств.
Кроссплатформенный движок нативных интерфейсов: логика приложения работает на Go, а каждая платформа отрисовывает интерфейс своими нативными представлениями.
Набор компонентов для Rust GUI с более чем 75 стилизованными компонентами для кроссплатформенных приложений на GPUI.
GUI-фреймворк для Python, который использует в приложениях нативные виджеты каждой операционной системы.
Фреймворк на Go для создания десктопных приложений с веб-интерфейсом в системном webview или нативным UI, который рендерится на GPU.