FTXUI: Функциональный терминальный интерфейс на C++

28 июл 2025
10,663
620
91
1 неделя

Когда терминал — это не просто чёрный экран

Помните старые DOS-программы с псевдографикой? Современные терминальные приложения могут выглядеть куда интереснее! Библиотека FTXUI (Functional Terminal User Interface) позволяет создавать в консоли полноценные пользовательские интерфейсы с анимациями, графиками и интерактивными элементами.

Что такое FTXUI?

FTXUI — это кросс-платформенная C++ библиотека для построения TUI (Text-based User Interface). В отличие от классических консольных приложений, здесь можно:

  • Создавать сложные интерфейсы с вкладками, кнопками, слайдерами
  • Использовать анимации и графики
  • Организовывать гибкую компоновку элементов
  • Работать с мышью и клавиатурой

И всё это — без зависимостей, с поддержкой UTF-8 и полной кросс-платформенностью (Linux, macOS, Windows, WebAssembly).

5 причин обратить внимание на FTXUI

  1. Функциональный стиль — вдохновлён React, с удобной композицией компонентов
auto document = vbox({
    text("Заголовок") | bold | center,
    separator(),
    hbox({
        button("OK", [] { /* действие */ }) | flex,
        button("Отмена", [] { /* действие */ }) | flex
    })
}) | border;
  1. Богатая визуализация — от простого текста до анимированных графиков

  2. Готовые компоненты — меню, чекбоксы, радиокнопки, слайдеры и многое другое

    Реклама
  3. Гибкая компоновка — вертикальные и горизонтальные контейнеры, сетки, резиновые макеты

  4. Поддержка C++20 модулей — современный подход к организации кода

Где это можно применить?

  • Интерактивные CLI-утилиты
  • Административные панели серверов
  • Игры в терминале
  • Инструменты мониторинга
  • Образовательные проекты

Как начать использовать?

Проще всего подключить через CMake FetchContent:

include(FetchContent)
FetchContent_Declare(ftxui
  GIT_REPOSITORY https://github.com/ArthurSonzogni/ftxui
  GIT_TAG v6.1.9
)
FetchContent_MakeAvailable(ftxui)

target_link_libraries(your_app PRIVATE ftxui::component)

Или через Bazel:

bazel_dep(name = "ftxui", version = "v6.1.9")

FTXUI — отличный выбор, если вам нужно:

  • Создать удобный интерфейс для консольного приложения
  • Добавить визуализацию в терминальный инструмент
  • Поэкспериментировать с современным C++ в нестандартном контексте

Библиотека активно развивается, имеет хорошую документацию и множество примеров. Для C++ разработчиков, работающих с терминальными приложениями, FTXUI может стать настоящей находкой.

Попробуйте — возможно, именно этот инструмент сделает ваши консольные программы удобнее и современнее!

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.