Download Latest Version ftxui-7.0.3-win64.zip (11.2 MB) Google Add to Preferred Sources
Home / v7.0.0
Name Modified Size InfoDownloads / Week
Parent folder
ftxui-7.0.0-Darwin.dmg 2026-06-13 626.7 kB
ftxui-7.0.0-Darwin.tar.gz 2026-06-13 611.6 kB
ftxui-7.0.0-Darwin.zip 2026-06-13 636.1 kB
ftxui-7.0.0-Linux.deb 2026-06-13 739.7 kB
ftxui-7.0.0-Linux.json 2026-06-13 784 Bytes
ftxui-7.0.0-Linux.rpm 2026-06-13 737.0 kB
ftxui-7.0.0-Linux.sh 2026-06-13 743.4 kB
ftxui-7.0.0-Linux.tar.bz2 2026-06-13 576.8 kB
ftxui-7.0.0-Linux.tar.gz 2026-06-13 738.1 kB
ftxui-7.0.0-Linux.tar.xz 2026-06-13 431.6 kB
ftxui-7.0.0-Linux.tar.Z 2026-06-13 1.2 MB
ftxui-7.0.0-Linux.tar.zst 2026-06-13 623.4 kB
ftxui-7.0.0-Linux.zip 2026-06-13 762.9 kB
ftxui-amalgamated.zip 2026-06-13 257.1 kB
ftxui-7.0.0-win64.tar.gz 2026-06-13 8.0 MB
ftxui-7.0.0-win64.zip 2026-06-13 8.0 MB
source.tar.gz 2026-06-13 349.2 kB
README.md 2026-06-13 22.6 kB
v7.0.0 source code.tar.gz 2026-06-13 349.3 kB
v7.0.0 source code.zip 2026-06-13 538.8 kB
Totals: 20 Items   26.0 MB 0

7.0.0 (2026-06-13)

Doc

  • Fix broken Doxygen output. See @markmandel in [#1029].
  • Use Doxygen awesome. Add our own theme.
  • Break the documentation into several pages.

Build

  • Feature: Support amalgamated version. This provides a single-header (ftxui.hpp) and single-source (ftxui.cpp) version of the library, as well as a truly single-file header-only version (ftxui_all.hpp). This is the easiest way to vendor FTXUI into your project. See [#1252].
  • Feature: Support umbrella header and target. Usage: cpp #include <ftxui/ftxui.hpp> CMake: target_link_libraries(your_target PRIVATE ftxui::ftxui) Bazel: deps = ["@ftxui//:ftxui"] See [#1252].
  • Feature: Support C++20 modules. This requires:
  • Using the Ninja or MSVC generator
  • A recent Clang/GCC/MSVC compiler.
  • Cmake 3.28 or higher. Usage: cpp import ftxui; import ftxui.component; import ftxui.dom; import ftxui.screen; import ftxui.util; Thanks @mikomikotaishi for PR [#1015].
  • Consolidate C++20 code into named modules to reduce compile times and improve flexibility. Thanks @mikomikotaishi in [#1221].
  • Feature: Support Meson build system. Thanks @mintonmu in [#1259].
  • Remove dependency on 'pthread'.
  • Bugfix: Bazel target @ftxui is now visible. Thanks @dskkato in [#1157].
  • ABI: Explicitly size all public enums to uint8_t for ABI layout stability.
  • ABI: Add reserved virtual methods to Screen and Node for future extensibility without breaking ABI.

General

  • Breaking (Renames):
  • Pixel is renamed to Cell.
  • Image is renamed to Surface.
  • ScreenInteractive is renamed to App.
  • PixelAt method is renamed to CellAt. Compatibility aliases and headers are provided to avoid breaking existing code.

  • Breaking. Move to std::string_view instead of const std::string& where applicable. This yields better interoperability with string literals and avoids unnecessary copies. Thanks @mikomikotaishi for PR [#1154]

Component

  • Feature: Improved signal handling. Upgrade signal interception to use POSIX sigaction for robust signal masking and cleanup handler preservation. Protect against double terminal restoration on exit using atomic raw-state tracking. Add support for additional POSIX signals (SIGBUS, SIGSYS as crash signals, and SIGQUIT, SIGHUP as deferred termination signals) and fix async-signal-safety issues in crash paths.
  • Bugfix: Fix Input cursor visibility when using a custom Renderer on nested containers. See [#1220]. Thanks @nmarks99.
  • Fix Input cursor positioning and scroll stability. See [#1196]. Thanks @739C1AE2.
  • Fix Input support for non-ASCII characters in password mode. See [#1196]. Thanks @739C1AE2.
  • Performance: Mitigate cursor flickering during redraw in App. See [#1196]. Thanks @739C1AE2.
  • Feature: POSIX Piped Input Handling.
  • Allows FTXUI applications to read data from stdin (when piped) while still receiving keyboard input from the terminal.
  • Enabled by default.
  • Can be disabled using App::HandlePipedInput(false).
  • Only available on Linux and macOS. Thanks @HarryPehkonen for PR [#1094].
  • Fix App::FixedSize screen stomps on the preceding terminal output. Thanks @zozowell in [#1064].
  • Fix vertical ftxui::Slider. The "up" key was previously decreasing the value. Thanks @its-pablo in [#1093] for reporting the issue.
  • Fix Windows UTF-16 key input handling. Emoji and other code points outside the Basic Multilingual Plane (BMP) are now correctly processed. Thanks @739C1AE2 in [#1160] for fixing the issue.
  • Fix Input style is now colorschem agnostic. Thanks @Smail in [#1170] for reporting and fixing the issue.
  • Fix App::Post(..) is now thread safe. Thanks @739C1AE2 in ~1183 for reporting the issue. This regressed in non released versions.

Dom

  • Feature: Support newline \n within text() and vtext(). Thanks @mikomikotaishi in [#1215].
  • Bugfix: dbox now propagates focus from top-most layers to bottom-most layers, matching the visual representation. See [#1213]. Thanks @vtnerd.
  • Feature: Support for table border decorators. This allows for instance to color the border of a table. Thanks @Sckab in [#1186] for proposing it.
  • Fix integer overflow in ComputeShrinkHard. Thanks @its-pablo in [#1137] for reporting and fixing the issue.
  • Add specialization for vbox/hbox/dbox to allow a container of Element as as input. Thanks @nbusser in [#1117].
  • Bugfix: In the gridbox, add the children to the tree so that the default behaviors inherited from Node are correctly implemented. Thanks KenReneris for [#1070].
  • Update: The gauge in a flexible now takes the available space in the opposite direction. Thanks @Ardet696 in [#1203].
  • Feature: Add parameterized _factor variants of flex decorators. These allow specifying custom grow/shrink factors: flex_factor(grow, shrink), flex_grow_factor(grow), flex_shrink_factor(shrink), with x and y axis variants. Usage: element | flex_grow_factor(3).

Screen

  • Performance: Collapse the per-row cursor walk-up in the non-clear Screen::ResetPosition into a single parameterized CSI cursor-up (\x1B[<n>A) instead of emitting one \x1B[1A per row. This reduces the per-frame escape bytes during steady-state redraw (e.g. ~197 -> 6 bytes for a 50-row screen, ~33x). On-screen output is unchanged.
  • Performance: Optimize Screen::ToString(), Color::Print() and string_width(). This was achieved by:
  • Skipping calling string_width for cells with single-byte data (the primary driver for performance gains).
  • Pre-allocating memory for the output string.
  • Optimizing the ASCII path for string width calculation. Benchmarks show a significant improvement:
  • Basic rendering: ~27% faster.
  • Text rendering: ~27% faster.
  • Styled rendering: ~38% faster. Thanks @killerdevildog for initiating (2) in [#1188].

What's Changed

New Contributors

Full Changelog: https://github.com/ArthurSonzogni/FTXUI/compare/v6.1.9...v7.0.0

Source: README.md, updated 2026-06-13