Repolode
phoenix-tui

phoenix-tui/phoenix

Фреймворк для терминальных интерфейсов на Go на основе Elm Architecture: корректная работа с Unicode, встроенный и полноэкранный рендеринг, библиотека компонентов.

Звёзды
45
Форки
1
Открытые issues
0
Последний коммит
2 месяца назад

Что это?

Phoenix — фреймворк на Go для создания терминальных интерфейсов. Он состоит из 10 независимых модулей, которые можно подключать вместе или по отдельности, и следует Elm Architecture (Model, Update, View). Каждая библиотека организована по слоям в стиле DDD: domain, application, infrastructure и api.

Ширина текста вычисляется с учётом графемных кластеров и правил East Asian Width, поэтому эмодзи и символы CJK должны отображаться с правильным выравниванием. Рендеринг доступен во встроенном режиме с построчным diff или в полноэкранном режиме alt-screen. API управления TTY позволяет запускать внешние программы, например редакторы и shell, прямо из TUI, а затем восстанавливать интерфейс.

Библиотека компонентов включает текстовые поля, списки, таблицы, модальные окна, индикаторы прогресса со спиннерами, формы и меню выбора. В ней также есть система стилей в духе CSS с готовыми темами, раскладкой flexbox и grid, обработкой событий мыши и кроссплатформенным буфером обмена, который работает через SSH с помощью OSC 52. Руководство по миграции описывает переход с Bubbletea, Lipgloss и Bubbles.

Ключевые возможности

  • 01Управление состоянием по Elm Architecture с типобезопасными моделями на обобщённых типах
  • 02Вычисление ширины Unicode-символов и эмодзи на основе UAX #11
  • 03Встроенный рендеринг с построчным diff или полноэкранный режим alt-screen
  • 04Управление TTY для запуска внешних процессов, например редакторов и shell
  • 05Библиотека компонентов с текстовыми полями, таблицами, модальными окнами, формами и индикаторами прогресса
  • 06Тестовый терминал и утилиты для тестирования TUI

Сценарии использования

  • Создание интерактивных CLI-инструментов на Go, которым нужны формы, списки или меню
  • Разработка приложений в духе shell или редактора, которые передают управление внешним программам
  • Создание TUI, где текст CJK и эмодзи должен отображаться с правильным выравниванием
  • Миграция существующего проекта на Bubbletea/Lipgloss в кодовую базу со структурой DDD

Быстрый старт

  1. 1

    Установите модуль umbrella

    go get github.com/phoenix-tui/phoenix@latest
  2. 2

    Создайте main.go на основе примера Quick Start из README и запустите его

Что важно знать

  • Требуется Go 1.25 или новее.
  • Проект находится на ранней стадии и набрал всего 45 звёзд, поэтому у него небольшое сообщество и мало подтверждённых результатов.

Темы

Частые вопросы

Что такое phoenix?
Фреймворк для терминальных интерфейсов на Go на основе Elm Architecture: корректная работа с Unicode, встроенный и полноэкранный рендеринг, библиотека компонентов. Phoenix — фреймворк на Go для создания терминальных интерфейсов. Он состоит из 10 независимых модулей, которые можно подключать вместе или по отдельности, и следует Elm Architecture (Model, Update, View). Каждая библиотека организована по слоям в стиле DDD: domain, application, infrastructure и api.
phoenix можно использовать бесплатно? Какая у него лицензия?
phoenix распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
phoenix всё ещё поддерживается?
Обновлялся за последние 6 месяцев. Последний коммит в phoenix — 25 авг. 2026 г..
Для чего можно использовать phoenix?
Создание интерактивных CLI-инструментов на Go, которым нужны формы, списки или меню Разработка приложений в духе shell или редактора, которые передают управление внешним программам Создание TUI, где текст CJK и эмодзи должен отображаться с правильным выравниванием Миграция существующего проекта на Bubbletea/Lipgloss в кодовую базу со структурой DDD
Как установить phoenix?
Установите модуль umbrella: go get github.com/phoenix-tui/phoenix@latest Создайте main.go на основе примера Quick Start из README и запустите его
Где скачать phoenix?
Исходный код и инструкции по установке — на GitHub: https://github.com/phoenix-tui/phoenix

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

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

Библиотека Go с готовыми интерактивными виджетами — формами, таблицами, деревьями, списками и текстовыми полями — для создания терминальных интерфейсов.

14,1 тыс.695GoMITОбновлён 2 месяца назад