A header-only C++11 library for creating and formatting tables in terminals with extensive styling and export options.
Tabulate is a header-only C++ library for creating and formatting tables in terminal applications. It solves the problem of presenting structured data in a readable, styled manner directly in the console, with support for advanced formatting like colors, borders, and alignment.
C++ developers building command-line tools, data visualization utilities, or any application that requires formatted table output in terminals.
Developers choose Tabulate for its extensive styling options, ease of integration (header-only), and modern C++11 API that supports complex features like nested tables, UTF-8, and export to Markdown/AsciiDoc.
Table Maker for Modern C++
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
As a single-header library, Tabulate eliminates complex dependencies; just include the file, as shown in the Quick Start section for easy integration into C++ projects.
Offers a fluent API for detailed styling—fonts, colors, borders, and alignment—enabling features like nested tables and UTF-8 support, demonstrated in samples like the class diagram.
Full multi-byte character handling with automatic word wrapping and locale settings for international text, though it requires explicit multi_byte_characters(true) opt-in, as highlighted in the UTF-8 section.
Includes built-in exporters for Markdown and AsciiDoc, allowing seamless conversion of terminal tables for documentation, with examples in the Exporters section.
Must manually set multi_byte_characters(true) for proper display, which can lead to misalignment if forgotten, and the README warns about locale dependency issues on some systems.
Relies on termcolor for only 8 colors, and font styles like blink may not work on all terminals, reducing cross-platform consistency as noted in the Font Styles section.
While it supports C++11, using C++17 features requires optional dependencies like variant-lite, adding setup complexity for projects without full compiler support.
Only exports to Markdown and AsciiDoc; common formats like CSV or HTML are unsupported, forcing developers to use additional libraries for broader needs.