Библиотека Go с готовыми интерактивными виджетами — формами, таблицами, деревьями, списками и текстовыми полями — для создания терминальных интерфейсов.
ArthurSonzogni/FTXUI
Библиотека C++ в заголовочных файлах для создания терминальных интерфейсов в функциональном компонентном стиле, без внешних зависимостей.
- Звёзды
- 10,829
- Форки
- 628
- Открытые issues
- 34
- Последний коммит
- 10 часов назад
Что это?
FTXUI — библиотека C++ для создания терминальных интерфейсов. С её помощью разработчики описывают компоновку как дерево элементов, объединённых функциями вроде hbox, vbox и gridbox, а библиотека выводит результат в терминал. Интерактивные виджеты — кнопки, меню, поля ввода, слайдеры, флажки и выпадающие списки — доступны в виде компонентов, реагирующих на события клавиатуры, мыши и изменения размера окна.
Библиотека состоит из трёх модулей: screen для низкоуровневого отображения цветов и символов, dom для компоновки и стилизации и component для взаимодействия с пользователем и основного цикла обработки событий. FTXUI поддерживает UTF-8 и полноширинные символы, цвета, текстовое оформление, рисование на canvas с помощью символов Брайля или блоков, а также анимацию. У библиотеки нет зависимостей; подключить её можно через CMake FetchContent, Bazel, Meson, vcpkg, Conan или в виде объединённой сборки с одним заголовочным файлом. Также поддерживаются модули C++20. Среди поддерживаемых платформ — Linux и macOS, WebAssembly и Windows.
Ключевые возможности
- 01Функциональный API на основе компонентов для создания компоновок и интерактивных виджетов
- 02Навигация с клавиатуры и мыши и встроенные виджеты, например меню, поля ввода и слайдеры
- 03Гибкая компоновка с помощью hbox, vbox, gridbox и flexbox
- 04Рисование на canvas символами Брайля, блоками или обычными символами
- 05Поддержка UTF-8 и полноширинных символов; внешние зависимости не нужны
Сценарии использования
- Создание интерактивных CLI-инструментов с меню, формами или панелями мониторинга
- Разработка терминальных игр и анимированной визуализации в текстовом режиме
- Создание системных мониторов или просмотрщиков логов, подстраивающихся под размер терминала
Темы
Частые вопросы
- Что такое FTXUI?
- Библиотека C++ в заголовочных файлах для создания терминальных интерфейсов в функциональном компонентном стиле, без внешних зависимостей. FTXUI — библиотека C++ для создания терминальных интерфейсов. С её помощью разработчики описывают компоновку как дерево элементов, объединённых функциями вроде hbox, vbox и gridbox, а библиотека выводит результат в терминал. Интерактивные виджеты — кнопки, меню, поля ввода, слайдеры, флажки и выпадающие списки — доступны в виде компонентов, реагирующих на события клавиатуры, мыши и изменения размера окна.
- FTXUI можно использовать бесплатно? Какая у него лицензия?
- FTXUI распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- FTXUI всё ещё поддерживается?
- Активно поддерживается. Последний коммит в FTXUI — 21 окт. 2026 г..
- Для чего можно использовать FTXUI?
- Создание интерактивных CLI-инструментов с меню, формами или панелями мониторинга Разработка терминальных игр и анимированной визуализации в текстовом режиме Создание системных мониторов или просмотрщиков логов, подстраивающихся под размер терминала
- Где скачать FTXUI?
- Исходный код и инструкции по установке — на GitHub: https://github.com/ArthurSonzogni/FTXUI
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Rust-крейт для создания терминальных интерфейсов (TUI) с переиспользуемыми виджетами и простой моделью отрисовки.
Python-фреймворк для создания интерфейсов терминальных и веб-приложений с простым компонентным API.
Терминальная заставка на Go, которая запускается при простое shell и показывает анимированные сцены: созвездия, дождь, частицы и другие.
Терминальное приложение прогноза погоды на Rust, которое показывает текущие условия в виде ASCII-анимаций дождя, снега и грозы.
Кроссплатформенная библиотека на Go для создания настраиваемых терминальных дашбордов с изменяемым размером и интерактивными виджетами.