README.md 10.9 KB
Newer Older
F
Faraz Fallahi 已提交
1 2
# Awesome C/C++
A curated list of awesome C/C++ frameworks, libraries, resources, and shiny things. Inspired by awesome-... stuff.
F
Faraz Fallahi 已提交
3

F
Faraz Fallahi 已提交
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
- [Awesome C++](#awesome-cpp)
	- [Standard Libraries](#standard-libraries)
	- [Frameworks](#frameworks)
	- [Audio](#audio)
	- [Artificial Intelligence](#artificial-intelligence)
	- [Concurrency](#concurrency)
	- [Containers](#containers)
	- [Cryptography](#cryptography)
	- [Database](#database)
	- [GUI](#gui)
	- [Graphics](#graphics)
	- [Imaging](#imaging)
	- [Internationalization](#internationalization)
	- [JSON](#json)
	- [Logging](#logging)
	- [Machine Learning](#machine-learning)
	- [Mocking](#mocking)
	- [Multimedia](#multimedia)
	- [Networking](#networking)
	- [Serialization](#serialization)
	- [Testing](#testing)
	- [Web Application Framework](#web-application-framework)
	- [XML](#xml)
F
Faraz Fallahi 已提交
27
	- [Etc.](#etc)
F
Faraz Fallahi 已提交
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
- [Compilers](#compilers)
- [Software](#software)
	- [Integrated Development Environments](#integrated-development-environments)
- [Resources](#resources)
	- [C++ Websites](#cpp-websites)
	- [C++ Books](#cpp-books)
	- [C++ Videos](#cpp-videos)
- [Contributing](#contributing)

## Standard Libraries

* [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).
* [C POSIX library](http://en.wikipedia.org/wiki/C_POSIX_library) - A specification of a C standard library for POSIX systems..

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

* [Apache C++ Standard Library](http://stdcxx.apache.org/) - A collection of algorithms, containers, iterators, and other fundamental components.
* [ASL](http://stlab.adobe.com/) - Adobe Source Libraries provides peer-reviewed and portable C++ source libraries.
* [Boost](http://www.boost.org/) - A large collection of generic C++ libraries.
* [BDE](https://github.com/bloomberg/bde) - The BDE Development Environment from Bloomberg L.P.
* [Cinder](http://libcinder.org/) - A community-developed, free and open source library for professional-quality creative coding in C++.
* [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.
* [Dlib](http://dlib.net/) - A general purpose cross-platform C++ library designed using contract programming and modern C++ techniques.
* [ffead-cpp](https://github.com/sumeetchhetri/ffead-cpp) - Framework for Enterprise Application Development.
* [Folly](https://github.com/facebook/folly) - An open-source C++ library developed and used at Facebook.
* [JUCE](http://www.juce.com/) - An all-encompassing C++ class library for developing cross-platform software..
* [LibSourcey](https://github.com/sourcey/libsourcey) - C++11 evented IO for real-time video streaming and high performance networking applications.
* [LibU](https://github.com/koanlogic/libu) - A multiplatform utility library written in C.
* [Loki](http://loki-lib.sourceforge.net/) - A C++ library of designs, containing flexible implementations of common design patterns and idioms.
* [MiLi](https://code.google.com/p/mili/) - Minimal headers-only C++ Library.
* [openFrameworks](http://www.openframeworks.cc/) - An open source C++ toolkit for creative coding.
* [Qt](http://qt-project.org/) - A cross-platform application and UI framework.
* [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++.
* [STXXL](http://stxxl.sourceforge.net/) - Standard Template Library for Extra Large Data Sets.
* [Ultimate++](http://www.ultimatepp.org/) - A C++ cross-platform rapid application development framework.
* [Windows Template Library](http://sourceforge.net/projects/wtl/) - A C++ library for developing Windows applications and UI components.
* [Yomm11](https://github.com/jll63/yomm11) - Open multi-methods for C++11.

##Artificial Intelligence

* [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.
* [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.

## Concurrency

* [Intel TBB](https://www.threadingbuildingblocks.org/) - Intel® Threading Building Blocks.
* [OpenMP](http://openmp.org/) - The OpenMP API.
* [Thrust](http://thrust.github.io/) - A parallel algorithms library which resembles the C++ Standard Template Library (STL).
* [HPX](https://github.com/STEllAR-GROUP/hpx/) - A general purpose C++ runtime system for parallel and distributed applications of any scale.

## Containers

* [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.

## GUI
*Graphic User Interface*

* [GTK+](http://www.gtk.org/) - A multi-platform toolkit for creating graphical user interfaces.
* [gtkmm](http://www.gtkmm.org/en/) - The official C++ interface for the popular GUI library GTK+.
* [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.
* [Qwt](http://qwt.sourceforge.net/) - Qt Widgets for Technical Applications.
* [QwtPlot3D](http://qwtplot3d.sourceforge.net/) - A feature-rich Qt/OpenGL-based C++ programming library, providing essentially a bunch of 3D-widgets.

## Graphics

* [Ogre 3D](http://www.ogre3d.org/) - One of the most popular open-source graphics rendering engines.

## Internationalization

* [IBM ICU](http://site.icu-project.org/) - A set of C/C++ and Java libraries providing Unicode and Globalization support.
* [gettext](http://www.gnu.org/software/gettext/) - GNU `gettext'.

M
mattn 已提交
102 103
## JSON

F
Faraz Fallahi 已提交
104
* [frozen](https://github.com/cesanta/frozen) - JSON parser and generator for C/C++.
M
mattn 已提交
105
* [picojson](https://github.com/kazuho/picojson) - A header-file-only, JSON parser serializer in C++.
F
Faraz Fallahi 已提交
106 107 108

## Machine Learning

F
Faraz Fallahi 已提交
109 110 111 112 113 114 115
* [OpenCV](http://opencv.org/) - Open Computer Vision.
* [Recommender](https://github.com/GHamrouni/Recommender) - A C library for product recommendations/suggestions using collaborative filtering (CF).
* [CCV](https://github.com/liuliu/ccv) - C-based/Cached/Core Computer Vision Library, A Modern Computer Vision Library.
* [mlpack](http://www.mlpack.org/) - A scalable c++ machine learning library.
* [sofia-ml](https://code.google.com/p/sofia-ml/) - The suite of fast incremental algorithms for machine learning.
* [SHOGUN](https://github.com/shogun-toolbox/shogun) - The Shogun Machine Learning Toolbox.
* [Caffe](https://github.com/BVLC/caffe) - A fast framework for neural networks..
F
Faraz Fallahi 已提交
116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131

## Mocking

* [googlemock](http://code.google.com/p/googlemock/) - A library for writing and using C++ mock classes.

## Multimedia

* [SFML](http://www.sfml-dev.org/index.php) - Simple and Fast Multimedia Library.
* [SDL](http://www.libsdl.org/) - Simple DirectMedia Layer.

## Networking

* [ACE](http://www.cs.wustl.edu/~schmidt/ACE.html) - An OO Network Programming Toolkit in C++.
* [Asio](http://think-async.com/) - A cross-platform C++ library for network and low-level I/O programming.
* [Casablanca](http://casablanca.codeplex.com/) - C++ REST SDK.
* [cpp-netlib](http://cpp-netlib.org/) - A collection of open-source libraries for high level network programming.
F
Faraz Fallahi 已提交
132
* [net_skeleton](https://github.com/cesanta/net_skeleton) - TCP client/server library for C/C++.
F
Faraz Fallahi 已提交
133 134 135 136
* [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.

## Serialization

F
Faraz Fallahi 已提交
137
* [cereal](https://github.com/USCiLab/cereal) - A C++11 library for serialization.
F
Faraz Fallahi 已提交
138 139 140 141 142 143 144 145 146 147
* [protobuf](http://code.google.com/p/protobuf/) - Protocol Buffers - Google's data interchange format.

## Testing

* [CppUnit](http://sourceforge.net/projects/cppunit/) - C++ port of JUnit.
* [googletest](http://code.google.com/p/googletest/) - Google C++ Testing Framework.

## Web Application Framework

* [CppCMS](http://cppcms.com/) - A Free High Performance Web Development Framework (not a CMS).
F
Crow  
Faraz Fallahi 已提交
148
* [Crow](https://github.com/ipkn/crow) - Crow is C++ micro web framework (inspired by Python Flask).
F
Faraz Fallahi 已提交
149 150
* [Wt](http://www.webtoolkit.eu/wt) - A C++ library for developing web applications.

F
Faraz Fallahi 已提交
151 152 153 154 155
## Etc.

* [SLDR](https://github.com/cesanta/sldr) - Super Light DNS Resolver.
* [SLRE](https://github.com/cesanta/slre) - Super Light Regular Expression library.

F
Faraz Fallahi 已提交
156 157 158
# Compilers
*List of C/C++ compilers*

F
Faraz Fallahi 已提交
159 160 161 162
* [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.
* [Microsoft Visual C++](http://msdn.microsoft.com/en-us/vstudio/hh386302.aspx) - MSVC, developed by Microsoft.
F
Faraz Fallahi 已提交
163 164 165 166 167 168 169

# Software
*Software for creating a development environment.*

## Integrated Development Environments
*nominal IDEs.*

F
Faraz Fallahi 已提交
170 171 172 173 174 175 176 177
* [Code::Blocks](http://www.codeblocks.org/) - A free C, C++ and Fortran IDE.
* [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.
* [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.
* [Qt Creator](http://qt-project.org/) - A cross-platform C++, JavaScript and QML IDE which is part of the SDK for the Qt.
* [Xcode](https://developer.apple.com/xcode/) - Developed by Apple.
F
Faraz Fallahi 已提交
178 179 180 181 182 183 184 185 186 187 188 189

# Resources
*Various resources, such as books, websites and articles, for improving your C++ development skills and knowledge.*

## C++ Websites
*Useful C++ related websites.*

* [C++ reference](http://cppreference.com/) - C++98, C++03, C++11, C++14 reference.

## C++ Books
*Fantastic C++ related books.*

F
Faraz Fallahi 已提交
190 191 192 193
## C++ Articles
*Fantastic C++ related articles.*

* [C++Now 2014 Presentations](https://github.com/boostcon/cppnow_presentations_2014) - Presentation materials presented at C++Now 2014.
F
Faraz Fallahi 已提交
194 195
* [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.
F
Faraz Fallahi 已提交
196

F
Faraz Fallahi 已提交
197 198 199
## C++ Videos
*Fantastic C++ related videos.*

F
Faraz Fallahi 已提交
200 201 202 203 204
## Awesome Things
*Collection of useful codes*

* [C/C++ Awesome Pack](https://github.com/junian/CppAwesomePack) - Contains some awesome c++ codes, packed in one.

F
Faraz Fallahi 已提交
205 206
# Contributing
Please see [CONTRIBUTING](https://github.com/fffaraz/awesome-cpp/blob/master/CONTRIBUTING.md) for details.