command line interfaces in modern C++.  |  [ BSL-1.0 ](https://github.com/daniele77/cli/blob/master/LICENSE) |  header-only; cmake, make, nmake, vcpkg   
[ cwidget ](https://salsa.debian.org/cwidget-team) |  A high-level terminal interface library for C++, modeled on GTK+ and Qt, but using [ curses ](https://en.wikipedia.org/wiki/Curses_\(programming_library\) "enwiki:Curses \(programming library\)") as its display layer  |  GPL v2.0  |  make   
[ replxx ](https://github.com/AmokHuginnsson/replxx) |  A readline and libedit replacement that supports UTF-8, syntax highlighting & hints.  |  |   
  
##  [ [ edit ](/mwiki/index.php?title=cpp/links/libs&action=edit&section=36
"Edit section: Testing") ]  Testing

Library  |  Description  |  License  |  Configuration   
---|---|---|---  
[ bandit ](https://banditcpp.github.io/bandit/) |  A human-friendly unit testing for C++11. ( [ Src ](https://github.com/banditcpp/bandit) )  |  MIT  |  cmake   
[ Boost.Test ](https://www.boost.org/libs/test/) |  A C++03/11/14/17 unit testing library, available on a wide range of platforms and compilers. ( [ Src ](https://github.com/boostorg/test) )  |  [ BSL-1.0 ](https://www.boost.org/LICENSE_1_0.txt) |  cmake, b2   
[ Catch2 ](https://github.com/catchorg/Catch2) |  A modern, C++-native, test framework for unit-tests, TDD and BDD - using C++14, C++17 and later  |  Boost  |  cmake   
[ cppunit ](http://sourceforge.net/projects/cppunit/) |  A C++ port of the famous JUnit framework for unit testing  |  LGPL-2.1  |  make   
[ CUTE ](https://github.com/PeterSommerlad/CUTE) |  A **C** ++ **U** nit **T** esting **E** asier (no reliance on static initialization for registration), integrated into [ Cevelop ](https://cevelop.com) for TDD  |  MIT  |  header-only   
[ doctest ](https://github.com/onqtam/doctest) |  A lightest feature-rich C++ single-header testing framework for unit tests and TDD  |  MIT  |  header-only; cmake   
[ ELFspy ](https://github.com/mollismerx/elfspy) |  Testing in isolation with fakes and spies - Linux only  |  GPL-2.0  |  make   
[ faker-cxx ](https://github.com/cieslarmichal/faker-cxx) |  A modern C++20 Faker library for generating testing data.  |  MIT  |  cmake   
[ Google Test ](https://google.github.io/googletest) |  Google Testing and Mocking Framework. ( [ Src ](https://github.com/google/googletest) )  |  BSD 3-Clause "New" or "Revised"  |  bazel, cmake   
[ lest ](https://github.com/martinmoene/lest) |  A C++11-native tiny framework for unit-tests, TDD and BDD (includes C++98 variant).  |  Boost  |  header-only; cmake   
[ liblittletest ](https://github.com/etr/liblittletest) |  A portable testing framework  |  LGPL-2.1  |  header-only   
[ snitch ](https://github.com/cschreib/snitch) |  A lightweight C++20 testing framework.  |  Boost  |  cmake   
[ tunit ](https://github.com/gammasoft71/tunit) |  A modern C++17 unit testing library on Windows, macOS, Linux, iOS, and Android. [ Office site ](https://gammasoft71.wixsite.com/tunit) |  MIT  |  cmake   
  
##  [ [ edit ](/mwiki/index.php?title=cpp/links/libs&action=edit&section=37
"Edit section: Text") ]  Text

Coding

Library  |  Description  |  License  |  Configuration   
---|---|---|---  
[ strsuite ](https://github.com/Loara/StringSuite) |  A C++20 library to manage strings with different encodings  |  LGPL3.0  |  cmake   
[ uchardet ](https://github.com/BYVoid/uchardet) |  Guesses a string encoding, basically the same as the ` uchardet ` function in Python.  |  MOZILLA PUBLIC LICENSE v1.1  |  cmake   
[ win-iconv ](https://github.com/win-iconv/win-iconv) |  A character set encoding conversion library for Linux and Mac. The Windows implementation of ` iconv ` is based on the Win32 Character Set Conversion API.  |  public domain  |  cmake   
  
Diff/Patch

Library  |  Description  |  License  |  Configuration   
---|---|---|---  
[ diff_match_patch ](https://github.com/google/diff-match-patch) |  Create and apply patches for strings (requires Qt)  |  Apache 2.0  |  qmake