A dependency-free C++ library for writing cross-platform terminal applications with a unified API.
CPP-Terminal is a C++ library for building terminal applications that run natively on Windows, Linux, and macOS. It provides a unified API for handling terminal features like colors, keyboard input, and window management without external dependencies. The library solves the problem of platform-specific terminal code by offering a consistent, cross-platform solution.
C++ developers building command-line interfaces (CLIs), terminal user interfaces (TUIs), or cross-platform console applications. It's also suitable for those needing to integrate terminal functionality into GUI applications on Windows.
Developers choose CPP-Terminal for its simplicity, zero-overhead design, and true cross-platform compatibility without emulation. It's a lightweight alternative to ncurses, with a small codebase that's easy to debug and extend.
C++ library for writing multiplatform terminal applications
Provides a unified API for Windows, Linux, and macOS, ensuring applications work natively without emulation, as stated in the philosophy and supported platforms table.
Relies only on the C++ Standard Library, minimizing footprint and simplifying integration, adhering to the zero-overhead principle emphasized in the README.
Includes a fully managed terminal window system via cpp-terminal/window.hpp, enabling easy building of terminal user interfaces with examples like menu_window.cpp.
Easy to add to projects with clear documentation and minimal setup, demonstrated by Hello World examples and wiki guides for various build systems.
Offers only a subset of terminal capabilities compared to ncurses, potentially missing advanced features like mouse input or complex screen controls, as acknowledged in the philosophy.
Does not support Windows versions prior to 10 due to missing Win32 API for raw mode and ANSI support, limiting backward compatibility as noted in the README's platform table.
Requires specific compiler versions and C++ standards (e.g., C++11 or higher), which can complicate setup in diverse development environments, as shown in the supported platforms table.
cpp-terminal is an open-source alternative to the following products:
:computer: C++ Functional Terminal User Interface. :heart:
Lightweight C++ command line option parser
CLI11 is a command line parser for C++11 and beyond that provides a rich feature set with a simple and intuitive interface.
ImTui: Immediate Mode Text-based User Interface C++ Library
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.