- C++ standard library, including STL containers, algorithms and functions
- C++ general framework and library
- Artificial intelligence (ai)
- Asynchronous event loop
- Audio, sound, music, digital music library
- Bioinformatics, genomics and biotechnology
- Compression and archive libraries
- Concurrent execution and multithreading
- The container
- cryptography
- Database, SQL server, ODBC driver and tools
- Debug libraries, memory and resource leak detection, unit testing
- The game engine
- Graphical user interface
- graphics
- The image processing
- internationalization
- Jason
- The log
- Machine learning
- mathematics
- multimedia
- network
- Dynamics simulation engine
- robotics
- Scientific computing
- The script
- serialization
- video
- The virtual machine
- Web Application Framework
- XML
- A number of hybrid
- The compiler
- C/C++ debugger list
- Integrated Development Environment (IDE)
- Build system
- Static code analysis
C++ resource framework quick reference table
C++ standard library, including STL containers, algorithms and functions
C++ Standard Library: is a collection of classes and functions written in the core language and part of the C++ISO standard itself. |
Standard Template Library: Standard template library |
C POSIX library: C standard library specification for POSIX systems |
ISO C++ Standards CommitteeC++ standards committee |
C++ general framework and library
Apache C++ Standard Library: is a collection of algorithms, containers, iterators, and other basic components |
ASLAdobe source code library provides a peer-reviewed and portable C++ source code library. |
Boost: a large collection of common C++ libraries. |
BDE: From bloomberg LABS development environment. |
Cinder: Open source development community providing professional quality creative coding. |
Cxxomfort: a lightweight, header only library that ports some of the new features of C++ 11 to C++03. |
Dlib: a universal cross-platform C++ library designed using programming by contract and modern C++ technologies. |
EASTL: EA-STL common part |
ffead-cpp: Enterprise application development framework |
Folly: open source C++ library developed and used by Facebook |
JUCE: an all-inclusive C++ class library for developing cross-platform software |
libPhenom: An event framework for building high-performance and highly scalable systems. |
LibSourcey: C++11 evented IO for real-time video streaming and high performance web applications |
LibU: multi-platform tool library written in C language |
Loki: C++ library design, including commonDesign patternsAnd idiom implementation. |
MiLi: a small C++ library containing only header files |
openFrameworks: develop C++ toolkit for creative coding. |
Qt: cross-platform application and user interface frameworks |
Reason: a cross-platform framework that makes it easier for developers to use Java,.net and Python, while meeting their needs for C++ performance and benefits. |
ROOT: A series of object-oriented frameworks with all the capabilities to process and analyze large amounts of data very efficiently for use at EURATOM. |
STLport: is a representative version of STL |
STXXL: standard template library for additional large data sets. |
Ultimate++C++ cross-platform rapid application development framework |
Windows Template Library: C++ library for developing Windows applications and UI components |
Yomm11: C++11 open multi-methods |
Artificial intelligence (ai)
btsk: Game behavior tree launcher tool |
Evolving Objects: template-based, ANSI C++ evolutionary computing library that helps you write your own random optimization algorithms very quickly. |
NeuC++11 framework, a programming language set, a multipurpose software system for creating artificial intelligence applications. |
Asynchronous event loop
Boost.Asio: cross-platform C++ library for networking and low-level I/O programming. |
libev: Full-featured, high-performance time loop that slightly emulates Libevent, but no longer has the same limitations as Libevent, and fixes some of its bugs. |
libevent: Event notification library |
libuv: Cross-platform asynchronous I/O. |
Audio, sound, music, digital music library
FMOD: easy to use cross-platform audio engine and audio content game authoring tool. |
Maximilian: C++ audio and music digital signal processing library |
OpenAL: Open Source Audio library – cross-platform audio API |
Opus: a fully open, royalty-free, highly versatile audio codec |
Speex: Free codec, deprecated by Opus |
Tonic: C++ easy to use and efficient audio synthesis |
Vorbis: Ogg Vorbis is a completely open, non-proprietary, royalty-free, general-purpose compressed audio format. |
Bioinformatics, genomics and biotechnology
libsequence: C++ library for representing and analyzing population genetic data. |
SeqAn: Focuses on algorithms and data structures for biological data sequence analysis. |
Vcflib: C++ library for parsing and processing VCF files |
Wham: Apply the association test directly to the genetic structural variation of BAM files. |
Compression and archive libraries
bzip2: a completely free, free patent and high quality data compression |
doboz: a compression library that can be quickly decompressed |
PhysicsFS: a library that provides abstract access to various archives, primarily used in video games, partly inspired by the file subsystem of Quake3. |
KArchive: library for creating, reading, and manipulating file files such as ZIP and tar, which provides transparent compression and decompression of data through a series of subclasses of QIODevice using the Gzip format. |
LZ4: very fast compression algorithm |
LZHAM: lossless compression database, the compression ratio is close to LZMA, but the decompression speed is much faster. |
LZMA: 7z format Default and universal compression method. |
LZMAT: its fast real-time lossless data compression library |
miniz: single C source file, compressed/expanded compression library, zlib-compatible API, ZIP archive read and write, PNG write mode. |
Minizip: Zlib latest bug fix, support PKWARE disk span, AES encryption and IO buffering. |
Snappy: Fast compression and decompression |
ZLib: very compact data stream compression library |
ZZIPlib: Provides the read permission for the ZIP archive |
Concurrent execution and multithreading
Boost.Compute: C++GPU computing library for OpenCL |
Bolt: C++ template library optimized for GPU |
C++React: reactive programming library for C++11 |
Intel TBB: Intel thread building block |
Libclsph: GPU-accelerated SPH fluid simulation library based on OpenCL |
OpenCL: an open standard for heterogeneous systems with parallel programming |
OpenMP: OpenMP API |
Thrust: parallel algorithm library similar to the C++ standard template library |
HPX: universal C++ runtime system for parallel and distributed applications of any size |
VexCL: C++ vector expression template library for OpenCL/CUDA. |
The container
C++ B-tree: Based on B tree data structure, to achieve the command memory container template library |
Hashmaps: C++ open addressing hash table algorithm implementation |
cryptography
Bcrypt: a cross-platform file encryption tool that can be ported to all supported operating systems and processors. |
BeeCrypt: |
Botan: C++ encryption library |
Crypto++: a free C++ library for encryption schemes |
GnuPG: Full implementation of the OpenPGP standard |
GnuTLS: secure communication library that implements SSL, TLS and DTLS protocols |
Libgcrypt |
libmcrypt |
LibreSSL: a free SSL/TLS protocol, a branch of 2014 OpenSSL |
LibTomCrypt: a very comprehensive, modular, portable encryption tool |
libsodium: Naci-based encryption library, opinionated, easy to use |
NettleThe underlying cryptographic library |
OpenSSL: a powerful, commercial, full-featured, open source encryption library. |
Tiny AES128 in C: a compact, portable C implementation of AES128ESB encryption algorithm |
Database, SQL server, ODBC driver and tools
hiberlite: C++ object relational mapping for Sqlite3 |
Hiredis: a very simple C client library for Redis databases |
LevelDB: fast key value repository |
LMDB: An embedded key-value store that matches the four basic elements of a database |
MySQL++: A C++ wrapper that wraps MySql’s C API |
RocksDB: Fast storage of embedded key values from Facebook |
SQLite: a fully embedded, fully functional relational database, only a few hundred KB, can be included correctly in your project. |
Debug libraries, memory and resource leak detection, unit testing
Boost.Test: Boost test library |
Catch: a stylish, C++ native framework containing only header files for unit testing, test-driven development, and behavior-driven development. |
CppUnit: C++ testing framework ported from JUnit |
CTest: CMake test driver |
googletest: Google C++ testing framework |
ig-debugheap: a multiplatform debug heap for tracking memory errors |
libtap: Write tests in C language |
MemTrack- used for C++ to track memory allocation |
microprofile- Cross-platform network attempt analyzer |
minUnit: a mini-unit testing framework written in C, using only two macros |
Remotery: a single C file parser for Web views |
UnitTest++: a lightweight C++ unit testing framework |
The game engine
Cocos2d-x: a cross-platform framework for building 2D games, interactive books, presentations, and other graphics applications. |
Grit: Community project to build a free game engine to enable open world 3D games. |
Irrlicht: open source high performance real-time #D engine written in C++ |
Polycode: C++ implemented open source framework for building games (bundled with Lua). |
Graphical user interface
CEGUI: very flexible cross-platform GUI library |
FLTK: fast, lightweight cross-platform C++GUI toolkit. |
GTK+: a cross-platform toolkit for creating graphical user interfaces |
gtkmm: the official C++ interface for the popular GUI library GTK+. |
imgui: Immediate mode graphical user interface with minimal dependencies |
libRocket :libRocketIs a C++ HTML/CSS game interface middleware |
MyGUI: fast, flexible, simple GUI |
Ncurses: Terminal user interface |
QCustomPlot: Qt drawing control with no more dependencies |
Qwt: Qt controls for user and technical applications |
QwtPlot3D: a feature-rich C++ programming library based on Qt/OpenGL that essentially provides a bunch of 3D controls |
OtterUI :OtterUIIs a user interface development solution for embedded systems and interactive entertainment software |
PDCursesA common graphical function library containing source code and precompiled libraries |
wxWidgetsThe C++ library allows developers to create apps for widows, Mac OS X, Linux and other platforms using a single code base |
graphics
bgfx: cross-platform rendering library |
Cairo: A 2D graphics library that supports multiple output devices |
Horde3DA small 3D rendering and animation engine |
magnumC++11 and OpenGL 2D/3D graphics engine |
Ogre 3DA scene oriented, real-time, flexible 3D rendering engine written in C++ (not a game engine) |
OpenSceneGraphOpen source 3D graphics toolkit with high performance |
Panda3DFramework for 3D rendering and game development, written in Python and C++. |
SkiaA complete 2D graphics library for drawing text, graphics and images |
urho3dCross-platform rendering and game engine. |
The image processing
Boost.GIL: Universal image library |
CImg: small open source C++ toolkit for image processing |
CxImage: image processing and conversion library for loading, saving, display and conversion, can process image formats including BMP, JPEG, GIF, PNG, TIFF, MNG, ICO, PCX, TGA, WMF, WBMP, JBG, J2K. |
FreeImage: Open source library that supports common image formats and other formats required by modern multimedia applications. |
GDCM: Grassroots DICOM library |
ITK: cross-platform open source image analysis system |
Magick++: ImageMagicK program C++ interface |
MagickWnd: ImageMagick program C++ interface |
OpenCV: Open source computer vision library |
tesseract-ocr: the OCR engine |
VIGRAUniversal C++ computer vision library for image analysis |
VTK: Open source free software system for 3D computer graphics, image processing and visualization. |
internationalization
gettext: the GNU ` gettext ‘ |
IBM ICU: C, C++, and Java libraries that provide Unicode and globalization support |
libiconv: encoding conversion library for different character encodings |
Jason
frozen: Jason parsing generator for C/C++ |
Jansson: C language library for encoding and decoding Jason data |
jbsonC++14 library for building and iterating BSON data and Json documents |
JeayeSON: a very robust C++ JSON library, containing only header files |
JSON++: C++ JSON parser |
json-parser: JSON parser written in portable ANSI C with very little memory footprint |
json11: a mini-C ++11 JSON library |
jute: very simple C++ JSON parser |
ibjsonJSON parsing and printing library in C, easy to integrate with any model. |
libjson: lightweight JSON library |
PicoJSONJSON parses serialization in C++, containing only header files |
qt-json: simple class for mutual parsing between JSON data and QVariant hierarchies |
QJson: A Qt-based library that maps JSON data to QVariant objects |
RapidJSON: fast JSON parsing generator for C++, including SAX and DOM style apis |
YAJL: fast stream JSON parsing library in C |
The log
Boost.Log: The design is very modular and extensible |
easyloggingpp: C++ logging library, containing a single header file. |
Log4cpp: a series of C++ libraries for adding logs to files, system logs, IDSA and other places. |
templog: a lightweight C++ library to add logging to your C++ applications |
Machine learning
Caffe: fast neural network framework |
CCV: C language as the core of the modern computer vision library |
mlpack: an extensible C++ machine learning library |
OpenCV: Open source computer vision library |
Recommender: C language library that uses collaborative filtering to make product recommendations/suggestions. |
SHOGUN: Shogun machine learning tool |
sofia-ml: Suite of fast incremental algorithms for machine learning |
mathematics
Armadillo: high quality C++ linear algebra library, speed and ease of use to achieve a good balance. The syntax is very similar to MatlAB |
blaze: a high-performance C++ math library for dense and sparse algorithms. |
ceres-solver: C++ library from Google for modeling and solving large complex nonlinear least square problems. |
CGal: a collection of efficient and reliable set algorithms |
cml: a free C++ math library for games and graphics |
EigenAdvanced C++ template header library, including linear algebra, matrices, vector manipulation, numerical solution and other related algorithms. |
GMTLThe Mathematical Graphics Template library is a broad set of tools for implementing basic graphics. |
GMP: C/C++ library for high precision computation, processing signed integers, rational numbers andFloating point Numbers. |
multimedia
GStreamer: Builds a library for media processing component graphics |
LIVE555 Streaming Media: multimedia streaming library using open standard protocols (RTP/RTCP, RTSP, SIP) |
libVLCLibVLC (VLC SDK) media framework |
QtAv: Multimedia player framework based on Qt and FFmpeg can help you write a player easily |
SDL: Simple direct control media layer |
SFML: fast, simple multimedia library |
network
ACEC++ object-oriented networking becomes toolkit |
Boost.Asio: cross-platform C++ library for networking and low-level I/O programming |
Casablanca: c + + REST SDK |
cpp-netlib: open source library collection for advanced network programming |
Dyad.c: C asynchronous network |
libcurl: multiprotocol file transfer library |
Mongoose: very lightweight web server |
Muduo: C++ non-blocking network library for Linux multi-threaded servers |
net_skeleton: TCP client/server library for C/C++ |
nope.c: C – based ultralight software platform for scalable server – side and network applications. For C programmers, consider Node.js |
Onion:C language HTTP server library, which is designed to be lightweight and easy to use. |
POCO: C++ class library for building web and internet-based applications that can run on desktop, server, mobile and embedded systems. |
RakNet: cross-platform open source C++ web engine for game developers. |
Tuf o: asynchronous Web framework for C++ build on Qt. |
WebSocket++: websocket client/server library based on C++/Boost Aiso |
ZeroMQ: high-speed, modular asynchronous communication library |
Dynamics simulation engine
Box2D: 2D game physics engine. |
Bullet: 3D game physics engine. |
Chipmunk: fast, lightweight 2D game physics library |
LiquidFun: 2D game physics engine |
ODE: Open Dynamics engine – Open source, high performance library that simulates rigid body dynamics. |
ofxBox2dBox2D open source framework wrapper. |
Simbody: high-performance C++ multibody dynamics/physics library that simulates joint biomechanics and mechanical systems such as vehicles, robots and human bones. |
robotics
MOOS-IvP: a set of open source C++ modules that provide autonomy for robotic platforms, especially autonomous ocean vehicles. |
MRPT: Mobile robot programming kit |
PCL: Point Cloud Library is an independent, large-scale open project for 2D/3D images and point cloud processing. |
Robotics Library (RL): a stand-alone C++ library, including robot dynamics, motion planning and control. |
RobWork: a collection of C++ libraries for the simulation and control of robotic systems. |
ROS: Robot operating system, which provides libraries and tools to help software developers create robot applications. |
Scientific computing
FFTW: C language library for one-dimensional or multidimensional DFT calculation. |
GSL: GNU Science Library. |
The script
ChaiScript: an easy-to-use embedded scripting language for C++. |
Lua: a small fast scripting engine for configuration files and basic application scripts. |
luacxx: C++ 11 API for creating Lua bindings |
SWIG: a wrapper/interface generator that links your C++ code to JavaScript, Perl, PHP, Python, Tcl, and Ruby |
V7: Embedded JavaScript engine. |
V8: Google’s fast JavaScript engine that can be embedded in any C++ application. |
serialization
Cap ‘n Proto: Fast data interchange format and RPC system. |
cereal: C++11 serialization library |
FlatBuffers: memory efficient serialization library |
MessagePack: efficient binary serialization library for C/C++, such as JSON |
protobuf: Protocol buffer, Google’s data interchange format. |
protobuf-c: C language protocol buffer implementation |
SimpleBinaryEncodingEncoding and decoding of application information in binary format for low-latency applications. |
Thrift: efficient cross-language IPC/RPC for C++, Java, Python, PHP, C# and many other languages, originally developed by Twitter. |
video
libvpx: VP8/VP9 encoding decodes SDK |
FFmpeg: a complete, cross-platform solution for recording, converting video and audio streams. |
libde265: Open h.265 video codec implementation. |
OpenH264: Open source H.364 codec. |
Theora: a free open source video compression format. |
The virtual machine
CarpVMInteresting VM in C, let’s take a look at this. |
MicroPython: aims to realize the realization of Python3. X on MCU |
TinyVM: small, fast, lightweight virtual machine written in pure ANSI C. |
Web Application Framework
Civetweb: Provides an easy-to-use, powerful, C/C++ embedded Web server with optional CGI, SSL, and Lua support. |
CppCMS: free high performance Web development framework (not CMS). |
Crow: a C++ mini-web framework (inspired by Python Flask) |
Kore: an ultra-fast and flexible Web server/framework developed in C for Web applications. |
libOnion: a lightweight library that helps you create web servers using the C programming language. |
QDjango: a Qt library-based web framework written in C++ that attempts to emulate the Django API, hence its name. |
Wt: C++ library for developing Web applications. |
XML
XML is garbage, XML parsing is a pain in the ass, and it’s a disaster for computers. There is no reason for this awful thing to exist. -Linus Torvalds |
Expat: XML parsing library written in C language |
Libxml2XML C parser and toolkit for Gnome |
libxml++: C++ XML parser |
PugiXMLXpath-enabled lightweight, simple and fast XML parser for C++. |
RapidXml: Attempts to create the fastest XML parser possible while maintaining ease of use, portability, and reasonable W3C compatibility. |
TinyXML: a simple, small C++XML parser that can be easily integrated into other projects. |
TinyXML2: a simple and fast C++CML parser that can be easily integrated into other projects. |
TinyXML++: a new interface to TinyXML that uses many of the many advantages of C++, templates, exceptions and better exception handling. |
Xerces-C++: XML validation parser written in a portable subset of C++ |
A number of hybrid
C++ Format: C++ small, secure and fast formatting library |
casacore: a series of C++ core libraries derived from aips++ |
cxx-prettyprint: print library for C++ containers |
DynaPDF: easy to use PDF generation library |
gcc-poison: a simple header file that helps developers disable unsafe C/C++ functions in their applications. |
googlemock: a library to write and use C++ simulation classes |
HTTP Parser: HTTP request/response parser for C |
libcpuid: small C library for feature extraction of x86 CPU detection boxes |
libevil: License manager |
libusb: Universal USB library that allows mobile access to USB devices |
PCRE: regular expression C library, inspired by the regular expression functionality in Perl. |
Remote Call Framework: C++ interprocess communication framework. |
Scintilla: open source code editing control |
Serial Communication Library: C++ language written cross-platform, serial library. |
SDS: C’s simple dynamic string library |
SLDR: Super light DNS parser |
SLRE: an ultra-light regular expression library |
Stage: Mobile robot simulator |
VarTypes: C++/Qt4 features rich, object-oriented framework for managing variables. |
ZBar: ‘Barcode Scanner’ library that can scan barcodes in photos, pictures and video streams and return results. |
CppVerbalExpressions: easy-to-use C++ regular expressions |
QtVerbalExpressions: Qt library based on C++ VerbalExpressions library |
PHP-CPP: library to build PHP extensions using C++ |
Better String: another C string library, more feature-rich, but without buffer overflow issues, also includes a C++ wrapper. |
The compiler
Clang: Developed by Apple |
GCC: GNU compiler collection |
Intel C++ Compiler: Developed by Intel |
LLVM: a collection of modular and reusable compiler and toolchain technologies |
Microsoft Visual C++: MSVC, developed by Microsoft |
Open WatCom: Watcom, C, C++ and Fortran cross-compilers and tools |
TCC: lightweight C compiler |
codepad: online compiler/interpreter, a simple collaboration tool |
CodeTwist: a simple online compiler/interpreter that allows you to paste C,C++ or Java code, execute it online and view the results |
coliru: online compiler /shell, support a variety of C++ compilers |
Compiler Explorer: interactive compiler that can assemble output |
CompileOnlineCompile and execute C++ programs online on Linux |
Ideone: an online compiler and debugging tool that allows you to compile source code and execute it online, supporting over 60 programming languages. |
C/C++ debugger list
Comparison of debuggers: list of debuggers from Wikipedia |
GDB: GNU debugger |
Valgrind: Memory debugging, memory leak detection, performance analysis tools. |
Integrated Development Environment (IDE)
AppCode: Build an integrated development environment for Objective-C,C,C++, Java and Java development on the JetBrains’ IntelliJ IDEA platform |
CLionA cross-platform C/C++ integrated development environment from JetBrains |
Code::Blocks: free C, C++, and Fortran integrated development environment |
CodeLite: another cross-platform free C/C++ integrated development environment |
Dev-C++: portable C/C++/C++11 integrated development environment |
Eclipse CDT: a fully featured C and C++ integrated development environment based on the Eclipse platform |
Geany: lightweight fast, cross-platform integrated development environment. |
IBM VisualAge: Home Computer Integrated Development Environment from IBM. |
Irony-mode: C/C++ micromode for Emacs driven by libclang |
KDevelop: Free open source integrated development environment |
Microsoft Visual Studio: Integrated Development Environment from Microsoft |
NetBeans: Integrated development environment for Java development, but also supports other languages, especially PHP, C/C++, and HTML5. |
Qt Creator: a cross-platform integrated development environment for C++, Javascript, and QML that is part of the Qt SDK. |
rtags: C/C++ client server index for integration with Clang-based Emacs |
Xcode: Developed by Apple |
YouCompleteMe: a quick fuzzy search and code completion engine for Vim based on the code you type. |
Build system
Bear: a tool for generating and compiling databases for the Clang tool |
Biicode: simple file-based dependency manager. |
CMake: Free across platformsOpen source softwareUsed to manage the process of building software using a independently compiled approach. |
CPM: C++ package manager based on CMake and Git |
FASTBuild: High-performance, open source build system that supports highly scalable compilation, buffering and network distribution. |
Ninja: Small build systems that focus on speed |
Scons: a software build tool configured using Python SCIPT |
tundra: High-performance code build systems provide the best incremental build count even for very large software projects. |
tup: file-based build system for background monitoring of changing files. |
Static code analysis
Cppcheck: static C/C++ code analysis tool |
include-what-you-use: a tool for code analysis using Clang, including #include in C and C++ files. |
OCLint: static source code analysis tool for C, C++, and Objective-C to improve quality and reduce defects. |
Clang Static AnalyzerSource code analysis tool for finding bugs in C, C++, and Objective-C programs |
List of tools for static code analysis: List of static code analysis tools from Wikipedia |