Repolode
elixir-crab

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

    Клонируйте репозиторий

  2. 2

    Загрузите зависимости

    mix deps.get
  3. 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 обновляется ежедневно.

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

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

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

Фреймворк на Go для создания десктопных приложений с веб-интерфейсом в системном webview или нативным UI, который рендерится на GPU.

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