{"id":182110,"date":"2026-06-15T14:48:51","date_gmt":"2026-06-15T12:48:53","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/ftxui-7-0-0"},"modified":"2026-06-15T14:48:51","modified_gmt":"2026-06-15T12:48:53","slug":"ftxui-7-0-0","status":"publish","type":"post","link":"https:\/\/prohoster.info\/en\/blog\/news\/ftxui-7-0-0","title":{"rendered":"FTXUI 7.0.0","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><a rel=\"nofollow\" href=\"https:\/\/www.linux.org.ru\/images\/23598\/original.png\"><br \/>\n          <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/06\/e7f6f312dcd0e68f6c4a433c8a1f7428.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n        <\/a><\/p>\n<p>        <a rel=\"nofollow\" href=\"https:\/\/www.linux.org.ru\/images\/23599\/original.png\"><br \/>\n          <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/06\/e8d95dc05a772de029ec8f802570b7d4.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n        <\/a><\/p>\n<p>        <a rel=\"nofollow\" href=\"https:\/\/www.linux.org.ru\/images\/23600\/original.png\"><br \/>\n          <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/06\/1cd61277751493f007d93a4d97577e51.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n        <\/a><\/p>\n<p>        <a rel=\"nofollow\" href=\"https:\/\/www.linux.org.ru\/images\/23601\/original.png\"><br \/>\n          <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/06\/dd383576c3698b6775ac294a5ea4d5c2.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n        <\/a><\/p>\n<p><noindex>          <a rel=\"nofollow\" href=\"https:\/\/www.linux.org.ru\/images\/23598\/original.png\" class=\"active\"><\/a><\/noindex><\/p>\n<p>          <a rel=\"nofollow\" href=\"https:\/\/www.linux.org.ru\/images\/23599\/original.png\"><\/a><\/p>\n<p>          <a rel=\"nofollow\" href=\"https:\/\/www.linux.org.ru\/images\/23600\/original.png\"><\/a><\/p>\n<p>          <a rel=\"nofollow\" href=\"https:\/\/www.linux.org.ru\/images\/23601\/original.png\"><\/a><\/p>\n<p>      <noindex><\/p>\n<p>On May 13, after more than a year of development, version 7.0.0 of the cross-platform library <a rel=\"nofollow\" href=\"https:\/\/github.com\/ArthurSonzogni\/FTXUI\">FTXUI<\/a>, designed for creating C++ applications with a text user interface and distributed under the MIT license.<\/p>\n<p><\/noindex><\/p>\n<p>Library capabilities:<\/p>\n<ul>\n<li>functional style, similar to React JS;<\/li>\n<li>simple and elegant style (in the author's opinion);<\/li>\n<li>keyboard and mouse event handling;<\/li>\n<li>support for UTF8 and Unicode;<\/li>\n<li>support for True Color;<\/li>\n<li>support for changing cursor style;<\/li>\n<li>support for animations;<\/li>\n<li>support for drawing;<\/li>\n<li>no third-party dependencies;<\/li>\n<li>cross-platform compatibility (Linux\/MacOS, WebAssembly, Windows).<\/li>\n<\/ul>\n<h5>Changes<\/h5>\n<p><strong>Documentation<\/strong><\/p>\n<ul>\n<li>Fixed documentation generation with Doxygen.<\/li>\n<li>Added a custom theme for Doxygen.<\/li>\n<li>Divided documentation into multiple pages.<\/li>\n<\/ul>\n<p><strong>Compilation<\/strong><\/p>\n<ul>\n<li>The script tools$ amalgamate.py has been added to generate \"amalgamated\" source code: ftxui.cpp (534 KB), ftxui.hpp (110 KB), and ftxui_all.hpp (643 KB).<\/li>\n<li>Added support for C++20 modules.<\/li>\n<li>Added support for Meson.<\/li>\n<li>Removed dependency on pthread.<\/li>\n<li>Fixed Bazel support.<\/li>\n<li>Other improvements.<\/li>\n<\/ul>\n<p><strong>Changes for compatibility with previous versions<\/strong><\/p>\n<ul>\n<li>Renames:\n<ul>\n<li>Pixel to `Cell<\/li>\n<li>Image to Surface<\/li>\n<li>ScreenInteractive to App<\/li>\n<li>method PixelAt to CellAt<br \/>\nTo ensure compatibility, aliases and headers have been provided to avoid breaking existing code.<\/li>\n<\/ul>\n<\/li>\n<li>Usage of std::string_view instead of const std::string&amp; where possible. This ensures better compatibility with string literals and avoids unnecessary copies.<\/li>\n<\/ul>\n<p><strong>Components<\/strong><\/p>\n<ul>\n<li>Improved and modernized the signal interception system using POSIX sigaction for reliable signal masking. Protection against double terminal restoration upon program exit has been ensured through atomic tracking of the original state. Added support for additional POSIX signals (SIGBUS, SIGSYS as crash signals, and SIGQUIT, SIGHUP as delayed termination signals) and fixed asynchronous signal safety issues.<\/li>\n<li>Fixed cursor display issue when using a custom Renderer in nested containers.<\/li>\n<li>Fixed cursor positioning in input fields and scrolling stability.<\/li>\n<li>Fixed support for non-ASCII characters in password input mode.<\/li>\n<li>Eliminated cursor flickering during redraws in App.<\/li>\n<li>Input handling using POSIX pipes.\n<ul>\n<li>Allows FTXUI applications to read data from stdin (when using pipe) while still accepting keyboard input in the terminal.<\/li>\n<li>Used by default.<\/li>\n<li>Can be disabled by using App::HandlePipedInput(false).<\/li>\n<li>Available only on Linux and macOS.<\/li>\n<\/ul>\n<\/li>\n<li>Many bugs have been fixed.<\/li>\n<\/ul>\n<p><strong>DOM<\/strong><\/p>\n<ul>\n<li>Support for newline (n) inside text() and vtext() has been added.<\/li>\n<li>Now dbox transfers focus from upper layers to lower ones, which corresponds to the visual representation.<\/li>\n<li>Support for table border decorators has been added. This allows, for example, changing the color of table borders.<\/li>\n<li>An integer overflow bug in ComputeShrinkHard has been fixed.<\/li>\n<li>Specialization added in vbox\/hbox\/dbox to allow using the Element container as input.<\/li>\n<li>The issue with adding child elements in gridbox has been fixed.<\/li>\n<li>The display of gauge has been corrected.<\/li>\n<li>Parameterized flex decorator variants with the _factor parameter have been added. They allow specifying custom stretch or shrink ratios:<br \/>\nflex_factor(grow, shrink), flex_grow_factor(grow), flex_shrink_factor(shrink), as well as variants for x and y axes.<\/li>\n<\/ul>\n<p><strong>Rendering optimizations<\/strong><\/p>\n<ul>\n<li>Cursor movement optimization across rows in the Screen::ResetPosition method (without clearing the screen) into a single parameterized set of CSI commands to move the cursor up (x1B[A) instead of outputting one x1B[1A for each row. This reduced the number of escape characters per frame during redrawing (e.g., ~197 -&gt; 6 bytes for a 50-row screen, ~33 times reduction).<\/li>\n<li>Optimized Screen::ToString(), Color::Print(), and string_width(), speeding up:\n<ul>\n<li>Base rendering by ~27%.<\/li>\n<li>Text rendering by ~27%.<\/li>\n<li>Style rendering by ~38%.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Source: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.linux.org.ru\/news\/development\/18319693\">linux.org.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>13 \u043c\u0430\u044f, \u043f\u043e\u0441\u043b\u0435 \u0431\u043e\u043b\u0435\u0435 \u0433\u043e\u0434\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u0441\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u0432\u044b\u043f\u0443\u0441\u043a 7.0.0 \u043a\u0440\u043e\u0441\u0441\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 FTXUI, \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u043e\u0439 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043d\u0430 C++ \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0441 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u043c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u043c \u0438 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u043c\u043e\u0439 \u043f\u043e \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0438 MIT. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438: \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u0442\u0438\u043b\u044c, \u043d\u0430\u043f\u043e\u0434\u043e\u0431\u0438\u0435 React JS; \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0438 \u044d\u043b\u0435\u0433\u0430\u043d\u0442\u043d\u044b\u0439 \u0441\u0442\u0438\u043b\u044c (\u043f\u043e \u043c\u043d\u0435\u043d\u0438\u044e \u0430\u0432\u0442\u043e\u0440\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438); \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u043a\u043b\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u044b \u0438 \u00ab\u043c\u044b\u0448\u0438\u00bb; \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 UTF8 \u0438 Unicode; \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 True Color; \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":8,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-182110","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Erik Peterson\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/en\/blog\/news\/ftxui-7-0-0\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47FTXUI 7.0.0 | ProHoster\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/en\/blog\/news\/ftxui-7-0-0\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-06-15T12:48:53+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-06-15T12:48:53+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47FTXUI 7.0.0 | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/en\/blog\/news\/ftxui-7-0-0","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47FTXUI 7.0.0 | ProHoster","og:url":"https:\/\/prohoster.info\/en\/blog\/news\/ftxui-7-0-0","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2026-06-15T12:48:53+00:00","article:modified_time":"2026-06-15T12:48:53+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"182110","title":null,"description":null,"keywords":null,"keyphrases":{"focus":[],"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2026-08-05 12:22:22","updated":"2026-08-05 12:22:22","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/182110","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/comments?post=182110"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/182110\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=182110"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=182110"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=182110"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}