Uma biblioteca Go com widgets interativos prontos — formulários, tabelas, árvores, listas e áreas de texto — para criar interfaces de terminal.
ArthurSonzogni/FTXUI
Biblioteca C++ header-only para criar interfaces de terminal com um estilo funcional e baseado em componentes, sem dependências externas.
- Estrelas
- 10,829
- Forks
- 628
- Issues abertas
- 34
- Último commit
- há 13 horas
O que é?
FTXUI é uma biblioteca C++ para criar interfaces de terminal. Ela permite que desenvolvedores descrevam layouts como uma árvore de elementos combinados com funções como hbox, vbox e gridbox, e os renderiza no terminal. Widgets interativos, como botões, menus, campos de entrada, sliders, caixas de seleção e menus suspensos, são oferecidos como componentes que respondem a eventos de teclado, mouse e redimensionamento.
A biblioteca é organizada em três módulos: screen, para renderização de baixo nível de cores e caracteres; dom, para layout e estilos; e component, para interação com o usuário e o loop principal de eventos. Ela oferece suporte a UTF-8 e caracteres de largura completa, cores, decorações de texto, desenho em canvas com caracteres braille ou blocos e animações. Não tem dependências e pode ser usada via CMake FetchContent, Bazel, Meson, vcpkg, Conan ou como uma build amalgamada em um único header, além de oferecer suporte a módulos do C++20. As plataformas compatíveis incluem Linux e macOS, WebAssembly e Windows.
Recursos principais
- 01API funcional e baseada em componentes para compor layouts e widgets interativos
- 02Navegação por teclado e mouse com widgets integrados, como menus, campos de entrada e sliders
- 03Layouts flexíveis com hbox, vbox, gridbox e flexbox
- 04Desenho em canvas usando caracteres braille, de bloco ou simples
- 05Suporte a UTF-8 e caracteres de largura completa, sem dependências externas
Casos de uso
- Criar ferramentas interativas de linha de comando com menus, formulários ou dashboards
- Desenvolver jogos de terminal ou visualizações animadas em modo texto
- Criar monitores de sistema ou visualizadores de logs que se adaptem ao tamanho do terminal
Início rápido
- 1
Adicione o FTXUI ao seu projeto C++ com o CMake FetchContent, o método recomendado no README
- 2
Inclua o cabeçalho <ftxui/ftxui.hpp> e vincule o target do CMake ftxui::ftxui
Antes de usar
- Os principais sistemas-alvo são Linux e macOS; o suporte ao Windows é fornecido por colaboradores.
Tópicos
Perguntas frequentes
- O que é FTXUI?
- Biblioteca C++ header-only para criar interfaces de terminal com um estilo funcional e baseado em componentes, sem dependências externas. FTXUI é uma biblioteca C++ para criar interfaces de terminal. Ela permite que desenvolvedores descrevam layouts como uma árvore de elementos combinados com funções como hbox, vbox e gridbox, e os renderiza no terminal. Widgets interativos, como botões, menus, campos de entrada, sliders, caixas de seleção e menus suspensos, são oferecidos como componentes que respondem a eventos de teclado, mouse e redimensionamento.
- FTXUI é gratuito? Qual é a licença?
- FTXUI é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- FTXUI ainda é mantido?
- Manutenção ativa. O último commit de FTXUI foi em 21 de out. de 2026.
- Para que posso usar FTXUI?
- Criar ferramentas interativas de linha de comando com menus, formulários ou dashboards Desenvolver jogos de terminal ou visualizações animadas em modo texto Criar monitores de sistema ou visualizadores de logs que se adaptem ao tamanho do terminal
- Como instalar FTXUI?
- Adicione o FTXUI ao seu projeto C++ com o CMake FetchContent, o método recomendado no README Inclua o cabeçalho <ftxui/ftxui.hpp> e vincule o target do CMake ftxui::ftxui
- Onde consigo FTXUI?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/ArthurSonzogni/FTXUI
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Uma crate Rust para criar interfaces de usuário no terminal (TUIs), com widgets reutilizáveis e um modelo de renderização simples.
Um framework Python para criar interfaces de usuário para terminal e web com uma API simples e baseada em componentes.
Protetor de tela para terminal escrito em Go, que é ativado quando o shell fica ocioso e exibe cenas animadas, como constelações, chuva e partículas.
App de clima para terminal escrito em Rust, que mostra as condições em tempo real com animações ASCII de chuva, neve e tempestades.
Biblioteca Go multiplataforma para criar dashboards personalizáveis e redimensionáveis e widgets interativos no terminal.