v7.0.0 #1293
ArthurSonzogni
announced in
Announcements
v7.0.0
#1293
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
7.0.0 (2026-06-13)
Doc
Build
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 amalgated version (just two files for drop in) #1252.
Usage:
target_link_libraries(your_target PRIVATE ftxui::ftxui)Bazel:
deps = ["@ftxui//:ftxui"]See amalgated version (just two files for drop in) #1252.
This requires:
Usage:
uint8_tfor ABI layout stability.ScreenandNodefor futureextensibility without breaking ABI.
General
Breaking (Renames):
Pixelis renamed toCell.Imageis renamed toSurface.ScreenInteractiveis renamed toApp.PixelAtmethod is renamed toCellAt.Compatibility aliases and headers are provided to avoid breaking existing code.
Breaking. Move to
std::string_viewinstead ofconst std::string&whereapplicable. This yields better interoperability with string literals and
avoids unnecessary copies. Thanks @mikomikotaishi for PR Add string view overloads #1154
Component
sigactionfor 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,SIGSYSas crash signals, andSIGQUIT,SIGHUPas deferred termination signals) and fix async-signal-safety issues in crash paths.Inputcursor visibility when using a customRendereron nested containers. See Bug in Input cursor visibility with Renderer on nested containers #1220. Thanks @nmarks99.Inputcursor positioning and scroll stability. See Input Component Cursor Positioning and Scroll Reset Issues #1196. Thanks @739C1AE2.Inputsupport for non-ASCII characters in password mode. See Input Component Cursor Positioning and Scroll Reset Issues #1196. Thanks @739C1AE2.App. See Input Component Cursor Positioning and Scroll Reset Issues #1196. Thanks @739C1AE2.App::HandlePipedInput(false).Thanks @HarryPehkonen for PR Adds opt-in support for applications that need to read piped data from stdin while still receiving interactive keyboard input #1094.
output. Thanks @zozowell in Bug: ScreenInteractive::FixedSize screen stomps on the history terminal output #1064.
ftxui::Slider. The "up" key was previously decreasing thevalue. Thanks @its-pablo in Vertical slider cannot be increased with Up key press #1093 for reporting the issue.
Basic Multilingual Plane (BMP) are now correctly processed. Thanks @739C1AE2
in Fix UTF-16 surrogate pair handling on Windows input #1160 for fixing the issue.
and fixing the issue.
App::Post(..)is now thread safe. Thanks @739C1AE2 in~1183 for reporting the issue. This regressed in non released versions.
Dom
\nwithintext()andvtext(). Thanks@mikomikotaishi in Add newline support within
text()#1215.dboxnow propagates focus from top-most layers to bottom-mostlayers, matching the visual representation. See dbox propagates focus from bottom to top #1213. Thanks @vtnerd.
color the border of a table. Thanks @Sckab in How to change a table border color? #1186 for proposing it.
ComputeShrinkHard. Thanks @its-pablo in Mitigate integer overflow in ComputeShrinkHard #1137 forreporting and fixing the issue.
vbox/hbox/dboxto allow a container of Element asas input. Thanks @nbusser in Add
Merge()specializations to support moreElementcontainers #1117.behaviors inherited from Node are correctly implemented. Thanks KenReneris for
Add gridbox children to children_ #1070.
gaugein a flexible now takes the available space in theopposite direction. Thanks @Ardet696 in fix: gaugeUp/gaugeDown fill full allocated width when decorated with flex #1203.
_factorvariants of flex decorators. These allowspecifying custom grow/shrink factors:
flex_factor(grow, shrink),flex_grow_factor(grow),flex_shrink_factor(shrink), withxandyaxis variants.Usage:
element | flex_grow_factor(3).Screen
Screen::ResetPositioninto a single parameterized CSI cursor-up(
\x1B[<n>A) instead of emitting one\x1B[1Aper row. This reduces theper-frame escape bytes during steady-state redraw (e.g. ~197 -> 6 bytes for a
50-row screen, ~33x). On-screen output is unchanged.
Screen::ToString(),Color::Print()andstring_width().This was achieved by:
string_widthfor cells with single-byte data (theprimary driver for performance gains).
Benchmarks show a significant improvement:
Thanks @killerdevildog for initiating (2) in perf: replace stringstream with pre-allocated string append in Screen… #1188.
What's Changed
Examples(fromREADME.md) section link by @deyna256 in FixExamples(fromREADME.md) section link #1079Merge()specializations to support moreElementcontainers by @nbusser in AddMerge()specializations to support moreElementcontainers #1117text()by @mikomikotaishi in Add newline support withintext()#1215New Contributors
Examples(fromREADME.md) section link #1079Merge()specializations to support moreElementcontainers #1117Full Changelog: v6.1.9...v7.0.0
This discussion was created from the release v7.0.0.
Beta Was this translation helpful? Give feedback.
All reactions