13 июня, после более года разработки, состоялся выпуск 7.0.0 кроссплатформенной библиотеки FTXUI, предназначенной для создания на C++ приложений с текстовым интерфейсом и распространяемой по лицензии MIT.
( читать дальше... )
c++, ftxui, tui, библиотека, консоль
13 июня, после более года разработки, состоялся выпуск 7.0.0 кроссплатформенной библиотеки FTXUI, предназначенной для создания на C++ приложений с текстовым интерфейсом и распространяемой по лицензии MIT.
Возможности библиотеки:
Документация
Компиляция
tools$ amalgamate.py для генерации «амальгамированного» исходного кода: ftxui.cpp (534 Kб), ftxui.hpp (110 Кб) и ftxui_all.hpp (643 Кб).pthread.Изменения совместимости с прошлыми версиями
Pixel в CellImage в SurfaceScreenInteractive в AppPixelAt в CellAt
Для обеспечения совместимости предусмотрены псевдонимы и заголовки, чтобы не нарушить работу существующего кода.std::string_view вместо const std::string& там, где это возможно. Это обеспечивает лучшую совместимость со строковыми литералами и позволяет избежать ненужных копирований.Компоненты
sigaction для надежного маскирования сигналов. Обеспечена защита от двойного восстановления терминала при выходе из программы с помощью атомарного отслеживания исходного состояния. Добавлена поддержка дополнительных сигналов POSIX (SIGBUS, SIGSYS, как сигналов сбоя, и SIGQUIT, SIGHUP, как сигналов отложенного завершения) и исправлены проблемы безопасности асинхронных сигналов.Renderer во вложенных контейнерах.App.stdin (при использовании pipe) и при этом по-прежнему принимать ввод с клавиатуры в терминале.App::HandlePipedInput(false).DOM
\n) внутри text() и vtext().dbox передает фокус от верхних слоев к нижним, что соответствует визуальному отображению.ComputeShrinkHard.vbox/hbox/dbox для возможности использования контейнера Element в качестве входных данных.gridbox исправлено добавление дочерних элементов.gauge.flex с параметром _factor. Они позволяют указывать пользовательские коэффициенты растяжения или сжатия:flex_factor(grow, shrink), flex_grow_factor(grow), flex_shrink_factor(shrink), а также варианты для осей x и y.Оптимизации отрисовки
Screen::ResetPosition (без очистки экрана) в один параметризованный набор команд CSI для перемещения курсора вверх (\x1B[<n>A) вместо вывода одного \x1B[1A на каждую строку. Это уменьшило количество экранирующих символов на кадр во время перерисовки (например, ~197 -> 6 байтов для экрана с 50 строками, ~33-кратное уменьшение).Screen::ToString(), Color::Print() и string_width(), что ускорило:
| # | Наименование новости | Тональность | Информативность | Дата публикации |
|---|---|---|---|---|
| 1 | fooyin 0.11.0 и 0.11.1 | 0 | 5 | 24-06-2026 |
| 2 | ZXC 0.12.0 | 5 | 7 | 23-06-2026 |
| 3 | pugixml 1.16 | 0 | 7 | 20-06-2026 |
| 4 | Stellarium 26.2 | 0 | 5 | 28-06-2026 |
| 5 | curl 8.21.0 | 0 | 7 | 29-06-2026 |
| 6 | Релиз системного монитора FSM v0.7.0 | 0 | 5 | 27-06-2026 |
| 7 | lzbench 2.3 | 0 | 5 | 16-06-2026 |
| 8 | whisper.cpp 1.9.0 и 1.9.1 | 0 | 5 | 20-06-2026 |
| 9 | Qt Creator 20 | 0 | 7 | 18-06-2026 |
| 10 | Компания Qualcomm опубликовала дистрибутив Qualcomm Linux 2.0 | 0 | 7 | 02-07-2026 |