💻 C++ Functional Terminal User Interface. ❤️
Go to file
ArthurSonzogni 18d1b04b7a terminal_input_parser: validate UTF8.
Make sure code points parsed are always valid UTF8. Don't assume stdin
is filled with valid data. Check for overlong UTF8 and add some tests.

The fuzzer has reached the following coverage:
- cov    : 204
- ft     : 754
- corp   : 62/12257b
- lim    : 2798
- exec/s : 1748
- rss    : 445Mb
- L      : 155/1946
- MS     : 3

Fixed:https://github.com/ArthurSonzogni/FTXUI/issues/118
2021-06-19 11:09:52 +02:00
.github Introduce CatchEvent (#104) 2021-05-23 12:53:20 +02:00
.nxxm Add nxxm suport. 2020-12-21 15:36:04 +01:00
doc Add documentation for ResizableSplit 2021-05-28 15:07:08 +02:00
examples Fix compiler output argument in homescreen 2021-06-07 10:11:32 +02:00
include/ftxui Add fuzzer for termin_input_parser 2021-06-19 11:09:52 +02:00
src/ftxui terminal_input_parser: validate UTF8. 2021-06-19 11:09:52 +02:00
tools Format using iwyu. 2021-05-15 00:19:19 +02:00
.clang-format Variou details: 2020-08-28 23:54:25 +02:00
.gitlab-ci.yml Add gitlab-ci.yml 2019-02-02 02:32:42 +01:00
.travis.yml Fix travis on Windows with gtests. 2020-04-17 00:59:05 +02:00
CMakeLists.txt Add fuzzer for termin_input_parser 2021-06-19 11:09:52 +02:00
ftxui-config.cmake.in add dependency to Threads into generated cmake config (#52) 2020-10-16 22:07:30 +02:00
iwyu.imp Format using iwyu. 2021-05-15 00:19:19 +02:00
LICENSE Add LICENSE. Add take_any_args. 2019-01-06 16:14:19 +01:00
README.md Update README.md 2021-06-16 11:08:30 +02:00

FTXUI

issues license contributors

Functional Terminal (X) User interface

A simple C++ library for terminal based user interface.

Demo:

Demo image

Feature

  • Functional style. Inspired by [1] and React
  • Simple and elegant syntax (in my opinion).
  • Support for UTF8 and fullwidth chars (→ 测试).
  • No dependencies.
  • Cross platform. Linux/mac (main target), Windows (experimental thanks to contributors), WebAssembly.
  • Keyboard & mouse navigation.

Operating systems

  • linux-emscripten
  • linux-gcc linux-clang
  • windows-msvc
  • mac-clang

Example:

  vbox({
    hbox({
      text(L"left") | border,
      text(L"middle") | border | flex,
      text(L"right") | border,
    }),
    gauge(0.5) | border,
  });
┌────┐┌───────────────────────────────────────────────────────────────┐┌─────┐
│left││middle                                                         ││right│
└────┘└───────────────────────────────────────────────────────────────┘└─────┘
┌────────────────────────────────────────────────────────────────────────────┐
│██████████████████████████████████████                                      │
└────────────────────────────────────────────────────────────────────────────┘

Documentation:

Project using FTXUI

Feel free to add your projects here:

Hosted on:

External package:

It is highly recommanded to use cmake FetchContent to depends on FTXUI. This way you can specify which commit you would like to depends on.

If you don't, the following packages have been created: