A header-only C++ library for creating customizable, thread-safe progress bars and spinners in terminal applications.
Indicators is a header-only C++ library for creating customizable progress indicators like progress bars and spinners in terminal applications. It solves the problem of providing visual feedback for long-running tasks in command-line tools, making them more user-friendly and informative. The library supports various bar styles, multi-threading, and Unicode characters.
C++ developers building command-line applications, tools, or scripts that require visual progress tracking, such as download managers, data processors, or build systems.
Developers choose Indicators for its simplicity, thread safety, and extensive customization options without external dependencies. Its header-only design and MIT license make it easy to integrate into any C++ project.
Activity Indicators for Modern C++
Safely update progress bars from multiple threads without visual corruption, as highlighted in the thread-safe features and demonstrated in multi-threaded examples like MultiProgress.
Easy to integrate by including headers or using the single-header version, reducing build complexity and dependency management, as noted in the highlights.
Offers control over bar width, fill characters, colors, prefixes/postfixes, and supports Unicode, shown in examples with various languages and emojis.
Supports multiple indicator types (e.g., progress bars, spinners) and management via MultiProgress (compile-time) and DynamicProgress (runtime), as illustrated in the demos.
Relies on terminal capabilities for features like colors and cursor control, which may fail in basic consoles like Windows CMD or non-interactive shells, limiting portability.
Likely depends on C++11 or newer features (e.g., std::thread, constexpr), potentially causing compatibility issues with legacy compilers or codebases.
Building sample programs requires CMake and specific flags (e.g., -DINDICATORS_SAMPLES=ON), adding steps for quick testing or integration compared to simpler libraries.
: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.