README.md 44.2 KB
Newer Older
Faraz Fallahi's avatar
Faraz Fallahi committed
1
2
# Awesome C/C++
A curated list of awesome C/C++ frameworks, libraries, resources, and shiny things. Inspired by awesome-... stuff.
Faraz Fallahi's avatar
Faraz Fallahi committed
3

Faraz Fallahi's avatar
minor    
Faraz Fallahi committed
4
- [Awesome C/C++](#awesome-cpp)
Faraz Fallahi's avatar
Faraz Fallahi committed
5
6
7
	- [Standard Libraries](#standard-libraries)
	- [Frameworks](#frameworks)
	- [Artificial Intelligence](#artificial-intelligence)
Faraz Fallahi's avatar
Faraz Fallahi committed
8
	- [Asynchronous Event Loop](#asynchronous-event-loop)
Faraz Fallahi's avatar
Faraz Fallahi committed
9
	- [Audio](#audio)
10
	- [Biology](#biology)
Rodrigo Delduca's avatar
Rodrigo Delduca committed
11
	- [Compression](#compression)
Faraz Fallahi's avatar
Faraz Fallahi committed
12
13
14
15
	- [Concurrency](#concurrency)
	- [Containers](#containers)
	- [Cryptography](#cryptography)
	- [Database](#database)
Faraz Fallahi's avatar
update    
Faraz Fallahi committed
16
	- [Debug](#debug)
Faraz Fallahi's avatar
Faraz Fallahi committed
17
	- [Game Engine](#game-engine)
Faraz Fallahi's avatar
Faraz Fallahi committed
18
19
	- [GUI](#gui)
	- [Graphics](#graphics)
myd7349's avatar
myd7349 committed
20
	- [Image Processing](#image-processing)
Faraz Fallahi's avatar
Faraz Fallahi committed
21
22
23
24
	- [Internationalization](#internationalization)
	- [JSON](#json)
	- [Logging](#logging)
	- [Machine Learning](#machine-learning)
questor/inter's avatar
questor/inter committed
25
	- [Math](#math)
Faraz Fallahi's avatar
Faraz Fallahi committed
26
27
	- [Multimedia](#multimedia)
	- [Networking](#networking)
SiPlus's avatar
SiPlus committed
28
	- [Physics](#physics)
myd7349's avatar
myd7349 committed
29
	- [Scientific Computing](#scientific-computing)
Faraz Fallahi's avatar
Faraz Fallahi committed
30
	- [Scripting](#scripting)
Faraz Fallahi's avatar
Faraz Fallahi committed
31
	- [Serialization](#serialization)
Faraz Fallahi's avatar
Codec    
Faraz Fallahi committed
32
	- [Video](#video)
33
	- [Virtual Machines](#virtual-machines)
Faraz Fallahi's avatar
Faraz Fallahi committed
34
35
	- [Web Application Framework](#web-application-framework)
	- [XML](#xml)
Faraz Fallahi's avatar
Faraz Fallahi committed
36
	- [Miscellaneous](#miscellaneous)
Faraz Fallahi's avatar
Faraz Fallahi committed
37
- [Software](#software)
Faraz Fallahi's avatar
Faraz Fallahi committed
38
	- [Compiler](#compiler)
Faraz Fallahi's avatar
Faraz Fallahi committed
39
	- [Online Compiler](#online-compiler)
Faraz Fallahi's avatar
Faraz Fallahi committed
40
41
	- [Debugger](#debugger)
	- [Integrated Development Environment](#integrated-development-environment)
questor/inter's avatar
questor/inter committed
42
	- [Buildsystem](#buildsystem)
Faraz Fallahi's avatar
Faraz Fallahi committed
43
	- [Static Code Analysis](#static-code-analysis)
Faraz Fallahi's avatar
Faraz Fallahi committed
44
- [Resources](#resources)
questor/inter's avatar
questor/inter committed
45
   - [API-Design](#apidesign)
Faraz Fallahi's avatar
Faraz Fallahi committed
46
47
	- [Articles](#articles)
	- [Books](#books)
Faraz Fallahi's avatar
Faraz Fallahi committed
48
	- [Coding Style](#coding-style)
Faraz Fallahi's avatar
Faraz Fallahi committed
49
50
	- [Videos](#videos)
	- [Websites](#websites)
Faraz Fallahi's avatar
Faraz Fallahi committed
51
- [Other Awesome Lists](#other-awesome-lists)
Faraz Fallahi's avatar
Faraz Fallahi committed
52
53
54
- [Contributing](#contributing)

## Standard Libraries
Faraz Fallahi's avatar
Faraz Fallahi committed
55
*C++ Standard Library - including STL Containers, STL Aglorithm, STL Functional, etc.*
Faraz Fallahi's avatar
Faraz Fallahi committed
56
57
58

* [C++ Standard Library](http://en.wikipedia.org/wiki/C%2B%2B_Standard_Library) - A collection of classes and functions, which are written in the core language and part of the C++ ISO Standard itself.
* [Standard Template Library](http://en.wikipedia.org/wiki/Standard_Template_Library) - The Standard Template Library (STL).
Faraz Fallahi's avatar
Faraz Fallahi committed
59
* [C POSIX library](http://en.wikipedia.org/wiki/C_POSIX_library) - A specification of a C standard library for POSIX systems.
Faraz Fallahi's avatar
typo    
Faraz Fallahi committed
60
* [ISO C++ Standards Committee](https://github.com/cplusplus) - ISO/IEC JTC1/SC22/WG21 - The C++ Standards Committee. [website](http://www.open-std.org/JTC1/SC22/WG21/)
Faraz Fallahi's avatar
Faraz Fallahi committed
61
62
63
64

## Frameworks
*C++ generic frameworks and libraries.*

65
66
67
68
69
70
71
72
73
74
* [Apache C++ Standard Library](http://stdcxx.apache.org/) - A collection of algorithms, containers, iterators, and other fundamental components. [Apache2]
* [ASL](http://stlab.adobe.com/) - Adobe Source Libraries provides peer-reviewed and portable C++ source libraries. [MIT]
* [Boost](https://github.com/boostorg) - A large collection of generic C++ libraries. [Boost] [website](http://www.boost.org/)
* [BDE](https://github.com/bloomberg/bde) - The BDE Development Environment from Bloomberg Labs. [MIT]
* [Cinder](http://libcinder.org/) - A community-developed, free and open source library for professional-quality creative coding. [BSD]
* [Cxxomfort](http://ryan.gulix.cl/fossil.cgi/cxxomfort/) - A small, header-only library that backports to C++03 some of the nifty C++11 goodies. [MIT]
* [Dlib](http://dlib.net/) - A general purpose cross-platform C++ library designed using contract programming and modern C++ techniques. [Boost]
* [EASTL](https://github.com/paulhodge/EASTL) - Public part of EA-STL. [BSD]
* [ffead-cpp](https://github.com/sumeetchhetri/ffead-cpp) - Framework for Enterprise Application Development. [Apache2]
* [Folly](https://github.com/facebook/folly) - An open-source C++ library developed and used at Facebook. [Apache2]
75
* [JUCE](https://github.com/julianstorer/JUCE) - An all-encompassing C++ class library for developing cross-platform software. [Core-Module: ISC, Rest: GPL2/GPL3/Commercial] [website](http://www.juce.com/)
76
77
78
79
80
81
82
83
* [libPhenom](https://github.com/facebook/libphenom) - libPhenom is an eventing framework for building high performance and high scalability systems in C. [Apache2]
* [LibSourcey](https://github.com/sourcey/libsourcey) - C++11 evented IO for real-time video streaming and high performance networking applications. [LGPL]
* [LibU](https://github.com/koanlogic/libu) - A multiplatform utility library written in C. [BSD]
* [Loki](http://loki-lib.sourceforge.net/) - A C++ library of designs, containing flexible implementations of common design patterns and idioms. [MIT]
* [MiLi](https://code.google.com/p/mili/) - Minimal headers-only C++ Library. [Boost]
* [openFrameworks](http://www.openframeworks.cc/) - An open source C++ toolkit for creative coding. [MIT]
* [Qt](http://qt-project.org/) - A cross-platform application and UI framework. [LGPL]
* [Reason](http://code.google.com/p/reason/) - A cross platform framework designed to bring the ease of use of Java, .Net, or Python to developers who require the performance and strength of C++. [GPLv2]
Faraz Fallahi's avatar
minor    
Faraz Fallahi committed
84
* [ROOT](http://root.cern.ch) - A set of OO frameworks with all the functionality needed to handle and analyze large amounts of data in a very efficient way. Used at CERN. [LGPL]
Faraz Fallahi's avatar
Faraz Fallahi committed
85
* [STLport](http://www.stlport.org/) - An exemplary version of STL. [Free]
86
87
88
89
* [STXXL](http://stxxl.sourceforge.net/) - Standard Template Library for Extra Large Data Sets. [Boost]
* [Ultimate++](http://www.ultimatepp.org/) - A C++ cross-platform rapid application development framework. [BSD]
* [Windows Template Library](http://sourceforge.net/projects/wtl/) - A C++ library for developing Windows applications and UI components. [Public]
* [Yomm11](https://github.com/jll63/yomm11) - Open multi-methods for C++11. [Boost]
Faraz Fallahi's avatar
Faraz Fallahi committed
90

Faraz Fallahi's avatar
update    
Faraz Fallahi committed
91
## Artificial Intelligence
Faraz Fallahi's avatar
Faraz Fallahi committed
92

questor/inter's avatar
questor/inter committed
93
94
95
* [btsk](https://github.com/aigamedev/btsk) - Game Behavior Tree Starter Kit. [zlib]
* [Evolving Objects](http://eodev.sourceforge.net/) - A template-based, ANSI-C++ evolutionary computation library which helps you to write your own stochastic optimization algorithms insanely fast. [LGPL]
* [Neu](https://github.com/andrometa/neu) - A C++ 11 framework, collection of programming languages, and multipurpose software system designed for: the creation of artificial intelligence applications. [BSD]
Faraz Fallahi's avatar
Faraz Fallahi committed
96

Faraz Fallahi's avatar
Faraz Fallahi committed
97
98
## Asynchronous Event Loop

questor/inter's avatar
questor/inter committed
99
100
101
102
* [Boost.Asio](http://think-async.com/) - A cross-platform C++ library for network and low-level I/O programming. [Boost]
* [libev](http://libev.schmorp.de/) - A full-featured and high-performance event loop that is loosely modelled after libevent, but without its limitations and bugs. [BSD and GPL]
* [libevent](http://libevent.org/) - An event notification library. [BSD]
* [libuv](https://github.com/joyent/libuv) - Cross-platform asychronous I/O. [BSD]
Faraz Fallahi's avatar
Faraz Fallahi committed
103

Faraz Fallahi's avatar
update    
Faraz Fallahi committed
104
105
## Audio
*Audio, Sound, Music, Digitized Voice Libraries*
Faraz Fallahi's avatar
Faraz Fallahi committed
106

107
108
109
* [FMOD](http://www.fmod.org/) - An easy to use crossplatform audio engine and audio content creation tool for games. [Free for non-commercial/Commercial]
* [Maximilian](https://github.com/micknoise/Maximilian) - C++ Audio and Music DSP Library. [MIT]
* [OpenAL](http://www.openal.org/) - Open Audio Library - A crossplatform audio API. [BSD/LGPL/Commercial]
Faraz Fallahi's avatar
Codec    
Faraz Fallahi committed
110
111
* [Opus](http://opus-codec.org/) - A totally open, royalty-free, highly versatile audio codec. [BSD]
* [Speex](http://www.speex.org/) - A free codec for free speech. Obsoleted by Opus. [BSD]
112
* [Tonic](https://github.com/TonicAudio/Tonic) - Easy and efficient audio synthesis in C++. [Unlicense]
Faraz Fallahi's avatar
Vorbis    
Faraz Fallahi committed
113
* [Vorbis](http://xiph.org/vorbis/) - Ogg Vorbis is a fully open, non-proprietary, patent-and-royalty-free, general-purpose compressed audio format. [BSD]
Faraz Fallahi's avatar
Faraz Fallahi committed
114

115
## Biology
SVAKSHA's avatar
SVAKSHA committed
116
*Bioinformatics, Genomics, Biotech*
117

SVAKSHA's avatar
SVAKSHA committed
118
* [Vcflib](https://github.com/ekg/vcflib) - a C++ library for parsing and manipulating VCF files. [MIT]
119
120
* [Wham](https://github.com/jewmanchue/wham) - Structural variants (SVs) in Genomes by directly applying association tests to BAM files. 
	
Faraz Fallahi's avatar
update    
Faraz Fallahi committed
121
122
123
## Compression
*Compression and Archiving Libraries*

124
125
* [bzip2](http://www.bzip.org/) - A freely available, patent free, high-quality data compressor. [BSD]
* [doboz](https://bitbucket.org/attila_afra/doboz/overview) - Compression library with very fast decompression. [zlib]
Faraz Fallahi's avatar
minor    
Faraz Fallahi committed
126
127
* [PhysicsFS](https://icculus.org/physfs/) - 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](https://projects.kde.org/projects/frameworks/karchive) - A library for creating, reading, writing and manipulating file archives like zip and tar. It also provides transparent compression and decompression of data, using formats like gzip, via a subclass of QIODevice. [LGPL]
128
129
130
131
132
133
134
135
136
* [LZ4](https://code.google.com/p/lz4/) - Extremely Fast Compression algorithm. [BSD]
* [LZHAM](https://code.google.com/p/lzham/) - Lossless data compression library with a compression ratio similar to LZMA but with much faster decompression. [BSD]
* [LZMA](http://www.7-zip.org/sdk.html) - The default and general compression method of 7z format. [LGPL]
* [LZMAT](http://www.matcode.com/lzmat.htm) - An extremely fast real-time lossless data compression library. [GPL]
* [miniz](https://code.google.com/p/miniz/) - Single C source file Deflate/Inflate compression library with zlib-compatible API, ZIP archive reading/writing, PNG writing. [Unlicense]
* [Minizip](https://github.com/nmoinvaz/minizip) - Zlib with latest bug fixes that supports PKWARE disk spanning, AES encryption, and IO buffering. [zlib]
* [Snappy](https://code.google.com/p/snappy/) - A fast compressor/decompressor. [BSD]
* [ZLib](http://zlib.net/) - A very compact compression library for data streams. [zlib]
* [ZZIPlib](http://zziplib.sourceforge.net/) - Provides read access on ZIP-archives. [MPL/LGPL]
Faraz Fallahi's avatar
Faraz Fallahi committed
137

Faraz Fallahi's avatar
Faraz Fallahi committed
138
## Concurrency
Faraz Fallahi's avatar
nope.c    
Faraz Fallahi committed
139
*Concurrency and Multithreading*
Faraz Fallahi's avatar
Faraz Fallahi committed
140

questor/Inter's avatar
questor/Inter committed
141
142
* [Boost.Compute](https://github.com/kylelutz/compute) - A C++ GPU Computing Library for OpenCL. [Boost]
* [Bolt](https://github.com/HSA-Libraries/Bolt) - A C++ template library optimized for GPUs. [Apache2]
Faraz Fallahi's avatar
minor    
Faraz Fallahi committed
143
* [C++React](https://github.com/schlangster/cpp.react) - A reactive programming library for C++11. [Boost]
questor/Inter's avatar
questor/Inter committed
144
145
* [Intel TBB](https://www.threadingbuildingblocks.org/) - Intel® Threading Building Blocks. [GPLv2 with runtime exception]
* [Libclsph](https://github.com/libclsph/libclsph) - An OpenCL based GPU accelerated SPH fluid simulation library. [MIT]
Faraz Fallahi's avatar
Faraz Fallahi committed
146
* [OpenCL](https://www.khronos.org/opencl/) - The open standard for parallel programming of heterogeneous systems.
Faraz Fallahi's avatar
Faraz Fallahi committed
147
* [OpenMP](http://openmp.org/) - The OpenMP API.
questor/Inter's avatar
questor/Inter committed
148
149
150
* [Thrust](http://thrust.github.io/) - A parallel algorithms library which resembles the C++ Standard Template Library (STL). [Apache2]
* [HPX](https://github.com/STEllAR-GROUP/hpx/) - A general purpose C++ runtime system for parallel and distributed applications of any scale. [Boost]
* [VexCL](https://github.com/ddemidov/vexcl) - A C++ vector expression template library for OpenCL/CUDA. [MIT]
Faraz Fallahi's avatar
Faraz Fallahi committed
151
152
153

## Containers

questor/Inter's avatar
questor/Inter committed
154
* [C++ B-tree](https://code.google.com/p/cpp-btree/) - A template library that implements ordered in-memory containers based on a B-tree data structure. [Apache2]
155
* [Hashmaps](https://github.com/goossaert/hashmap) - Implementation of open addressing hash table algorithms in C++. [MIT]
Faraz Fallahi's avatar
Faraz Fallahi committed
156

Faraz Fallahi's avatar
Faraz Fallahi committed
157
## Cryptography
Faraz Fallahi's avatar
update    
Faraz Fallahi committed
158
*Cryptography and Encryption Libraries*
Faraz Fallahi's avatar
Faraz Fallahi committed
159

Faraz Fallahi's avatar
Faraz Fallahi committed
160
161
162
163
* [Crypto++](http://www.cryptopp.com/) - A free C++ class library of cryptographic schemes. [Boost]
* [LibTomCrypt](https://github.com/libtom/libtomcrypt) - A fairly comprehensive, modular and portable cryptographic toolkit. [WTFPL]
* [libsodium](https://github.com/jedisct1/libsodium) - P(ortable|ackageable) NaCl-based crypto library, opinionated and easy to use. [ISC]
* [OpenSSL](http://www.openssl.org/) - A robust, commercial-grade, full-featured, and Open Source cryptography library. [Apache]
Faraz Fallahi's avatar
Faraz Fallahi committed
164
* [Tiny AES128 in C](https://github.com/kokke/tiny-AES128-C) - A small and portable implementation of the AES128 ECB encryption algorithm implemented in C. [PublicDomain]
Faraz Fallahi's avatar
Faraz Fallahi committed
165

Faraz Fallahi's avatar
update    
Faraz Fallahi committed
166
167
168
## Database
*Database Libraries, SQL Servers, ODBC Drivers, and Tools*

questor/Inter's avatar
questor/Inter committed
169
170
* [hiberlite](https://github.com/paulftw/hiberlite) - C++ Object-relational mapping for sqlite3. [BSD]
* [Hiredis](https://github.com/redis/hiredis) - A minimalistic C client library for the Redis database. [BSD]
myd7349's avatar
myd7349 committed
171
* [LevelDB](https://github.com/google/leveldb) - A fast key-value storage library. [BSD]
questor/Inter's avatar
questor/Inter committed
172
* [LMDB](http://symas.com/mdb/) - Very fast embedded key/value store with full ACID semantics. [OpenLDAP]
myd7349's avatar
myd7349 committed
173
* [MySQL++](http://www.tangentsoft.net/mysql++/) - A C++ wrapper for MySQL's C API. [LGPL]
questor/Inter's avatar
questor/Inter committed
174
* [RocksDB](https://github.com/facebook/rocksdb) - Embedded key-value store for fast storage from facebook. [BSD]
SVAKSHA's avatar
SVAKSHA committed
175
* [SciDB](http://www.scidb.org) : The computational DBMS for data-obsessed organizations. [AGPLv3]
questor/Inter's avatar
questor/Inter committed
176
* [SQLite](http://www.sqlite.org/) - A completely embedded, full-featured relational database in a few 100k that you can include right into your project. [PublicDomain]
Faraz Fallahi's avatar
Faraz Fallahi committed
177

Faraz Fallahi's avatar
update    
Faraz Fallahi committed
178
179
180
## Debug
*Debugging Libraries, Memory Leak and Resource Leak Detection, Unit Testing*

questor/Inter's avatar
questor/Inter committed
181
182
183
184
185
* [Catch](https://github.com/philsquared/Catch) - A modern, C++-native, header-only, framework for unit-tests, TDD and BDD. [Boost]
* [CppUnit](http://sourceforge.net/projects/cppunit/) - C++ port of JUnit. [LGPLv2]
* [googletest](http://code.google.com/p/googletest/) - Google C++ Testing Framework. [BSD]
* [ig-debugheap](https://github.com/deplinenoise/ig-debugheap) - Multiplatform debug heap useful for tracking down memory errors. [BSD]
* [libtap](https://github.com/zorgnax/libtap) - Write tests in C. [GPLv2]
myd7349's avatar
myd7349 committed
186
* [MemTrack](http://www.almostinfinite.com/memtrack.html) - Tracking memory allocations in C++.
questor/Inter's avatar
questor/Inter committed
187
188
189
* [microprofile](https://bitbucket.org/jonasmeyer/microprofile/overview) - Profiler with web-view for multiple platforms. [PublicDomain]
* [minUnit](http://www.jera.com/techinfo/jtns/jtn002.html) - A minimal unit testing framework for C written using only 2 macros. [PublicDomain]
* [Remotery](https://github.com/Celtoys/Remotery) - Single C File Profiler with Web Viewer. [Apache2]
myd7349's avatar
myd7349 committed
190
* [UnitTest++](http://unittest-cpp.sourceforge.net/) - A lightweight unit testing framework for C++. [MIT/X Consortium license]
Faraz Fallahi's avatar
update    
Faraz Fallahi committed
191

Faraz Fallahi's avatar
Faraz Fallahi committed
192
193
## Game Engine

questor/Inter's avatar
questor/Inter committed
194
195
196
197
* [Cocos2d-x](http://www.cocos2d-x.org/) - A multi-platform framework for building 2d games, interactive books, demos and other graphical applications. [Commercial?]
* [Grit](http://gritengine.com/) - Community project to build a free game engine for implementing open world 3D games. [MIT]
* [Irrlicht](http://irrlicht.sourceforge.net/) - An open source high performance realtime 3D engine written in C++. [zlib]
* [Polycode](http://polycode.org/) - Open-Source Framework for creating games in C++ (with Lua bindings). [MIT]
Faraz Fallahi's avatar
Faraz Fallahi committed
198

Faraz Fallahi's avatar
Faraz Fallahi committed
199
200
201
## GUI
*Graphic User Interface*

myd7349's avatar
myd7349 committed
202
* [CEGUI](http://cegui.org.uk/) - Flexible, cross-platform GUI library. 
myd7349's avatar
myd7349 committed
203
* [FLTK](http://www.fltk.org/index.php) - Fast, light, cross-platform C++ GUI toolkit. [GPLv2]
questor/Inter's avatar
questor/Inter committed
204
205
206
207
* [GTK+](http://www.gtk.org/) - A multi-platform toolkit for creating graphical user interfaces. [LGPL]
* [gtkmm](http://www.gtkmm.org/en/) - The official C++ interface for the popular GUI library GTK+. [LGPL]
* [imgui](https://github.com/ocornut/imgui) - Immediate Mode Graphical User Interface with minimal dependencies. [MIT]
* [libRocket](http://librocket.com/) - libRocket is a C++ HTML/CSS game interface middleware. [MIT]
myd7349's avatar
myd7349 committed
208
* [MyGUI](http://mygui.info/) - Fast, flexible and simple GUI. [MIT]
questor/Inter's avatar
questor/Inter committed
209
* [Ncurses](http://invisible-island.net/ncurses/) - A terminal user interfaces. [MIT]
myd7349's avatar
myd7349 committed
210
* [QCustomPlot](http://qcustomplot.com/) - Qt plotting widget without further dependencies. [GPLv3]
questor/Inter's avatar
questor/Inter committed
211
212
213
* [Qwt](http://qwt.sourceforge.net/) - Qt Widgets for Technical Applications. [Own based on LGPL]
* [QwtPlot3D](http://qwtplot3d.sourceforge.net/) - A feature-rich Qt/OpenGL-based C++ programming library, providing essentially a bunch of 3D-widgets. [zlib]
* [OtterUI](https://github.com/Twolewis/OtterUI) - OtterUI is a User Interface development solution for embedded systems and interactive entertainment software. [MIT]
myd7349's avatar
myd7349 committed
214
* [PDCurses](http://pdcurses.sourceforge.net/) - Public domain curses library with both source code and pre-compiled library available. [PublicDomain]
questor/Inter's avatar
questor/Inter committed
215
* [wxWidgets](http://wxwidgets.org/) - A C++ library that lets developers create applications for Windows, Mac OS X, Linux and other platforms with a single code base. [Own LGPL]
Faraz Fallahi's avatar
Faraz Fallahi committed
216
217
218

## Graphics

questor/Inter's avatar
questor/Inter committed
219
220
221
* [bgfx](https://github.com/bkaradzic/bgfx) - A cross-platform rendering library. [BSD]
* [Cairo](http://www.cairographics.org/) - A 2D graphics library with support for multiple output devices. [LGPLv2 or Mozilla MPL]
* [Horde3D](https://github.com/horde3d/Horde3D) - A small 3D rendering and animation engine. [EPL]
Nicholas "LB" Braden's avatar
Nicholas "LB" Braden committed
222
* [magnum](https://github.com/mosra/magnum) - C++11 and OpenGL 2D/3D graphics engine. [MIT] [website](http://mosra.cz/blog/magnum.php)
questor/Inter's avatar
questor/Inter committed
223
* [Ogre 3D](http://www.ogre3d.org/) - A scene-oriented, real-time, flexible 3D rendering engine (as opposed to a game engine) written in C++. [MIT]
myd7349's avatar
myd7349 committed
224
* [OpenSceneGraph](http://www.openscenegraph.org/) - An open source high performance 3D graphics toolkit. [OSGPL]
questor/Inter's avatar
questor/Inter committed
225
226
227
* [Panda3D](http://www.panda3d.org/) - A framework for 3D rendering and game development for Python and C++. [BSD]
* [Skia](https://github.com/google/skia) - A complete 2D graphic library for drawing Text, Geometries, and Images. [bSD] [webpage](https://sites.google.com/site/skiadocs/home)
* [urho3d](https://github.com/urho3d/Urho3D) - Cross-platform rendering and game engine. [Many different, mostly MIT]
Faraz Fallahi's avatar
Faraz Fallahi committed
228

myd7349's avatar
myd7349 committed
229
230
## Image Processing

myd7349's avatar
myd7349 committed
231
* [Boost.GIL](http://www.boost.org/doc/libs/1_56_0/libs/gil/doc/index.html) - Generic Image Library.
myd7349's avatar
myd7349 committed
232
* [CImg](http://cimg.sourceforge.net/) - A small, open source, C++ toolkit for image processing. [Own LGPL or GPL]
myd7349's avatar
myd7349 committed
233
234
235
* [CxImage](http://www.codeproject.com/Articles/1300/CxImage) - A C++ class to load, save, display, transform BMP, JPEG, GIF, PNG, TIFF, MNG, ICO, PCX, TGA, WMF, WBMP, JBG, J2K images. [zlib]
* [FreeImage](http://freeimage.sourceforge.net/) - An open source library that supports popular graphics image formats and others as needed by today's multimedia applications. [GPLv2 or GPLv3] 
* [GDCM](http://gdcm.sourceforge.net/wiki/index.php/Main_Page) - Grassroots DICOM library.
myd7349's avatar
myd7349 committed
236
* [ITK](http://www.itk.org/) - An open-source, cross-platform system for image analysis. [Apache 2.0 from ITK 4.0]
myd7349's avatar
myd7349 committed
237
238
* [Magick++](http://www.imagemagick.org/script/api.php) - ImageMagick program interfaces for C++. [Apache 2.0]
* [MagickWnd](http://www.imagemagick.org/script/api.php) - ImageMagick program interfaces for C. [Apache 2.0]
myd7349's avatar
myd7349 committed
239
* [OpenCV](http://opencv.org/) - Open source computer vision. [BSD]
myd7349's avatar
myd7349 committed
240
* [tesseract-ocr](https://code.google.com/p/tesseract-ocr/) - An OCR engine. [Apache 2.0]
Faraz Fallahi's avatar
Faraz Fallahi committed
241
* [VIGRA](https://github.com/ukoethe/vigra) - a generic C++ computer vision library for image analysis. [MIT X11]
myd7349's avatar
myd7349 committed
242
* [VTK](http://www.vtk.org/) - Open-source, freely available software system for 3D computer graphics, image processing and visualization. [BSD]
myd7349's avatar
myd7349 committed
243

Faraz Fallahi's avatar
Faraz Fallahi committed
244
245
## Internationalization

questor/Inter's avatar
questor/Inter committed
246
* [gettext](http://www.gnu.org/software/gettext/) - GNU `gettext'. [GPLv2]
myd7349's avatar
myd7349 committed
247
* [IBM ICU](http://site.icu-project.org/) - A set of C/C++ and Java libraries providing Unicode and Globalization support. [ICU]
myd7349's avatar
myd7349 committed
248
* [libiconv](http://www.gnu.org/software/libiconv/) - An encoding conversion library between different character encodings. [GPL]
Faraz Fallahi's avatar
Faraz Fallahi committed
249

mattn's avatar
mattn committed
250
251
## JSON

questor/Inter's avatar
questor/Inter committed
252
253
254
255
256
* [frozen](https://github.com/cesanta/frozen) - :star: 20+ - JSON parser and generator for C/C++. [GPL & GPLv2]
* [Jansson](https://github.com/akheron/jansson) - :star: 650+ - C library for encoding, decoding and manipulating JSON data. [MIT]
* [jbson](https://github.com/chrismanning/jbson) - :star: 10 - jbson is a library for building & iterating BSON data, and JSON documents in C++14. [Boost]
* [JeayeSON](https://github.com/jeaye/jeayeson) - :star: 20+ - A very sane (header only) C++ JSON library. [BSD]
* [JSON++](https://github.com/hjiang/jsonxx) - :star: 130+ - A JSON parser in C++. [MIT]
Nicholas "LB" Braden's avatar
Nicholas "LB" Braden committed
257
* [json-parser](https://github.com/udp/json-parser) - Very low footprint JSON parser written in portable ANSI C. [BSD]
questor/Inter's avatar
questor/Inter committed
258
* [json11](https://github.com/dropbox/json11) - :star: 290+ - A tiny JSON library for C++11. [MIT]
Faraz Fallahi's avatar
Faraz Fallahi committed
259
* [jute](https://github.com/amir-s/jute) - Very simple C++ JSON Parser. [PublicDomain]
myd7349's avatar
myd7349 committed
260
* [libjson](https://github.com/vincenthz/libjson) - :star: 95 - A JSON parser and printer library in C. easy to integrate with any model. [LGPL]
Faraz Fallahi's avatar
Faraz Fallahi committed
261
* [libjson](http://sourceforge.net/projects/libjson/) - Lightweight JSON library. [?]
questor/Inter's avatar
questor/Inter committed
262
263
264
265
266
* [PicoJSON](https://github.com/kazuho/picojson) - :star: 170+ - A header-file-only, JSON parser serializer in C++. [BSD]
* [qt-json](https://github.com/gaudecker/qt-json) - :star: 120+ - A simple class for parsing JSON data into a QVariant hierarchy and vice versa. [GPLv3]
* [QJson](https://github.com/flavio/qjson) - :star: 70+ - QJson is a qt-based library that maps JSON data to QVariant objects. [LGPLv2]
* [RapidJSON](https://github.com/miloyip/rapidjson) - :star: 170+ - A fast JSON parser/generator for C++ with both SAX/DOM style API. [MIT]
* [YAJL](https://github.com/lloyd/yajl) - :star: 1,100+ - A fast streaming JSON parsing library in C. [ISC]
Faraz Fallahi's avatar
Faraz Fallahi committed
267

Faraz Fallahi's avatar
Faraz Fallahi committed
268
269
## Logging

questor/Inter's avatar
questor/Inter committed
270
271
* [Log4cpp](http://log4cpp.sourceforge.net/) - A library of C++ classes for flexible logging to files, syslog, IDSA and other destinations. [LGPL]
* [templog](http://www.templog.org/) - A very small and lightweight C++ library which you can use to add logging to your C++ applications. [Boost]
272
* [easyloggingpp](https://github.com/easylogging/easyloggingpp) - Single header only C++ logging library. [MIT] [website](http://easylogging.org/)
Alexey Nikiforov's avatar
Alexey Nikiforov committed
273
* [boost.Log](http://www.boost.org/doc/libs/1_56_0/libs/log/doc/html/index.html) - Boost.Log was designed to be very modular and extensible [Boost]
Faraz Fallahi's avatar
Faraz Fallahi committed
274

Faraz Fallahi's avatar
Faraz Fallahi committed
275
276
## Machine Learning

questor/Inter's avatar
questor/Inter committed
277
278
279
* [Caffe](https://github.com/BVLC/caffe) - A fast framework for neural networks. [BSD]
* [CCV](https://github.com/liuliu/ccv) - C-based/Cached/Core Computer Vision Library, A Modern Computer Vision Library. [BSD]
* [mlpack](http://www.mlpack.org/) - A scalable c++ machine learning library. [LGPLv3]
Faraz Fallahi's avatar
Faraz Fallahi committed
280
* [OpenCV](https://github.com/Itseez/opencv) - Open Source Computer Vision Library. [BSD] [website](http://opencv.org/)
questor/Inter's avatar
questor/Inter committed
281
282
283
* [Recommender](https://github.com/GHamrouni/Recommender) - C library for product recommendations/suggestions using collaborative filtering (CF). [BSD]
* [SHOGUN](https://github.com/shogun-toolbox/shogun) - The Shogun Machine Learning Toolbox. [GPLv3]
* [sofia-ml](https://code.google.com/p/sofia-ml/) - The suite of fast incremental algorithms for machine learning. [Apache2]
Faraz Fallahi's avatar
Faraz Fallahi committed
284

questor/inter's avatar
questor/inter committed
285
286
## Math

Faraz Fallahi's avatar
typo    
Faraz Fallahi committed
287
* [Armadillo](http://arma.sourceforge.net/) - A high quality C++ linear algebra library, aiming towards a good balance between speed and ease of use. The syntax (API) is deliberately similar to Matlab. [MPL2]
questor/Inter's avatar
questor/Inter committed
288
289
* [blaze](https://code.google.com/p/blaze-lib/) - high-performance C++ math library for dense and sparse arithmetic. [BSD]
* [ceres-solver](http://ceres-solver.org/) - C++ library for modeling and solving large complicated nonlinear least squares problems from google. [BSD]
290
* [CGal](http://www.cgal.org/) - Collection of efficient and reliable geometric algorithms. [LGPL&GPL]
questor/Inter's avatar
questor/Inter committed
291
* [cml](http://cmldev.net/) - free C++ math library for games and graphics. [Boost]
Faraz Fallahi's avatar
minor    
Faraz Fallahi committed
292
* [Eigen](http://eigen.tuxfamily.org/) - A high-level C++ library of template headers for linear algebra, matrix and vector operations, numerical solvers and related algorithms. [MPL2]
Faraz Fallahi's avatar
Faraz Fallahi committed
293
294
295

## Multimedia

296
* [GStreamer](http://gstreamer.freedesktop.org/) - A library for constructing graphs of media-handling components. [LGPL]
myd7349's avatar
myd7349 committed
297
* [LIVE555 Streaming Media](http://www.live555.com/liveMedia/) - Multimedia streaming library using open standard protocols (RTP/RTCP, RTSP, SIP). [LGPL]
298
* [libVLC](https://wiki.videolan.org/LibVLC) - libVLC (VLC SDK) media framework. [GPL]
Faraz Fallahi's avatar
minor    
Faraz Fallahi committed
299
* [QtAv](https://github.com/wang-bin/QtAV) - A multimedia playback framework based on Qt and FFmpeg to write a player easily. [LGPL] [website](http://wang-bin.github.io/QtAV/)
300
* [SDL](http://www.libsdl.org/) - Simple DirectMedia Layer. [zlib]
myd7349's avatar
myd7349 committed
301
* [SFML](http://www.sfml-dev.org/) - Simple and Fast Multimedia Library.[zlib]
Faraz Fallahi's avatar
Faraz Fallahi committed
302
303
304

## Networking

305
306
307
308
309
* [ACE](http://www.cs.wustl.edu/~schmidt/ACE.html) - An OO Network Programming Toolkit in C++. [?MIT?]
* [Boost.Asio](http://think-async.com/) - A cross-platform C++ library for network and low-level I/O programming. [Boost]
* [Casablanca](http://casablanca.codeplex.com/) - C++ REST SDK. [Apache2]
* [cpp-netlib](http://cpp-netlib.org/) - A collection of open-source libraries for high level network programming. [Boost]
* [Dyad.c](https://github.com/rxi/dyad) - Asynchronous networking for C. [MIT]
myd7349's avatar
myd7349 committed
310
* [libcurl](http://curl.haxx.se/libcurl/) - Multiprotocol file transfer library. [MIT/X derivate license]
311
312
313
314
315
316
317
318
319
* [Mongoose](https://github.com/cesanta/mongoose) - Extremely lightweight webserver. [GPLv2]
* [Muduo](https://github.com/chenshuo/muduo) - A C++ non-blocking network library for multi-threaded server in Linux. [BSD]
* [net_skeleton](https://github.com/cesanta/net_skeleton) - TCP client/server library for C/C++. [GPLv2]
* [nope.c](https://github.com/riolet/nope.c) - A C language-based ultra-light software platform for scalable server-side and networking applications. Think node.js for C programmers. [GPLv2]
* [Onion](https://github.com/davidmoreno/onion) - HTTP server library in C designed to be lightweight and easy to use. [Apache2/GPLv2]
* [POCO](http://pocoproject.org/) - C++ class libraries and frameworks for building network- and internet-based applications that run on desktop, server, mobile and embedded systems. [Boost]
* [Tufão](https://github.com/vinipsmaker/tufao) - An asynchronous web framework for C++ built on top of Qt. [LGPLv2]
* [WebSocket++](https://github.com/zaphoyd/websocketpp) - C++/Boost Asio based websocket client/server library. [BSD]
* [ZeroMQ](http://zeromq.org/) - High-speed, modular asynchronous communication library. [LGPL]
Faraz Fallahi's avatar
Faraz Fallahi committed
320

SiPlus's avatar
SiPlus committed
321
322
323
## Physics
*Dynamics simulation engines*

324
325
326
327
328
329
330
* [Box2D](https://code.google.com/p/box2d/) - A 2D physics engine for games. [BSD-like]
* [Bullet](https://github.com/bulletphysics/bullet3) - A 3D physics engine for games. [zlib] [website](http://bulletphysics.org)
* [Chipmunk](https://github.com/slembcke/Chipmunk2D) - A fast and lightweight 2D game physics library. [MIT] [website](https://chipmunk-physics.net/)
* [LiquidFun](https://github.com/google/liquidfun) - A 2D physics engine for games. [BSD-like]
* [ODE](http://www.ode.org/) - Open Dynamics Engine - An open source, high performance library for simulating rigid body dynamics. [BSD&LGPL]
* [ofxBox2d](https://github.com/vanderlin/ofxBox2d) - openFrameworks wrapper for Box2D. [BSD-like]
* [Simbody](https://github.com/simbody/simbody) - High-performance C++ multibody dynamics/physics library for simulating articulated biomechanical and mechanical systems like vehicles, robots, and the human skeleton. [Apache2]
SiPlus's avatar
SiPlus committed
331

myd7349's avatar
myd7349 committed
332
333
334
335
## Scientific Computing
* [FFTW](http://www.fftw.org/) - A C library for computing the DFT in one or more dimensions. [GPL]
* [GSL](http://www.gnu.org/software/gsl/) - GNU scientific library. [GPL]

Faraz Fallahi's avatar
Faraz Fallahi committed
336
337
## Scripting

338
339
340
341
342
343
* [ChaiScript](https://github.com/ChaiScript/ChaiScript/) - An easy to use embedded scripting language for C++. [BSD] [website](http://chaiscript.com/)
* [Lua](http://www.lua.org/) - A minimal and fast scripting engine for configuration files and basic application scripting. [MIT]
* [luacxx](https://github.com/dafrito/luacxx) - C++11 API for creating Lua bindings. [MIT]
* [SWIG](http://www.swig.org/) - a wrapper/interface Generator that let you link your c++ code to Javascript, Perl, PHP, Python, Tcl and Ruby. [GPL/Output not licensed]
* [V7](https://github.com/cesanta/v7) - An embedded JavaScript engine. [GPLv2]
* [V8](http://code.google.com/p/v8/) - A fast JavaScript engine by Google that can be embedded into any C++ application. [BSD]
Faraz Fallahi's avatar
Faraz Fallahi committed
344

Faraz Fallahi's avatar
Faraz Fallahi committed
345
346
## Serialization

347
348
349
* [Cap'n Proto](http://kentonv.github.io/capnproto/) - Fast data interchange format and capability-based RPC system. [MIT]
* [cereal](https://github.com/USCiLab/cereal) - A C++11 library for serialization. [BSD]
* [FlatBuffers](https://github.com/google/flatbuffers) -  A Memory efficient serialization library. [Apache2]
Faraz Fallahi's avatar
typo    
Faraz Fallahi committed
350
* [MessagePack](https://github.com/msgpack/msgpack-c) - Efficient binary serialization format "like JSON" for C/C++. [Apache2] [website](http://msgpack.org/)
351
* [protobuf](http://code.google.com/p/protobuf/) - Protocol Buffers - Google's data interchange format. [BSD]
Faraz Fallahi's avatar
Faraz Fallahi committed
352
* [protobuf-c](https://github.com/protobuf-c/protobuf-c) - Protocol Buffers implementation in C. [BSD]
questor/inter's avatar
questor/inter committed
353
* [SimpleBinaryEncoding](https://github.com/real-logic/simple-binary-encoding) - encoding and decoding application messages in binary format for low-latency applications. [Apache2]
354
* [Thrift](https://thrift.apache.org/) - Efficient cross-language IPC/RPC, works between C++, Java, Python, PHP, C#, and many more other languages. Originally developer by Twitter. [Apache2]
Faraz Fallahi's avatar
Faraz Fallahi committed
355

Faraz Fallahi's avatar
Codec    
Faraz Fallahi committed
356
357
## Video

358
359
* [libvpx](http://www.webmproject.org/code/) - VP8/VP9 Codec SDK. [BSD]
* [FFmpeg](https://www.ffmpeg.org/) - A complete, cross-platform solution to record, convert and stream audio and video. [LGPLv2/GPL2]
Faraz Fallahi's avatar
Faraz Fallahi committed
360
* [libde265](https://github.com/strukturag/libde265) - Open h.265 video codec implementation. [LGPL] [website](http://www.libde265.org/)
Faraz Fallahi's avatar
Faraz Fallahi committed
361
* [OpenH264](https://github.com/cisco/openh264) - Open Source H.264 Codec. [BSD] [website](http://www.openh264.org/)
362
* [Theora](http://www.theora.org/) - A free and open video compression format. [BSD]
Faraz Fallahi's avatar
Codec    
Faraz Fallahi committed
363

364
365
366
367
368
369
## Virtual Machines

* [CarpVM](https://github.com/tekknolagi/carp) - "interesting" VM in C. Let's see how this goes. [GPLv3]
* [MicroPython](https://github.com/micropython/micropython) - aims to put an implementation of Python 3.x on a microcontroller. [MIT]
* [TinyVM](https://github.com/jakogut/tinyvm) - A small, fast, lightweight virtual machine written in pure ANSI C. [MIT]

Faraz Fallahi's avatar
Faraz Fallahi committed
370
371
## Web Application Framework

372
* [Civetweb](https://github.com/bel2125/civetweb) - Provides easy to use, powerful, C/C++ embeddable web server with optional CGI, SSL and Lua support. [MIT]
373
374
375
376
* [CppCMS](http://cppcms.com/) - A Free High Performance Web Development Framework (not a CMS). [LGPLv3]
* [Crow](https://github.com/ipkn/crow) - Crow is C++ micro web framework (inspired by Python Flask). [BSD]
* [Kore](https://kore.io/) - ultra fast and flexible web server / framework for web applications developed in C. [ISC]
* [libOnion](http://www.coralbits.com/libonion/) - lightweight library to help you create webservers in C programming language. [LGPLv3]
Faraz Fallahi's avatar
minor    
Faraz Fallahi committed
377
* [QDjango](https://github.com/jlaine/qdjango/) - A web framework written in C++ and built on top of the Qt library. Where possible it tries to follow django's API, hence its name. [LGPL]
378
* [Wt](http://www.webtoolkit.eu/wt) - A C++ library for developing web applications. [GPL/Commercial]
Faraz Fallahi's avatar
Faraz Fallahi committed
379

Faraz Fallahi's avatar
XML    
Faraz Fallahi committed
380
## XML
Faraz Fallahi's avatar
Faraz Fallahi committed
381
*XML is crap. Really. There are no excuses. XML is nasty to parse for humans, and it's a disaster to parse even for computers. There's just no reason for that horrible crap to exist. - Linus Torvalds*
Faraz Fallahi's avatar
XML    
Faraz Fallahi committed
382

383
384
385
386
387
388
389
390
391
* [Expat](http://www.libexpat.org/) - An XML parser library written in C. [MIT]
* [Libxml2](http://xmlsoft.org/) - The XML C parser and toolkit of Gnome. [MIT]
* [libxml++](http://libxmlplusplus.sourceforge.net/) - An XML Parser for C++. [LGPLv2]
* [PugiXML](http://pugixml.org/) - A light-weight, simple and fast XML parser for C++ with XPath support. [MIT]
* [RapidXml](http://rapidxml.sourceforge.net/) - An attempt to create the fastest XML parser possible, while retaining useability, portability and reasonable W3C compatibility. [Boost]
* [TinyXML](http://sourceforge.net/projects/tinyxml/) - A simple, small, minimal, C++ XML parser that can be easily integrating into other programs. [zlib]
* [TinyXML2](https://github.com/leethomason/tinyxml2) - A simple, small, efficient, C++ XML parser that can be easily integrating into other programs. [zlib]
* [TinyXML++](https://code.google.com/p/ticpp/) - A completely new interface to TinyXML that uses MANY of the C++ strengths. Templates, exceptions, and much better error handling. [MIT]
* [Xerces-C++](http://xerces.apache.org/xerces-c/) - A validating XML parser written in a portable subset of C++. [Apache2]
Faraz Fallahi's avatar
XML    
Faraz Fallahi committed
392

Faraz Fallahi's avatar
Faraz Fallahi committed
393
394
## Miscellaneous
*Useful libraries or tools that don't fit in the categories above or maybe just not categorised yet*
Faraz Fallahi's avatar
Faraz Fallahi committed
395

396
397
398
399
400
401
402
403
404
* [C++ Format](https://github.com/cppformat/cppformat) - Small, safe and fast formatting library for C++. [BSD]
* [casacore](https://code.google.com/p/casacore/) - A set of c++ core libraries derived from aips++. [LGPL]
* [cxx-prettyprint](https://github.com/louisdx/cxx-prettyprint) - A pretty printing library for C++ containers. [Boost]
* [DynaPDF](http://www.dynaforms.com/) - An easy-to-use PDF generation library. [Commercial]
* [googlemock](http://code.google.com/p/googlemock/) - A library for writing and using C++ mock classes. [BSD]
* [HTTP Parser](https://github.com/joyent/http-parser) - A http request/response parser for C. [MIT]
* [libcpuid](https://github.com/anrieff/libcpuid) - A small C library for x86 CPU detection and feature extraction. [BSD]
* [libevil](https://github.com/avati/libevil) - The Evil License Manager. [GPLv3]
* [libusb](http://www.libusb.org/) - A universal USB library which allows for portable access to USB devices. [LGPLv2]
myd7349's avatar
myd7349 committed
405
* [PCRE](http://pcre.org/) - A regular expression C library inspired by the regular expression capabilities in Perl. [BSD]
406
* [Remote Call Framework](http://www.deltavsoft.com/) - Inter-process communication framework for C++. [GPLv2/Commercial]
myd7349's avatar
myd7349 committed
407
* [Scintilla](http://scintilla.org/) - A free source code editing component. [MIT]
408
409
410
411
412
413
414
415
416
417
* [Serial Communication Library](https://github.com/wjwwood/serial) - Cross-platform, Serial Port library written in C++. [MIT]
* [SDS](https://github.com/antirez/sds) - Simple Dynamic Strings library for C. [BSD]
* [SLDR](https://github.com/cesanta/sldr) - Super Light DNS Resolver. [GPLv2/Commercial]
* [SLRE](https://github.com/cesanta/slre) - Super Light Regular Expression library. [GPLv2/Commercial]
* [Stage](https://github.com/rtv/Stage) - Mobile robot simulator. [GPLv2]
* [VarTypes](https://code.google.com/p/vartypes/) - A feature-rich, object-oriented framework for managing variables in C++ / Qt4. [LGPL]
* [ZBar](http://zbar.sourceforge.net/) - A barcode scanner library, which allows to scan photos/images/video streams for barcodes and return their value. [LGPLv2]
* [CppVerbalExpressions](https://github.com/VerbalExpressions/CppVerbalExpressions) - C++ regular expressions made easy. [MIT]
* [QtVerbalExpressions](https://github.com/VerbalExpressions/QtVerbalExpressions) - This Qt lib is based off of the C++ VerbalExpressions library. [MIT]
* [PHP-CPP](https://github.com/CopernicaMarketingSoftware/PHP-CPP) - A library to build PHP extensions with C++. [Apache2] [website](http://www.php-cpp.com/)
Faraz Fallahi's avatar
Faraz Fallahi committed
418
* [Better String](http://bstring.sourceforge.net) - An alternative to the string library for C which is more functional and does not have buffer overflow overrun problems. Also includes a C++ wrapper. [BSD, GPLv2]
Faraz Fallahi's avatar
Faraz Fallahi committed
419

Faraz Fallahi's avatar
Faraz Fallahi committed
420
421
422
# Software
*Software for creating a development environment.*

Faraz Fallahi's avatar
Faraz Fallahi committed
423
## Compiler
Faraz Fallahi's avatar
Faraz Fallahi committed
424
425
*List of C/C++ compilers*

Faraz Fallahi's avatar
Faraz Fallahi committed
426
427
428
* [Clang](http://clang.llvm.org/) - Developed by Apple.
* [GCC](https://gcc.gnu.org/) - GNU Compiler Collection.
* [Intel C++ Compiler](https://software.intel.com/en-us/c-compilers) - Developed by Intel.
Faraz Fallahi's avatar
LLVM    
Faraz Fallahi committed
429
* [LLVM](http://llvm.org/) - Collection of modular and reusable compiler and toolchain technologies.
myd7349's avatar
myd7349 committed
430
431
432
* [Microsoft Visual C++](http://msdn.microsoft.com/en-us/vstudio/hh386302.aspx) - MSVC, developed by Microsoft.
* [Open WatCom](http://www.openwatcom.org/index.php/Main_Page) - Watcom C, C++, and Fortran cross compilers and tools. [Sybase Open Watcom Public License]
* [TCC](http://bellard.org/tcc/) - Tiny C Compiler. [LGPL]
Faraz Fallahi's avatar
Faraz Fallahi committed
433

Faraz Fallahi's avatar
Faraz Fallahi committed
434
435
436
437
438
## Online Compiler
*List of online C/C++ compilers*

* [codepad](http://codepad.org/) - An online compiler/interpreter, and a simple collaboration tool.
* [CodeTwist](http://codetwist.com/) - A simple online compiler/interpreter, where you can paste your C, C++ or Java code and execute it online and see results.
Nicholas "LB" Braden's avatar
Nicholas "LB" Braden committed
439
* [coliru](http://coliru.stacked-crooked.com/) - Online compiler/shell with support for various C++ compilers.
myd7349's avatar
myd7349 committed
440
* [Compiler Explorer](http://gcc.godbolt.org/) - An interactive compiler with assembly output available.
Faraz Fallahi's avatar
Faraz Fallahi committed
441
442
443
* [CompileOnline](http://www.compileonline.com/compile_cpp11_online.php) - Compile and Execute C++ online on Linux.
* [Ideone](http://ideone.com/) - An online compiler and debugging tool which allows you to compile source code and execute it online in more than 60 programming languages.

Faraz Fallahi's avatar
Faraz Fallahi committed
444
445
446
447
448
449
450
451
452
## Debugger
*List of C/C++ debuggers*

* [Comparison of debuggers](http://en.wikipedia.org/wiki/Comparison_of_debuggers) - A list of Debuggers from Wikipedia.
* [GDB](https://www.gnu.org/software/gdb) - GNU Debugger.
* [Valgrind](http://valgrind.org/) - A tool for memory debugging, memory leak detection, and profiling.
* [x64_dbg](http://x64dbg.com/) - An open-source x64/x32 debugger for windows.

## Integrated Development Environment
Faraz Fallahi's avatar
Faraz Fallahi committed
453
*List of C/C++ nominal IDEs.*
Faraz Fallahi's avatar
Faraz Fallahi committed
454

BackendButters's avatar
BackendButters committed
455
* [CLion](http://www.jetbrains.com/clion/) - Cross-platform C/C++ IDE from JetBrains. In pre-release/early access stadium.
Faraz Fallahi's avatar
Faraz Fallahi committed
456
* [Code::Blocks](http://www.codeblocks.org/) - A free C, C++ and Fortran IDE.
myd7349's avatar
myd7349 committed
457
* [CodeLite](http://codelite.org/) - Another cross-plaform, free C/C++ IDE. [GPLv2 with an exception for plugins]
Faraz Fallahi's avatar
Faraz Fallahi committed
458
459
* [Dev-C++](http://sourceforge.net/projects/orwelldevcpp/) - A portable C/C++/C++11 IDE.
* [Eclipse CDT](http://www.eclipse.org/cdt/) - A fully functional C and C++ IDE based on the Eclipse platform.
myd7349's avatar
myd7349 committed
460
* [Geany](http://www.geany.org/) - Small, fast, cross-platform IDE. [GPL]
myd7349's avatar
myd7349 committed
461
* [IBM VisualAge](http://www-03.ibm.com/software/products/en/visgen) - A family of computer integrated development environments from IBM.
Faraz Fallahi's avatar
Faraz Fallahi committed
462
463
464
* [KDevelop](https://www.kdevelop.org/) - A free, open source IDE.
* [Microsoft Visual Studio](http://www.visualstudio.com/) - An IDE from Microsoft.
* [NetBeans](https://netbeans.org/) - An IDE for developing primarily with Java, but also with other languages, in particular PHP, C/C++, and HTML5.
465
* [Qt Creator](http://qt-project.org/) - A cross-platform C++, JavaScript and QML IDE which is part of the SDK for Qt.
Faraz Fallahi's avatar
Faraz Fallahi committed
466
* [Xcode](https://developer.apple.com/xcode/) - Developed by Apple.
467
* [YouCompleteMe](https://valloric.github.io/YouCompleteMe/) - YouCompleteMe is a fast, as-you-type, fuzzy-search code completion engine for Vim.
Faraz Fallahi's avatar
Faraz Fallahi committed
468

questor/inter's avatar
questor/inter committed
469
470
471
472
473
474
## Buildsystem

* [FASTBuild](http://www.fastbuild.org/docs/home.html) - high performance, open-source build system supporting highly scalable compilation, caching and network distribution.
* [tundra](https://github.com/deplinenoise/tundra) - high-performance code build system designed to give the best possible incremental build times even for very large software projects.
* [tup](http://gittup.org/tup/) - file-based build system that monitors in the background for changed files.

Faraz Fallahi's avatar
Faraz Fallahi committed
475
476
477
478
## Static Code Analysis
*List of tools for improving quality and reducing defects by code analysis*

* [Cppcheck](http://cppcheck.sourceforge.net/) - A tool for static C/C++ code analysis. - [source](https://github.com/danmar/cppcheck)
479
* [include-what-you-use](https://code.google.com/p/include-what-you-use/) - A tool for use with clang to analyze includes in C and C++ source files.
Faraz Fallahi's avatar
Faraz Fallahi committed
480
481
482
* [OCLint](http://oclint.org/) - A static source code analysis tool to improve quality and reduce defects for C, C++ and Objective-C. - [source](https://github.com/oclint/oclint)
* [List of tools for static code analysis](http://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis#C.2FC.2B.2B) - A list of tools for static code analysis from Wikipedia.

Faraz Fallahi's avatar
Faraz Fallahi committed
483
# Resources
Faraz Fallahi's avatar
Faraz Fallahi committed
484
*Various resources, such as books, websites, and articles for improving your C++ development skills and knowledge.*
Faraz Fallahi's avatar
Faraz Fallahi committed
485

questor/inter's avatar
questor/inter committed
486
487
488
## Api-Design

* [Beautiful Native Libraries](http://lucumr.pocoo.org/2013/8/18/beautiful-native-libraries/)
489
* [Designing Qt-Style C++ APIs](http://doc.qt.digia.com/qq/qq13-apis.html)
questor/inter's avatar
questor/inter committed
490

Faraz Fallahi's avatar
Faraz Fallahi committed
491
492
## Articles
*Fantastic C/C++ related articles.*
Faraz Fallahi's avatar
Faraz Fallahi committed
493

Faraz Fallahi's avatar
Faraz Fallahi committed
494
* [CppCon 2014 Speaker Materials](https://github.com/CppCon/CppCon2014) - Speaker materials from CppCon 2014.
Faraz Fallahi's avatar
Faraz Fallahi committed
495
496
497
* [C++Now 2014 Presentations](https://github.com/boostcon/cppnow_presentations_2014) - Presentation materials presented at C++Now 2014.
* [C++Now 2013 Presentations](https://github.com/boostcon/cppnow_presentations_2013) - Presentation materials presented at C++Now 2013.
* [C++Now 2012 Presentations](https://github.com/boostcon/cppnow_presentations_2012) - Presentation materials presented at C++Now 2012.
Faraz Fallahi's avatar
Faraz Fallahi committed
498

Faraz Fallahi's avatar
Faraz Fallahi committed
499
500
## Books
*Fantastic C/C++ related books.*
Faraz Fallahi's avatar
Faraz Fallahi committed
501

Rodrigo Delduca's avatar
Rodrigo Delduca committed
502
* [The C++ Annotations](http://cppannotations.sourceforge.net/annotations/html/) - An in-depth guide on C++, intended for people with a good knowledge of C who want to make the transition to C++.
Faraz Fallahi's avatar
Faraz Fallahi committed
503
504
* [Free C Books](https://github.com/vhf/free-programming-books/blob/master/free-programming-books.md#c) - vhf/free-programming-books/C.
* [Free C++ Books](https://github.com/vhf/free-programming-books/blob/master/free-programming-books.md#c-1) - vhf/free-programming-books/C++.
Faraz Fallahi's avatar
Faraz Fallahi committed
505
* [The Definitive C++ Book Guide and List](http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list) - A collection of quality books and an approximate skill level.
Faraz Fallahi's avatar
Faraz Fallahi committed
506

Faraz Fallahi's avatar
Faraz Fallahi committed
507
508
509
510
511
512
## Coding Style

* [google-styleguide](http://code.google.com/p/google-styleguide/) - Style guides for Google-originated open-source projects.
* [Google C++ Style Guide](http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml)
* [GNU Coding Standard](http://www.gnu.org/prep/standards/standards.html)

Faraz Fallahi's avatar
Faraz Fallahi committed
513
## Videos
Faraz Fallahi's avatar
minor    
Faraz Fallahi committed
514
*Fantastic C/C++ related videos.*
Faraz Fallahi's avatar
Faraz Fallahi committed
515

Faraz Fallahi's avatar
videos    
Faraz Fallahi committed
516
517
518
519
520
521
522
523
* [Awesome C Programming Tutorials in Hi Def [HD]](https://www.youtube.com/playlist?list=PLCB9F975ECF01953C) - A collection of detailed C Programming Language Tutorials for Beginners and New Programmers.
* [C++](https://www.youtube.com/playlist?list=PL2F919ADECA5E39A6) - by VoidRealms.
* [C++ Qt Programming](https://www.youtube.com/playlist?list=PL2D1942A4688E9D63) - by VoidRealms.
* [C++ Programming Tutorials Playlist](https://www.youtube.com/playlist?list=PLAE85DE8440AA6B83) - thenewboston Official Buckys C++ Programming Tutorials Playlist.
* [C++ Programming Tutorials from thenewboston](https://www.youtube.com/playlist?list=PLF541C2C1F671AEF6) - These are all of thenewboston's C++ programming tutorials.
* [C++ GUI with Qt Playlist](https://www.youtube.com/playlist?list=PLD0D54219E5F2544D) - Official Playlist for thenewboston C++ GUI with Qt tutorials.
* [C Programming Tutorials](https://www.youtube.com/playlist?list=PL78280D6BE6F05D34) - All of thenewboston's C programming tutorials are right here.

Faraz Fallahi's avatar
minor    
Faraz Fallahi committed
524
525
## Websites
*Useful C/C++ related websites.*
Faraz Fallahi's avatar
Faraz Fallahi committed
526
527

* [C++ reference](http://cppreference.com/) - C++98, C++03, C++11, C++14 reference.
Faraz Fallahi's avatar
Faraz Fallahi committed
528
* [cplusplus.com](http://www.cplusplus.com/) - The C++ Resources Network.
Faraz Fallahi's avatar
isocpp    
Faraz Fallahi committed
529
* [Standard C++](http://isocpp.org/) - News, Status & Discussion about Standard C++.
Faraz Fallahi's avatar
Faraz Fallahi committed
530

Faraz Fallahi's avatar
Weblogs    
Faraz Fallahi committed
531
532
533
534
535
536
## Weblogs
*Useful C/C++ related weblogs.*

* [Sticky Bits](http://blog.feabhas.com/)
* [Paul Fultz II's Blog](http://pfultz2.com/blog/)

Faraz Fallahi's avatar
update    
Faraz Fallahi committed
537
## Other Awesome Projects
Faraz Fallahi's avatar
minor    
Faraz Fallahi committed
538
*Collection of useful codes, snippets, ...*
Faraz Fallahi's avatar
Faraz Fallahi committed
539

Faraz Fallahi's avatar
Faraz Fallahi committed
540
541
* [algorithms](https://github.com/xtaci/algorithms) - Algorithms & Data Structures in C++.
* [c-algorithms](https://github.com/fragglet/c-algorithms) - C algorithms library.
Faraz Fallahi's avatar
Faraz Fallahi committed
542
543
* [C/C++ Awesome Pack](https://github.com/junian/CppAwesomePack) - Contains some awesome c++ codes, packed in one.

Faraz Fallahi's avatar
Faraz Fallahi committed
544
545
546
# Other Awesome Lists
*Other amazingly awesome lists*

Faraz Fallahi's avatar
update    
Faraz Fallahi committed
547
548
549
550
551
552
553
554
* [lists](https://github.com/jnv/lists) - List of (awesome) lists curated on GitHub
* [awesome-awesomeness](https://github.com/bayandin/awesome-awesomeness) - A curated list of awesome awesomeness.
* [awesome](https://github.com/sindresorhus/awesome) - A curated list of awesome lists.
* [free-programming-books](https://github.com/vhf/free-programming-books) - List of Freely Available Programming Books
* [papers-we-love](https://github.com/papers-we-love/papers-we-love) - Papers from the computer science community to read and discuss.
* [awesome-php](https://github.com/ziadoz/awesome-php) - Awesome PHP libraries, resources and shiny things.
* [awesome-python](https://github.com/vinta/awesome-python) - Awesome Python frameworks, libraries and software.
* [awesome-sysadmin](https://github.com/kahun/awesome-sysadmin) - Awesome open source sysadmin resources
Faraz Fallahi's avatar
minor    
Faraz Fallahi committed
555
* [awesome-talks](https://github.com/JanVanRyswyck/awesome-talks) - A lot of screencasts, recordings of user group gatherings and conference talks.
Faraz Fallahi's avatar
update    
Faraz Fallahi committed
556
557
558
559
560
* [github-cheat-sheet](https://github.com/tiimgreen/github-cheat-sheet) - A list of cool features of Git and GitHub.
* [ToolsOfTheTrade](https://github.com/cjbarber/ToolsOfTheTrade) - Tools of The Trade, from Hacker News.
* [cheatsheets.org](http://www.cheatsheets.org/) - The largest collection of reference cards for developers.
* [cheat-sheets.org](http://www.cheat-sheets.org/) - All cheat sheets, round-ups, quick reference cards, quick reference guides and quick reference sheets in one page.
* [thefreecountry.com](http://www.thefreecountry.com/) - A collection of free programming resources, free webmasters' resources, free security resources and free utilities.
Faraz Fallahi's avatar
Faraz Fallahi committed
561

Faraz Fallahi's avatar
Faraz Fallahi committed
562
563
# Contributing
Please see [CONTRIBUTING](https://github.com/fffaraz/awesome-cpp/blob/master/CONTRIBUTING.md) for details.