Awesome C_C++
description
Transcript of Awesome C_C++
https://github.com/fffaraz/awesomecpp
Awesome C/C++A curated list of awesome C/C++ frameworks, libraries,
resources, and shiny things. Inspired by awesome... stuff.
Awesome C/C++
Standard Libraries
Frameworks
Artificial Intelligence
Asynchronous Event Loop
Audio
Biology
CLI
Compression
Concurrency
Containers
Cryptography
Database
Debug
Star 2,160
Game Engine
GUI
Graphics
Image Processing
Internationalization
Interprocess communication
JSON
Logging
Machine Learning
Math
Multimedia
Networking
Physics
Robotics
Scientific Computing
Scripting
Serialization
Video
Virtual Machines
Web Application Framework
XML
Miscellaneous
Software
Compiler
Online Compiler
Debugger
Integrated Development Environment
Build Systems
Static Code Analysis
Resources
API Design
Articles
Books
Coding Style
Videos
Websites
Other Awesome Lists
Contributing
Standard LibrariesC++ Standard Library including STL Containers, STL Aglorithm, STL Functional, etc.
C++ Standard Library A collection of classes and functions, which are written in the core language andpart of the C++ ISO Standard itself.
Standard Template Library The Standard Template Library (STL).
C POSIX library A specification of a C standard library for POSIX systems.
ISO C++ Standards Committee ISO/IEC JTC1/SC22/WG21 The C++ Standards Committee. website
The GNU C Library The purpose of this manual is to tell you how to use the facilities of the GNU C Library.
FrameworksC++ generic frameworks and libraries.
Apache C++ Standard Library A collection of algorithms, containers, iterators, and other fundamentalcomponents. [Apache2]
APR Apache Portable Runtime. Another library of crossplatform utility functions. [Apache2]
ASL Adobe Source Libraries provides peerreviewed and portable C++ source libraries. [MIT]
Boost :zap: A large collection of generic C++ libraries. [Boost] website
BDE The BDE Development Environment from Bloomberg Labs. [MIT]
Cinder A communitydeveloped, free and open source library for professionalquality creative coding.[BSD]
Cxxomfort A small, headeronly library that backports to C++03 some of the nifty C++11 goodies. [MIT]
Dlib :zap: A general purpose crossplatform C++ library designed using contract programming andmodern C++ techniques. [Boost]
EASTL Public part of EASTL. [BSD]
ffeadcpp Framework for Enterprise Application Development. [Apache2]
Folly An opensource C++ library developed and used at Facebook. [Apache2]
JUCE An allencompassing C++ class library for developing crossplatform software. [CoreModule: ISC,Rest: GPL2/GPL3/Commercial] website
libPhenom libPhenom is an eventing framework for building high performance and high scalability systemsin C. [Apache2]
LibSourcey C++11 evented IO for realtime video streaming and high performance networkingapplications. [LGPL]
LibU A multiplatform utility library written in C. [BSD]
Loki A C++ library of designs, containing flexible implementations of common design patterns and idioms.[MIT]
MiLi Minimal headersonly C++ Library. [Boost]
OpenFrameworks A cross platform open source toolkit for creative coding in C++. [MIT] website
Qt :zap: A crossplatform application and UI framework. [LGPL]
Reason A cross platform framework designed to bring the ease of use of Java, .Net, or Python todevelopers who require the performance and strength of C++. [GPL2]
ROOT A set of OO frameworks with all the functionality needed to handle and analyze large amounts ofdata in a very efficient way. Used at CERN. [LGPL]
STLport An exemplary version of STL. [Free]
STXXL Standard Template Library for Extra Large Data Sets. [Boost]
Ultimate++ A C++ crossplatform rapid application development framework. [BSD]
uSTL The small STL library. [MIT]
Windows Template Library A C++ library for developing Windows applications and UI components. [Public]
Yomm11 Open multimethods for C++11. [Boost]
Artificial Intelligence
btsk Game Behavior Tree Starter Kit. [zlib]
Evolving Objects A templatebased, ANSIC++ evolutionary computation library which helps you to writeyour own stochastic optimization algorithms insanely fast. [LGPL]
Neu A C++ 11 framework, collection of programming languages, and multipurpose software systemdesigned for: the creation of artificial intelligence applications. [BSD]
Asynchronous Event Loop
Boost.Asio A crossplatform C++ library for network and lowlevel I/O programming. [Boost]
libev A fullfeatured and highperformance event loop that is loosely modelled after libevent, but without itslimitations and bugs. [BSD and GPL]
libevent An event notification library. [BSD]
libuv Crossplatform asychronous I/O. [BSD]
AudioAudio, Sound, Music, Digitized Voice Libraries
FMOD An easy to use crossplatform audio engine and audio content creation tool for games. [Free fornoncommercial/Commercial]
Maximilian C++ Audio and Music DSP Library. [MIT]
OpenAL Open Audio Library A crossplatform audio API. [BSD/LGPL/Commercial]
Opus A totally open, royaltyfree, highly versatile audio codec. [BSD]
Speex A free codec for free speech. Obsoleted by Opus. [BSD]
Tonic Easy and efficient audio synthesis in C++. [Unlicense]
Vorbis Ogg Vorbis is a fully open, nonproprietary, patentandroyaltyfree, generalpurpose compressedaudio format. [BSD]
BiologyBioinformatics, Genomics, Biotech
libsequence A C++ library for representing and analyzing population genetics data. [GPL]
SeqAn Algorithms and data structures for the analysis of sequences with the focus on biological data.[BSD/3clause]
Vcflib A C++ library for parsing and manipulating VCF files. [MIT]
Wham Structural variants (SVs) in Genomes by directly applying association tests to BAM files. [MIT]
CLIConsole/Terminal User Interface, Command Line Interface
Boost.Program_options A library to obtain program options via conventional methods such as commandline and config file. [Boost]
gflags Commandline flags module for C++. [BSD]
Ncurses A terminal user interfaces. [MIT]
termbox A C library for writing textbased user interfaces. [BSD]
CompressionCompression and Archiving Libraries
bzip2 A freely available, patent free, highquality data compressor. [BSD]
doboz Compression library with very fast decompression. [zlib]
PhysicsFS A library to provide abstract access to various archives. It is intended for use in video games,and the design was somewhat inspired by Quake 3's file subsystem. [zlib]
KArchive A library for creating, reading, writing and manipulating file archives like zip and tar. It alsoprovides transparent compression and decompression of data, using formats like gzip, via a subclass ofQIODevice. [LGPL]
LZ4 Extremely Fast Compression algorithm. [BSD]
LZHAM Lossless data compression library with a compression ratio similar to LZMA but with much fasterdecompression. [BSD]
LZMA :zap: The default and general compression method of 7z format. [PublicDomain]
LZMAT An extremely fast realtime lossless data compression library. [GPL]
miniz Single C source file Deflate/Inflate compression library with zlibcompatible API, ZIP archivereading/writing, PNG writing. [Unlicense]
Minizip Zlib with latest bug fixes that supports PKWARE disk spanning, AES encryption, and IO buffering.[zlib]
smaz Small strings compression library. [BSD]
Snappy A fast compressor/decompressor. [BSD]
ZLib A very compact compression library for data streams. [zlib]
ZZIPlib Provides read access on ZIParchives. [MPL/LGPL]
ConcurrencyConcurrency and Multithreading
Boost.Compute A C++ GPU Computing Library for OpenCL. [Boost]
Bolt A C++ template library optimized for GPUs. [Apache2]
C++React A reactive programming library for C++11. [Boost]
Intel TBB Intel® Threading Building Blocks. [GPL2 with runtime exception]
Libclsph An OpenCL based GPU accelerated SPH fluid simulation library. [MIT]
OpenCL The open standard for parallel programming of heterogeneous systems.
OpenMP The OpenMP API.
Thrust A parallel algorithms library which resembles the C++ Standard Template Library (STL). [Apache2]
HPX A general purpose C++ runtime system for parallel and distributed applications of any scale. [Boost]
VexCL A C++ vector expression template library for OpenCL/CUDA. [MIT]
Containers
C++ Btree A template library that implements ordered inmemory containers based on a Btree datastructure. [Apache2]
Hashmaps Implementation of open addressing hash table algorithms in C++. [MIT]
Cryptography
Cryptography and Encryption Libraries
Bcrypt A cross platform file encryption utility. Encrypted files are portable across all supported operatingsystems and processors.
BeeCrypt
Botan A crypto library for C++. [BSD2]
Crypto++ A free C++ class library of cryptographic schemes. [Boost]
GnuPG A complete and free implementation of the OpenPGP standard. [GPL]
GnuTLS A secure communications library implementing the SSL, TLS and DTLS protocols. [LGPL2.1]
Libgcrypt
libmcrypt
LibreSSL A free version of the SSL/TLS protocol forked from OpenSSL in 2014. [?]
libsodium P(ortable|ackageable) NaClbased crypto library, opinionated and easy to use. [ISC]
LibTomCrypt A fairly comprehensive, modular and portable cryptographic toolkit. [WTFPL]
Nettle A lowlevel cryptographic library. [LGPL]
OpenSSL A robust, commercialgrade, fullfeatured, and Open Source cryptography library. [Apache]
retter A collection of hash functions, ciphers, tools, libraries, and materials related to cryptography.
Tiny AES128 in C A small and portable implementation of the AES128 ECB encryption algorithmimplemented in C. [PublicDomain]
DatabaseDatabase Libraries, SQL Servers, ODBC Drivers, and Tools
hiberlite C++ Objectrelational mapping for sqlite3. [BSD]
Hiredis A minimalistic C client library for the Redis database. [BSD]
LevelDB A fast keyvalue storage library. [BSD]
LMDB Very fast embedded key/value store with full ACID semantics. [OpenLDAP]
MongoDB C Driver MongoDB client library for C. [Apache version 2.0]
MongoDB C++ Driver C++ driver for MongoDB. [Apache version 2.0]
MongoDB Libbson A BSON utility library. [Apache version 2.0]
MySQL++ A C++ wrapper for MySQL's C API. [LGPL]
RocksDB Embedded keyvalue store for fast storage from facebook. [BSD]
SQLite A completely embedded, fullfeatured relational database in a few 100k that you can include rightinto your project. [PublicDomain]
DebugDebugging Libraries, Memory Leak and Resource Leak Detection, Unit Testing
Boost.Test Boost Test Library. [Boost]
Catch A modern, C++native, headeronly, framework for unittests, TDD and BDD. [Boost]
Celero C++ Benchmarking Framework. [Apache 2.0]
CMocka unit testing framework for C with support for mock objects. [Apache2]
CppUnit C++ port of JUnit. [LGPL2]
CTest The CMake test driver program. [BSD]
googletest Google C++ Testing Framework. [BSD]
igdebugheap Multiplatform debug heap useful for tracking down memory errors. [BSD]
libtap Write tests in C. [GPL2]
MemTrack Tracking memory allocations in C++.
microprofile Profiler with webview for multiple platforms. [PublicDomain]
minUnit A minimal unit testing framework for C written using only 2 macros. [PublicDomain]
Remotery Single C File Profiler with Web Viewer. [Apache2]
UnitTest++ A lightweight unit testing framework for C++. [MIT/X Consortium license]
Game Engine
Allegro A crossplatform library mainly aimed for video games and multimedia programming. [zlib]
Cocos2dx A multiplatform framework for building 2d games, interactive books, demos and othergraphical applications. [Commercial?]
delta3d A robust simulation platform. [LGPL2]
GamePlay A crossplatform native C++ game framework for creating 2D/3D mobile and desktop games.[Apache2]
Godot A fully featured, open source, MIT licensed, game engine. [MIT]
Grit Community project to build a free game engine for implementing open world 3D games. [MIT]
Irrlicht A high performance realtime 3D engine written in C++. [zlib]
Polycode A crossplatform framework for creative code in C++ (with Lua bindings). [MIT] website
Torque2D An opensource and crossplatform C++ engine built for 2D game development. [MIT] website
Torque3D An opensource C++ engine built for 3D game development. [MIT] website
GUIGraphic User Interface
CEGUI Flexible, crossplatform GUI library.
FLTK Fast, light, crossplatform C++ GUI toolkit. [GPL2]
GTK+ A multiplatform toolkit for creating graphical user interfaces. [LGPL]
gtkmm The official C++ interface for the popular GUI library GTK+. [LGPL]
imgui Immediate Mode Graphical User Interface with minimal dependencies. [MIT]
libRocket libRocket is a C++ HTML/CSS game interface middleware. [MIT]
MyGUI Fast, flexible and simple GUI. [MIT]
QCustomPlot Qt plotting widget without further dependencies. [GPLv3]
Qwt Qt Widgets for Technical Applications. [Own based on LGPL]
QwtPlot3D A featurerich Qt/OpenGLbased C++ programming library, providing essentially a bunch of3Dwidgets. [zlib]
OtterUI OtterUI is a User Interface development solution for embedded systems and interactiveentertainment software. [MIT]
PDCurses Public domain curses library with both source code and precompiled library available.[PublicDomain]
Sciter Sciter is an embeddable HTML/CSS/scripting engine aimed to be used as an UI layer of moderndesktop applications. [Free/Commercial]
wxWidgets A C++ library that lets developers create applications for Windows, Mac OS X, Linux and otherplatforms with a single code base. [Own LGPL]
Graphics
bgfx A crossplatform rendering library. [BSD]
Cairo A 2D graphics library with support for multiple output devices. [LGPL2 or Mozilla MPL]
Horde3D A small 3D rendering and animation engine. [EPL]
magnum C++11 and OpenGL 2D/3D graphics engine. [MIT] website
Ogre 3D :zap: A sceneoriented, realtime, flexible 3D rendering engine (as opposed to a game engine)written in C++. [MIT]
OpenSceneGraph An open source high performance 3D graphics toolkit. [OSGPL]
Panda3D A framework for 3D rendering and game development for Python and C++. [BSD]
Skia A complete 2D graphic library for drawing Text, Geometries, and Images. [BSD] webpage
urho3d Crossplatform rendering and game engine. [Many different, mostly MIT]
Image Processing
Boost.GIL Generic Image Library.
CImg A small, open source, C++ toolkit for image processing. [Own LGPL or GPL]
CxImage An image processing and conversion library to load, save, display, transform BMP, JPEG, GIF,PNG, TIFF, MNG, ICO, PCX, TGA, WMF, WBMP, JBG, J2K images. [zlib]
FreeImage An open source library that supports popular graphics image formats and others as needed bytoday's multimedia applications. [GPL2 or GPL3]
GDCM Grassroots DICOM library.
ITK An opensource, crossplatform system for image analysis. [Apache 2.0 from ITK 4.0]
libvips A fast image processing library with low memory needs. [LGPL] website
Magick++ ImageMagick program interfaces for C++. [Apache 2.0]
MagickWnd ImageMagick program interfaces for C. [Apache 2.0]
OpenCV :zap: Open source computer vision. [BSD]
tesseractocr An OCR engine. [Apache 2.0]
VIGRA A generic C++ computer vision library for image analysis. [MIT X11]
VTK Opensource, freely available software system for 3D computer graphics, image processing andvisualization. [BSD]
Internationalization
gettext GNU `gettext'. [GPL2]
IBM ICU A set of C/C++ and Java libraries providing Unicode and Globalization support. [ICU]
libiconv An encoding conversion library between different character encodings. [GPL]
Interprocess communication
Apache Thrift Efficient crosslanguage IPC/RPC, works between C++, Java, Python, PHP, C#, and manymore other languages. Originally developed by Facebook. [Apache2]
Cap'n Proto Fast data interchange format and capabilitybased RPC system. [MIT]
gRPC A high performance, open source, generalpurpose RPC framework. [BSD] website
libjsonrpccpp JSONRPC framework for C++ servers and clients. [MIT]
nanomsg A simple highperformance implementation of several "scalability protocols". [MIT] website
simplerpccpp A simple RPC wrapper generator to C/C++ functions. [BSD]
xmlrpcc A lightweight RPC library based on XML and HTTP. [BSD]
ZeroMQ Highspeed, modular asynchronous communication library. [LGPL]
JSON
Boost.PropertyTree A property tree parser/generator that can be used to parse XML/JSON/INI/Info files.[Boost]
frozen JSON parser and generator for C/C++. [GPL & GPL2]
Jansson C library for encoding, decoding and manipulating JSON data. [MIT]
jbson jbson is a library for building & iterating BSON data, and JSON documents in C++14. [Boost]
JeayeSON A very sane (header only) C++ JSON library. [BSD]
json JSON for Modern C++. [MIT]
JSON++ A JSON parser in C++. [MIT]
JsonCpp A C++ library for interacting with JSON. [MIT]
jsonparser Very low footprint JSON parser written in portable ANSI C. [BSD]
json11 A tiny JSON library for C++11. [MIT]
jsonvoorhees JSON library for C++. Support for C++11. No dependencies, fast and devfriendly.[Apache2]
jute Very simple C++ JSON Parser. [PublicDomain]
libjson A JSON parser and printer library in C. easy to integrate with any model. [LGPL]
libjson Lightweight JSON library. [?]
LIBUCL :zap: Universal configuration library parser [?]
PicoJSON A headerfileonly, JSON parser serializer in C++. [BSD]
qtjson A simple class for parsing JSON data into a QVariant hierarchy and vice versa. [GPLv3]
QJson A qtbased library that maps JSON data to QVariant objects. [LGPL2]
RapidJSON :zap: A fast JSON parser/generator for C++ with both SAX/DOM style API. [MIT]
YAJL A fast streaming JSON parsing library in C. [ISC]
Logging
Boost.Log Designed to be very modular and extensible. [Boost]
easyloggingpp Single header only C++ logging library. [MIT] website
G3log Asynchronous logger with Dynamic Sinks. [PublicDomain]
Log4cpp A library of C++ classes for flexible logging to files, syslog, IDSA and other destinations. [LGPL]
log4cplus A simple to use C++ logging API providing threadsafe, flexible, and arbitrarily granular controlover log management and configuration. [BSD & Apache 2.0]
spdlog Super fast, header only, C++ logging library.
templog A very small and lightweight C++ library which you can use to add logging to your C++applications. [Boost]
Machine Learning
Caffe A fast framework for neural networks. [BSD]
CCV Cbased/Cached/Core Computer Vision Library, A Modern Computer Vision Library. [BSD]
Minerva A fast and flexible system for deep learning. [Apache2]
mlpack A scalable c++ machine learning library. [LGPLv3]
OpenCV :zap: Open Source Computer Vision Library. [BSD] website
Recommender C library for product recommendations/suggestions using collaborative filtering (CF). [BSD]
SHOGUN The Shogun Machine Learning Toolbox. [GPLv3]
sofiaml The suite of fast incremental algorithms for machine learning. [Apache2]
Math
Apophenia A C library for statistical and scientific computing [GPL2]
Armadillo A high quality C++ linear algebra library, aiming towards a good balance between speed andease of use. The syntax (API) is deliberately similar to Matlab. [MPL2]
blaze highperformance C++ math library for dense and sparse arithmetic. [BSD]
ceressolver C++ library for modeling and solving large complicated nonlinear least squares problemsfrom google. [BSD]
CGal Collection of efficient and reliable geometric algorithms. [LGPL&GPL]
cml free C++ math library for games and graphics. [Boost]
Eigen A highlevel C++ library of template headers for linear algebra, matrix and vector operations,numerical solvers and related algorithms. [MPL2]
GMTL Graphics Math Template Library is a collection of tools implementing Graphics primitives ingeneralized ways. [GPL2]
GMP A C/C++ library for arbitrary precision arithmetic, operating on signed integers, rational numbers,and floatingpoint numbers. [LGPL3 & GPL2]
Multimedia
GStreamer A library for constructing graphs of mediahandling components. [LGPL]
LIVE555 Streaming Media Multimedia streaming library using open standard protocols (RTP/RTCP,RTSP, SIP). [LGPL]
libVLC libVLC (VLC SDK) media framework. [GPL]
QtAv A multimedia playback framework based on Qt and FFmpeg to write a player easily. [LGPL] website
SDL :zap: Simple DirectMedia Layer. [zlib]
SFML :zap: Simple and Fast Multimedia Library. [zlib]
Networking
ACE An OO Network Programming Toolkit in C++. [?MIT?]
Boost.Asio :zap: A crossplatform C++ library for network and lowlevel I/O programming. [Boost]
Casablanca C++ REST SDK. [Apache2]
cppnetlib A collection of opensource libraries for high level network programming. [Boost]
Dyad.c Asynchronous networking for C. [MIT]
libcurl Multiprotocol file transfer library. [MIT/X derivate license]
libjingle Google talk voice and P2P interoperability library. [BSD]
Mongoose Extremely lightweight webserver. [GPL2]
Muduo A C++ nonblocking network library for multithreaded server in Linux. [BSD]
net_skeleton TCP client/server library for C/C++. [GPL2]
nope.c A C languagebased ultralight software platform for scalable serverside and networkingapplications. Think node.js for C programmers. [GPL2]
Onion HTTP server library in C designed to be lightweight and easy to use. [Apache2/GPL2]
POCO :zap: C++ class libraries and frameworks for building network and internetbased applications thatrun on desktop, server, mobile and embedded systems. [Boost] website
Proxygen Facebook's collection of C++ HTTP libraries including an easy to use HTTP server. [BSD]
RakNet A cross platform, open source, C++ networking engine for game programmers. [BSD]
Tufão An asynchronous web framework for C++ built on top of Qt. [LGPL2]
WebSocket++ C++/Boost Asio based websocket client/server library. [BSD]
PhysicsDynamics simulation engines
Box2D A 2D physics engine for games. [BSDlike]
Bullet A 3D physics engine for games. [zlib] website
Chipmunk A fast and lightweight 2D game physics library. [MIT] website
LiquidFun A 2D physics engine for games. [BSDlike]
Newton Dynamics An integrated solution for real time simulation of physics environments. [zlib]
ODE Open Dynamics Engine An open source, high performance library for simulating rigid bodydynamics. [BSD&LGPL]
ofxBox2d openFrameworks wrapper for Box2D. [BSDlike]
Simbody Highperformance C++ multibody dynamics/physics library for simulating articulatedbiomechanical and mechanical systems like vehicles, robots, and the human skeleton. [Apache2]
Robotics
MOOSIvP A set of open source C++ modules for providing autonomy on robotic platforms, in particularautonomous marine vehicles.
MRPT Mobile Robot Programming Toolkit. [BSD]
PCL Point Cloud Library is a standalone, large scale, open project for 2D/3D image and point cloudprocessing [BSD] website
Robotics Library (RL) A selfcontained C++ library for robot kinematics, motion planning and control. [BSD]
RobWork A collection of C++ libraries for simulation and control of robot systems. [Apache2]
ROS Robot Operating System provides libraries and tools to help software developers create robotapplications. [BSD]
Scientific Computing
FFTW A C library for computing the DFT in one or more dimensions. [GPL]
GSL GNU scientific library. [GPL]
Scripting
ChaiScript An easy to use embedded scripting language for C++. [BSD] website
Lua A minimal and fast scripting engine for configuration files and basic application scripting. [MIT]
luacxx C++11 API for creating Lua bindings. [MIT]
SWIG A wrapper/interface Generator that let you link your c++ code to Javascript, Perl, PHP, Python, Tcland Ruby. [GPL/Output not licensed]
V7 An embedded JavaScript engine. [GPL2]
V8 A fast JavaScript engine by Google that can be embedded into any C++ application. [BSD]
Serialization
cereal A C++11 library for serialization. [BSD]
FlatBuffers A Memory efficient serialization library. [Apache2]
MessagePack Efficient binary serialization format "like JSON" for C/C++. [Apache2] website
protobuf Protocol Buffers Google's data interchange format. [BSD]
protobufc Protocol Buffers implementation in C. [BSD]
SimpleBinaryEncoding encoding and decoding application messages in binary format for lowlatencyapplications. [Apache2]
Video
libvpx VP8/VP9 Codec SDK. [BSD]
FFmpeg A complete, crossplatform solution to record, convert and stream audio and video.[LGPL2/GPL2]
libde265 Open h.265 video codec implementation. [LGPL] website
OpenH264 Open Source H.264 Codec. [BSD] website
Theora A free and open video compression format. [BSD]
Virtual Machines
CarpVM "interesting" VM in C. Let's see how this goes. [GPLv3]
MicroPython Aims to put an implementation of Python 3.x on a microcontroller. [MIT]
TinyVM A small, fast, lightweight virtual machine written in pure ANSI C. [MIT]
Web Application Framework
Civetweb Provides easy to use, powerful, C/C++ embeddable web server with optional CGI, SSL and Luasupport. [MIT]
CppCMS A Free High Performance Web Development Framework (not a CMS). [LGPLv3]
Crow Crow is C++ micro web framework (inspired by Python Flask). [BSD]
Kore ultra fast and flexible web server / framework for web applications developed in C. [ISC]
libOnion lightweight library to help you create webservers in C programming language. [LGPLv3]
QDjango A web framework written in C++ and built on top of the Qt library. Where possible it tries to followdjango's API, hence its name. [LGPL]
Wt A C++ library for developing web applications. [GPL/Commercial]
XMLXML is crap. Really. There are no excuses. XML is nasty to parse for humans, and it's a disaster to parse evenfor computers. There's just no reason for that horrible crap to exist. Linus Torvalds
Boost.PropertyTree A property tree parser/generator that can be used to parse XML/JSON/INI/Info files.[Boost]
Expat An XML parser library written in C. [MIT]
Libxml2 The XML C parser and toolkit of Gnome. [MIT]
libxml++ An XML Parser for C++. [LGPL2]
PugiXML A lightweight, simple and fast XML parser for C++ with XPath support. [MIT]
RapidXml An attempt to create the fastest XML parser possible, while retaining useability, portability andreasonable W3C compatibility. [Boost]
TinyXML A simple, small, minimal, C++ XML parser that can be easily integrating into other programs.[zlib]
TinyXML2 A simple, small, efficient, C++ XML parser that can be easily integrating into other programs.[zlib]
TinyXML++ A completely new interface to TinyXML that uses MANY of the C++ strengths. Templates,exceptions, and much better error handling. [MIT]
XercesC++ A validating XML parser written in a portable subset of C++. [Apache2]
MiscellaneousUseful libraries or tools that don't fit in the categories above or maybe just not categorised yet
Better String An alternative to the string library for C which is more functional and does not have bufferoverflow overrun problems. Also includes a C++ wrapper. [BSD, GPL2]
Boost.Signals An implementation of a managed signals and slots system. [Boost]
C++ Format Small, safe and fast formatting library for C++. [BSD]
casacore A set of c++ core libraries derived from aips++. [LGPL]
CppVerbalExpressions C++ regular expressions made easy. [MIT]
QtVerbalExpressions This Qt lib is based off of the C++ VerbalExpressions library. [MIT]
csmartpointers Smart pointers for the (GNU) C programming language. [MIT]
cxxprettyprint A pretty printing library for C++ containers. [Boost]
DynaPDF An easytouse PDF generation library. [Commercial]
gccpoison A simple header file for developers to ban unsafe C/C++ functions from applications.
googlemock A library for writing and using C++ mock classes. [BSD]
HTTP Parser :zap: A http request/response parser for C. [MIT]
Klib Small and lightweight implementations of common algorithms and data structures. [MIT]
libsigc++ A typesafe callback system for standard C++. [LGPL]
libcpuid A small C library for x86 CPU detection and feature extraction. [BSD]
libevil The Evil License Manager. [GPLv3]
libnih A lightweight library of C functions and structures. [GPL2.1]
libusb A universal USB library which allows for portable access to USB devices. [LGPL2]
PCRE A regular expression C library inspired by the regular expression capabilities in Perl. [BSD]
PHPCPP A library to build PHP extensions with C++. [Apache2] website
Remote Call Framework Interprocess communication framework for C++. [GPL2/Commercial]
Scintilla A free source code editing component. [MIT]
SDS Simple Dynamic Strings library for C. [BSD]
Serial Communication Library Crossplatform, Serial Port library written in C++. [MIT]
sigslot C++ Signal/Slot Library. [PublicDomain]
SLDR Super Light DNS Resolver. [GPL2/Commercial]
SLRE Super Light Regular Expression library. [GPL2/Commercial]
Stage Mobile robot simulator. [GPL2]
stb A range of singlefile libraries for C/C++. [PublicDomain]
VarTypes A featurerich, objectoriented framework for managing variables in C++ / Qt4. [LGPL]
ZBar A barcode scanner library, which allows to scan photos/images/video streams for barcodes andreturn their value. [LGPL2]
ZXing An opensource, multiformat 1D/2D barcode image processing library implemented in Java, withports to other languages. [Apache]
SoftwareSoftware for creating a development environment.
CompilerList of C/C++ compilers
8cc A Small C Compiler.
c Compile and execute C "scripts" in one go! [MIT]
Clang A C compiler for LLVM. Supports C11. Developed by Apple. [NCSA]
GCC GNU Compiler Collection. Supports C11 and OpenMP. [GNU GPL3]
PCC A very old C compiler. Supports C99.
Intel C++ Compiler Developed by Intel.
LLVM 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. [Sybase Open Watcom PublicLicense]
Oracle Solaris Studio C, C++ and Fortran compiler for SPARC and x86. Supports C++11. Available onLinux and Solaris. [OTN Developer License]
TCC Tiny C Compiler. [LGPL]
Online CompilerList of online C/C++ compilers
codepad An online compiler/interpreter, and a simple collaboration tool.
CodeTwist A simple online compiler/interpreter, where you can paste your C, C++ or Java code andexecute it online and see results.
coliru Online compiler/shell with support for various C++ compilers.
Compiler Explorer An interactive compiler with assembly output available.
CompileOnline Compile and Execute C++ online on Linux.
Ideone An online compiler and debugging tool which allows you to compile source code and execute itonline in more than 60 programming languages.
Rextester Online compiler which provides several compilers(Clang, GCC, MSVC) and several editors.
Rise4Fun Online Visual C++ compiler.
Wandbox An online Clang/GCC compiler with Boost available.
DebuggerList of C/C++ debuggers
Comparison of debuggers A list of Debuggers from Wikipedia.
GDB GNU Debugger.
Valgrind A tool for memory debugging, memory leak detection, and profiling.
x64_dbg An opensource x64/x32 debugger for windows.
Integrated Development EnvironmentList of C/C++ nominal IDEs.
Anjuta DevStudio The GNOME IDE. [GPL3]
AppCode an IDE for ObjectiveC, C, C++, and JavaScript development built on JetBrains’ IntelliJ IDEAplatform.
CLion Crossplatform C/C++ IDE from JetBrains. In prerelease/early access stadium.
Code::Blocks A free C, C++ and Fortran IDE.
CodeLite Another crossplaform, free C/C++ IDE. [GPL2 with an exception for plugins]
DevC++ A portable C/C++/C++11 IDE.
Eclipse CDT A fully functional C and C++ IDE based on the Eclipse platform.
Geany Small, fast, crossplatform IDE. [GPL]
IBM VisualAge A family of computer integrated development environments from IBM.
Ironymode A C/C++ minor mode for Emacs powered by libclang.
KDevelop A free, open source IDE.
Microsoft Visual Studio An IDE from Microsoft.
NetBeans An IDE for developing primarily with Java, but also with other languages, in particular PHP,C/C++, and HTML5.
Qt Creator :zap: A crossplatform C++, JavaScript and QML IDE which is part of the SDK for Qt.
rtags A c/c++ client/server indexer with for integration with emacs based on clang.
Xcode Developed by Apple.
YouCompleteMe YouCompleteMe is a fast, asyoutype, fuzzysearch code completion engine for Vim.
Build Systems
Bear A tool to generate compilation database for clang tooling.
Biicode Simple, filebased dependency manager.
CMake Crossplatform free and opensource software for managing the build process of software using acompilerindependent method. [BSD]
CPM A C++ Package Manager based on CMake and Git.
FASTBuild High performance, opensource build system supporting highly scalable compilation, cachingand network distribution.
Ninja A small build system with a focus on speed.
Scons A software construction tool configured with Python scipt.
tundra Highperformance code build system designed to give the best possible incremental build timeseven for very large software projects.
tup Filebased build system that monitors in the background for changed files.
Premake A tool configured with lua scipt to generate project files for Visual Studio, GNU Make, Xcode,Code::Blocks, and more across Windows, Mac OS X, and Linux.
Static Code AnalysisList of tools for improving quality and reducing defects by code analysis
Cppcheck A tool for static C/C++ code analysis. source
includewhatyouuse A tool for use with clang to analyze includes in C and C++ source files.
OCLint A static source code analysis tool to improve quality and reduce defects for C, C++ and ObjectiveC. source
Clang Static Analyzer A source code analysis tool that finds bugs in C, C++, and ObjectiveC programs.
List of tools for static code analysis A list of tools for static code analysis from Wikipedia.
ResourcesVarious resources, such as books, websites, and articles for improving your C++ development skills andknowledge.
API Design
Beautiful Native Libraries
Designing QtStyle C++ APIs
ArticlesFantastic C/C++ related articles.
CppCon 2014 Speaker Materials Speaker materials from CppCon 2014.
C++Now 2014 Presentations Presentation materials presented at C++Now 2014.
C++Now 2013 Presentations Presentation materials presented at C++Now 2013.
C++Now 2012 Presentations Presentation materials presented at C++Now 2012.
BooksFantastic C/C++ related books.
List of Free C/C++ Books
Free C Books vhf/freeprogrammingbooks/C.
Free C++ Books vhf/freeprogrammingbooks/C++.
6 Free eBooks On C++ Game Programming Learn how to create graphics And video games in C++.
Coding Style
C++ Dos and Don'ts The Chromium Projects > For Developers > Coding Style > C++ Dos and Don'ts.
googlestyleguide Style guides for Googleoriginated opensource projects.
Google C++ Style Guide
GNU Coding Standard
Linux kernel coding style
Talks
CppCon Talks :zap: The C++ conference.
Quick game development with C++11/C++14 CppCon 2014 talk by Vittorio Romeo.
VideosFantastic C/C++ related videos.
Awesome C Programming Tutorials in Hi Def [HD] A collection of detailed C Programming LanguageTutorials for Beginners and New Programmers.
C++ by VoidRealms.
C++ Qt Programming by VoidRealms.
C++ Programming Tutorials Playlist TheNewBoston Official Buckys C++ Programming Tutorials Playlist.
C++ Programming Tutorials from thenewboston These are all of thenewboston's C++ programmingtutorials.
C++ GUI with Qt Playlist Official Playlist for thenewboston C++ GUI with Qt tutorials.
C Programming Tutorials All of TheNewBoston's C programming tutorials are right here.
Bo Qian's playlist Boost Library, C++ Standard Library, Modern C++, Advanced C++, Advanced STL, ...
WebsitesUseful C/C++ related websites.
Standard C++ :zap: News, Status & Discussion about Standard C++.
CppCon The C++ Conference.
C++ reference C++98, C++03, C++11, C++14 reference.
cplusplus.com The C++ Resources Network.
C FAQ C frequently asked questions.
C++ FAQ C++ frequently asked questions.
C++ FQA Lite C++ frequently questioned answers.
Guru of the Week A regular series of C++ programming problems created and written by Herb Sutter.
Meeting C++
WeblogsUseful C/C++ related weblogs.
Coding For Speed Coding For Speed DOT COM, Less Execution Time.
Eric Niebler
Sticky Bits
Paul Fultz II's Blog
Other Awesome ProjectsCollection of useful codes, snippets, ...
algorithms Algorithms & Data Structures in C++.
calgorithms C algorithms library.
C/C++ Awesome Pack Contains some awesome c++ codes, packed in one.
Other Awesome ListsOther amazingly awesome lists
lists List of (awesome) lists curated on GitHub.
awesomeawesomeness A curated list of awesome awesomeness.
awesome A curated list of awesome lists.
Awesome C A curated list of awesome C frameworks, libraries, resources and other shiny things.
freeprogrammingbooks List of Freely Available Programming Books.
paperswelove Papers from the computer science community to read and discuss.
awesomealgorithms A curated list of awesome places to learn and/or practice algorithms.
awesometalks A lot of screencasts, recordings of user group gatherings and conference talks.
Projects A list of practical projects that anyone can solve in any programming language.
ContributingPlease see CONTRIBUTING for details.