1
0
Fork 0
mirror of https://github.com/fffaraz/awesome-cpp.git synced 2024-11-13 11:16:54 -05:00
cpp/README.md

466 lines
35 KiB
Markdown
Raw Normal View History

2014-07-17 06:52:03 -04:00
# Awesome C/C++
A curated list of awesome C/C++ frameworks, libraries, resources, and shiny things. Inspired by awesome-... stuff.
2014-07-17 04:51:11 -04:00
2014-07-17 08:52:58 -04:00
- [Awesome C/C++](#awesome-cpp)
2014-07-17 06:52:03 -04:00
- [Standard Libraries](#standard-libraries)
- [Frameworks](#frameworks)
- [Artificial Intelligence](#artificial-intelligence)
2014-07-17 16:52:01 -04:00
- [Asynchronous Event Loop](#asynchronous-event-loop)
2014-07-17 13:14:50 -04:00
- [Audio](#audio)
2014-07-25 10:49:39 -04:00
- [Compression](#compression)
2014-07-17 06:52:03 -04:00
- [Concurrency](#concurrency)
- [Containers](#containers)
- [Cryptography](#cryptography)
- [Database](#database)
2014-07-17 13:48:46 -04:00
- [Debug](#debug)
2014-07-23 06:52:18 -04:00
- [Game Engine](#game-engine)
2014-07-17 06:52:03 -04:00
- [GUI](#gui)
- [Graphics](#graphics)
- [Imaging](#imaging)
- [Internationalization](#internationalization)
- [JSON](#json)
- [Logging](#logging)
- [Machine Learning](#machine-learning)
2014-08-12 03:33:25 -04:00
- [Math](#math)
2014-07-17 06:52:03 -04:00
- [Mocking](#mocking)
- [Multimedia](#multimedia)
- [Networking](#networking)
2014-07-22 13:23:59 -04:00
- [Physics](#physics)
2014-07-23 06:52:18 -04:00
- [Scripting](#scripting)
2014-07-17 06:52:03 -04:00
- [Serialization](#serialization)
- [Web Application Framework](#web-application-framework)
- [XML](#xml)
2014-07-26 08:54:02 -04:00
- [Miscellaneous](#miscellaneous)
2014-07-17 06:52:03 -04:00
- [Software](#software)
2014-07-30 13:35:46 -04:00
- [Compiler](#compiler)
2014-07-30 18:11:08 -04:00
- [Online Compiler](#online-compiler)
2014-07-30 13:35:46 -04:00
- [Debugger](#debugger)
- [Integrated Development Environment](#integrated-development-environment)
2014-08-12 04:57:56 -04:00
- [Buildsystem](#buildsystem)
2014-07-29 06:42:34 -04:00
- [Static Code Analysis](#static-code-analysis)
2014-07-17 06:52:03 -04:00
- [Resources](#resources)
2014-07-23 07:01:42 -04:00
- [Articles](#articles)
- [Books](#books)
2014-08-04 07:17:11 -04:00
- [Coding Style](#coding-style)
2014-07-23 07:01:42 -04:00
- [Videos](#videos)
- [Websites](#websites)
2014-07-17 11:10:45 -04:00
- [Other Awesome Lists](#other-awesome-lists)
2014-07-17 06:52:03 -04:00
- [Contributing](#contributing)
## Standard Libraries
2014-07-26 08:54:02 -04:00
*C++ Standard Library - including STL Containers, STL Aglorithm, STL Functional, etc.*
2014-07-17 06:52:03 -04:00
* [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).
2014-07-17 09:34:23 -04:00
* [C POSIX library](http://en.wikipedia.org/wiki/C_POSIX_library) - A specification of a C standard library for POSIX systems.
2014-08-14 11:30:38 -04:00
* [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/)
2014-07-17 06:52:03 -04:00
## Frameworks
*C++ generic frameworks and libraries.*
* [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]
* [JUCE](http://www.juce.com/) - An all-encompassing C++ class library for developing cross-platform software. [Core-Module:ISC/Rest: GPL2/GPL3/Commercial]
* [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]
2014-08-14 12:48:11 -04:00
* [root](http://root.cern.ch) - The ROOT system provides 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](http://cern.ch). [LGPL]
* [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]
2014-07-17 06:52:03 -04:00
2014-07-17 13:48:46 -04:00
## Artificial Intelligence
2014-07-17 06:52:03 -04:00
2014-08-14 05:54:00 -04:00
* [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]
2014-07-17 06:52:03 -04:00
2014-07-17 16:52:01 -04:00
## Asynchronous Event Loop
2014-08-14 05:54:00 -04:00
* [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]
2014-07-17 16:52:01 -04:00
2014-07-17 13:48:46 -04:00
## Audio
*Audio, Sound, Music, Digitized Voice Libraries*
2014-07-17 13:14:50 -04:00
2014-08-14 12:04:18 -04:00
* [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]
* [Tonic](https://github.com/TonicAudio/Tonic) - Easy and efficient audio synthesis in C++. [Unlicense]
2014-07-17 13:14:50 -04:00
2014-07-17 13:48:46 -04:00
## Compression
*Compression and Archiving Libraries*
2014-08-14 12:04:18 -04:00
* [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]
2014-08-14 12:48:11 -04:00
* [PhysicsFS](https://icculus.org/physfs/) - PhysicsFS is 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) - KArchive is a library for creating, reading, writing and manipulating file archives. It provides easy to use classes for manipulation of archive file formats like zip and tar. It also provides transparent compression and decompression of data, using formats like gzip, via a subclass of QIODevice. [LGPL]
2014-08-14 12:04:18 -04:00
* [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]
2014-07-23 06:52:18 -04:00
2014-07-17 06:52:03 -04:00
## Concurrency
2014-07-29 06:12:08 -04:00
*Concurrency and Multithreading*
2014-07-17 06:52:03 -04:00
2014-07-17 13:14:50 -04:00
* [Boost.Compute](https://github.com/kylelutz/compute) - A C++ GPU Computing Library for OpenCL.
* [Bolt](https://github.com/HSA-Libraries/Bolt) - A C++ template library optimized for GPUs.
2014-07-17 06:52:03 -04:00
* [Intel TBB](https://www.threadingbuildingblocks.org/) - Intel® Threading Building Blocks.
2014-08-12 14:44:25 -04:00
* [Libclsph](https://github.com/libclsph/libclsph) - An OpenCL based GPU accelerated SPH fluid simulation library.
2014-07-17 13:14:50 -04:00
* [OpenCL](https://www.khronos.org/opencl/) - The open standard for parallel programming of heterogeneous systems.
2014-07-17 06:52:03 -04:00
* [OpenMP](http://openmp.org/) - The OpenMP API.
2014-08-14 12:48:11 -04:00
* [React](http://schlangster.github.io/cpp.react/) - C++React is reactive programming library for C++11. Generally speaking, it provides abstractions to handle change propagation and data processing for a push-based event model. A more practical description is that it enables coordinated, multi-layered - and potentially parallel [boost]
2014-07-17 06:52:03 -04:00
* [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.
2014-07-17 13:14:50 -04:00
* [VexCL](https://github.com/ddemidov/vexcl) - A C++ vector expression template library for OpenCL/CUDA.
2014-07-17 06:52:03 -04:00
## 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.
2014-07-17 10:21:08 -04:00
## Cryptography
2014-07-17 13:48:46 -04:00
*Cryptography and Encryption Libraries*
2014-07-17 10:21:08 -04:00
2014-08-14 11:38:27 -04:00
* [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]
2014-07-17 10:21:08 -04:00
2014-07-17 13:48:46 -04:00
## Database
*Database Libraries, SQL Servers, ODBC Drivers, and Tools*
2014-07-23 06:52:18 -04:00
* [hiberlite](https://github.com/paulftw/hiberlite) - C++ Object-relational mapping for sqlite3.
2014-07-29 13:39:38 -04:00
* [Hiredis](https://github.com/redis/hiredis) - A minimalistic C client library for the Redis database.
2014-07-25 00:22:16 -04:00
* [LMDB](http://symas.com/mdb/) - Very fast embedded key/value store with full ACID semantics.
2014-08-12 06:01:28 -04:00
* [RocksDB](https://github.com/facebook/rocksdb) - Embedded key-value store for fast storage from facebook.
2014-07-23 06:52:18 -04:00
* [SQLite](http://www.sqlite.org/) - A completely embedded, full-featured relational database in a few 100k that you can include right into your project.
2014-07-17 13:48:46 -04:00
## Debug
*Debugging Libraries, Memory Leak and Resource Leak Detection, Unit Testing*
2014-08-05 11:20:41 -04:00
* [Catch](https://github.com/philsquared/Catch) - A modern, C++-native, header-only, framework for unit-tests, TDD and BDD.
2014-07-17 13:48:46 -04:00
* [CppUnit](http://sourceforge.net/projects/cppunit/) - C++ port of JUnit.
* [googletest](http://code.google.com/p/googletest/) - Google C++ Testing Framework.
2014-08-12 05:02:49 -04:00
* [ig-debugheap](https://github.com/deplinenoise/ig-debugheap) - Multiplatform debug heap useful for tracking down memory errors.
2014-08-12 17:02:18 -04:00
* [libtap](https://github.com/zorgnax/libtap) - Write tests in C.
* [microprofile](https://bitbucket.org/jonasmeyer/microprofile/overview) - Profiler with web-view for multiple platforms.
* [Remotery](https://github.com/Celtoys/Remotery) - Single C File Profiler with Web Viewer.
2014-07-17 13:48:46 -04:00
2014-07-23 06:52:18 -04:00
## Game Engine
2014-07-23 12:53:42 -04:00
* [Cocos2d-x](http://www.cocos2d-x.org/) - A multi-platform framework for building 2d games, interactive books, demos and other graphical applications.
2014-08-12 05:04:11 -04:00
* [Grit](http://gritengine.com/) - Community project to build a free game engine for implementing open world 3D games.
2014-07-24 10:11:29 -04:00
* [Irrlicht](http://irrlicht.sourceforge.net/) - An open source high performance realtime 3D engine written in C++.
2014-08-14 11:30:38 -04:00
* [Polycode](http://polycode.org/) - Open-Source Framework for creating games in C++ (with Lua bindings).
2014-07-23 06:52:18 -04:00
2014-07-17 06:52:03 -04:00
## 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+.
2014-08-12 03:42:22 -04:00
* [imgui](https://github.com/ocornut/imgui) - Immediate Mode Graphical User Interface with minimal dependencies.
* [libRocket](http://librocket.com/) - libRocket is a C++ HTML/CSS game interface middleware.
2014-07-23 06:52:18 -04:00
* [Ncurses](http://invisible-island.net/ncurses/) - A terminal user interfaces.
2014-07-17 06:52:03 -04:00
* [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.
2014-07-28 16:17:24 -04:00
* [OtterUI](https://github.com/Twolewis/OtterUI) - OtterUI is a User Interface development solution for embedded systems and interactive entertainment software.
* [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.
2014-07-17 06:52:03 -04:00
## Graphics
2014-07-28 16:00:59 -04:00
* [bgfx](https://github.com/bkaradzic/bgfx) - A cross-platform rendering library.
2014-07-23 12:53:42 -04:00
* [Cairo](http://www.cairographics.org/) - A 2D graphics library with support for multiple output devices.
* [CImg](http://cimg.sourceforge.net/) - A small, open source, C++ toolkit for image processing.
2014-07-28 08:09:59 -04:00
* [Horde3D](https://github.com/horde3d/Horde3D) - A small 3D rendering and animation engine.
2014-07-23 06:52:18 -04:00
* [Ogre 3D](http://www.ogre3d.org/) - A scene-oriented, real-time, flexible 3D rendering engine (as opposed to a game engine) written in C++.
* [Panda3D](http://www.panda3d.org/) - A framework for 3D rendering and game development for Python and C++ .
2014-08-14 11:30:38 -04:00
* [Skia](https://github.com/google/skia) - A complete 2D graphic library for drawing Text, Geometries, and Images. [webpage](https://sites.google.com/site/skiadocs/home)
2014-08-12 05:00:40 -04:00
* [urho3d](https://github.com/urho3d/Urho3D) - Cross-platform rendering and game engine.
2014-07-17 06:52:03 -04:00
## 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'.
2014-07-17 07:38:56 -04:00
## JSON
2014-07-26 14:06:58 -04:00
* [frozen](https://github.com/cesanta/frozen) - :star: 20+ - JSON parser and generator for C/C++.
2014-07-26 09:26:58 -04:00
* [Jansson](https://github.com/akheron/jansson) - :star: 650+ - C library for encoding, decoding and manipulating JSON data.
2014-07-26 14:06:58 -04:00
* [jbson](https://github.com/chrismanning/jbson) - :star: <10 - jbson is a library for building & iterating BSON data, and JSON documents in C++14.
* [JeayeSON](https://github.com/jeaye/jeayeson) - :star: 10+ - A very sane (header only) C++ JSON library.
2014-07-26 09:26:58 -04:00
* [JSON++](https://github.com/hjiang/jsonxx) - :star: 130+ - A JSON parser in C++.
* [json11](https://github.com/dropbox/json11) - :star: 290+ - A tiny JSON library for C++11.
* [PicoJSON](https://github.com/kazuho/picojson) - :star: 170+ - A header-file-only, JSON parser serializer in C++.
* [qt-json](https://github.com/gaudecker/qt-json) - :star: 120+ - A simple class for parsing JSON data into a QVariant hierarchy and vice versa.
* [RapidJSON](https://github.com/miloyip/rapidjson) - :star: 170+ - A fast JSON parser/generator for C++ with both SAX/DOM style API.
* [YAJL](https://github.com/lloyd/yajl) - :star: 1,100+ - A fast streaming JSON parsing library in C.
2014-07-17 06:52:03 -04:00
2014-07-23 12:53:42 -04:00
## Logging
* [Log4cpp](http://log4cpp.sourceforge.net/) - A library of C++ classes for flexible logging to files, syslog, IDSA and other destinations.
* [templog](http://www.templog.org/) - A very small and lightweight C++ library which you can use to add logging to your C++ applications.
2014-07-17 06:52:03 -04:00
## Machine Learning
* [Caffe](https://github.com/BVLC/caffe) - A fast framework for neural networks.
2014-07-17 08:23:44 -04:00
* [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.
2014-08-14 11:38:27 -04:00
* [OpenCV](https://github.com/Itseez/opencv) - Open Source Computer Vision Library. [BSD] [website](http://opencv.org/)
* [Recommender](https://github.com/GHamrouni/Recommender) - C library for product recommendations/suggestions using collaborative filtering (CF).
2014-07-17 08:23:44 -04:00
* [SHOGUN](https://github.com/shogun-toolbox/shogun) - The Shogun Machine Learning Toolbox.
* [sofia-ml](https://code.google.com/p/sofia-ml/) - The suite of fast incremental algorithms for machine learning.
2014-07-17 06:52:03 -04:00
2014-08-12 03:33:25 -04:00
## Math
2014-08-12 04:19:54 -04:00
* [blaze](https://code.google.com/p/blaze-lib/) - high-performance C++ math library for dense and sparse arithmetic.
* [ceres-solver](http://ceres-solver.org/) - C++ library for modeling and solving large complicated nonlinear least squares problems from google.
2014-08-12 03:42:22 -04:00
* [cml](http://cmldev.net/) - free C++ math library for games and graphics.
2014-08-14 11:53:04 -04:00
* [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]
2014-08-12 03:33:25 -04:00
2014-07-17 06:52:03 -04:00
## Mocking
* [googlemock](http://code.google.com/p/googlemock/) - A library for writing and using C++ mock classes.
## Multimedia
* [GStreamer](http://gstreamer.freedesktop.org/) - A library for constructing graphs of media-handling components.
2014-07-24 11:01:34 -04:00
* [libVLC](https://wiki.videolan.org/LibVLC) - libVLC (VLC SDK) media framework.
2014-08-14 12:48:11 -04:00
* [QtAv](http://wang-bin.github.io/QtAV/) - A multimedia playback framework based on Qt and FFmpeg. It helps you to write a player easily
2014-08-14 11:53:04 -04:00
* [SFML](http://www.sfml-dev.org/) - Simple and Fast Multimedia Library.
2014-07-17 06:52:03 -04:00
* [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++.
* [Boost.Asio](http://think-async.com/) - A cross-platform C++ library for network and low-level I/O programming.
2014-07-17 06:52:03 -04:00
* [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.
2014-07-17 13:14:50 -04:00
* [Muduo](https://github.com/chenshuo/muduo) - A C++ non-blocking network library for multi-threaded server in Linux.
2014-07-17 08:23:44 -04:00
* [net_skeleton](https://github.com/cesanta/net_skeleton) - TCP client/server library for C/C++.
2014-07-29 06:12:08 -04:00
* [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.
2014-07-17 13:14:50 -04:00
* [Onion](https://github.com/davidmoreno/onion) - HTTP server library in C designed to be lightweight and easy to use.
2014-07-17 06:52:03 -04:00
* [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.
2014-07-25 11:04:13 -04:00
* [Tufão](https://github.com/vinipsmaker/tufao) - An asynchronous web framework for C++ built on top of Qt.
2014-07-17 13:14:50 -04:00
* [WebSocket++](https://github.com/zaphoyd/websocketpp) - C++/Boost Asio based websocket client/server library.
2014-07-25 00:19:58 -04:00
* [ZeroMQ](http://zeromq.org/) - High-speed, modular asynchronous communication library.
2014-07-17 06:52:03 -04:00
2014-07-22 13:23:59 -04:00
## Physics
*Dynamics simulation engines*
* [Box2D](https://code.google.com/p/box2d/) - A 2D physics engine for games.
2014-08-14 11:30:38 -04:00
* [Bullet](https://github.com/bulletphysics/bullet3) - A 3D physics engine for games. [website](http://bulletphysics.org)
* [Chipmunk](https://github.com/slembcke/Chipmunk2D) - A fast and lightweight 2D game physics library. [website](https://chipmunk-physics.net/)
2014-07-22 19:54:04 -04:00
* [LiquidFun](https://github.com/google/liquidfun) - A 2D physics engine for games.
2014-07-28 17:55:42 -04:00
* [ODE](http://www.ode.org/) - Open Dynamics Engine - An open source, high performance library for simulating rigid body dynamics.
* [ofxBox2d](https://github.com/vanderlin/ofxBox2d) - openFrameworks wrapper for Box2D.
* [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.
2014-07-22 13:23:59 -04:00
2014-07-23 06:52:18 -04:00
## Scripting
2014-08-14 11:30:38 -04:00
* [ChaiScript](https://github.com/ChaiScript/ChaiScript/) - An easy to use embedded scripting language for C++. [website](http://chaiscript.com/)
2014-07-23 06:52:18 -04:00
* [Lua](http://www.lua.org/) - A minimal and fast scripting engine for configuration files and basic application scripting.
* [luacxx](https://github.com/dafrito/luacxx) - C++11 API for creating Lua bindings.
2014-07-23 06:52:18 -04:00
* [SWIG](http://www.swig.org/) - a wrapper/interface Generator that let you link your c++ code to Javascript, Perl, PHP, Python, Tcl and Ruby.
2014-07-26 14:06:58 -04:00
* [V7](https://github.com/cesanta/v7) - An embedded JavaScript engine.
* [V8](http://code.google.com/p/v8/) - A fast JavaScript engine by Google that can be embedded into any C++ application.
2014-07-23 06:52:18 -04:00
2014-07-17 06:52:03 -04:00
## Serialization
2014-08-13 07:57:47 -04:00
* [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]
2014-08-14 11:30:38 -04:00
* [MessagePack](https://github.com/msgpack/msgpack-c) - Efficient binary serialization format "like JSON" for C/C++. [Apache2] [website](http://msgpack.org/)
2014-08-13 07:57:47 -04:00
* [protobuf](http://code.google.com/p/protobuf/) - Protocol Buffers - Google's data interchange format. [BSD]
2014-08-13 07:50:06 -04:00
* [SimpleBinaryEncoding](https://github.com/real-logic/simple-binary-encoding) - encoding and decoding application messages in binary format for low-latency applications. [Apache2]
2014-07-17 06:52:03 -04:00
## Web Application Framework
2014-08-13 08:15:48 -04:00
* [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]
2014-08-14 12:48:11 -04:00
* [QDjango](https://github.com/jlaine/qdjango/) - QDjango is 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]
2014-08-13 08:15:48 -04:00
* [Wt](http://www.webtoolkit.eu/wt) - A C++ library for developing web applications. [GPL/Commercial]
2014-07-17 06:52:03 -04:00
2014-07-26 03:01:45 -04:00
## XML
2014-07-29 15:52:46 -04:00
*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*
2014-07-26 03:01:45 -04:00
* [Expat](http://www.libexpat.org/) - An XML parser library written in C.
* [Libxml2](http://xmlsoft.org/) - The XML C parser and toolkit of Gnome.
* [libxml++](http://libxmlplusplus.sourceforge.net/) - An XML Parser for C++.
* [PugiXML](http://pugixml.org/) - A light-weight, simple and fast XML parser for C++ with XPath support.
* [RapidXml](http://rapidxml.sourceforge.net/) - An attempt to create the fastest XML parser possible, while retaining useability, portability and reasonable W3C compatibility.
* [TinyXML](http://sourceforge.net/projects/tinyxml/) - A simple, small, minimal, C++ XML parser that can be easily integrating into other programs.
* [TinyXML2](https://github.com/leethomason/tinyxml2) - A simple, small, efficient, C++ XML parser that can be easily integrating into other programs.
* [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.
* [Xerces-C++](http://xerces.apache.org/xerces-c/) - A validating XML parser written in a portable subset of C++.
2014-07-26 08:54:02 -04:00
## Miscellaneous
*Useful libraries or tools that don't fit in the categories above or maybe just not categorised yet*
2014-07-17 08:23:44 -04:00
2014-07-17 13:14:50 -04:00
* [C++ Format](https://github.com/cppformat/cppformat) - Small, safe and fast formatting library for C++.
2014-07-23 12:53:42 -04:00
* [casacore](https://code.google.com/p/casacore/) - A set of c++ core libraries derived from aips++.
2014-07-17 13:14:50 -04:00
* [cxx-prettyprint](https://github.com/louisdx/cxx-prettyprint) - A pretty printing library for C++ containers.
2014-07-23 06:52:18 -04:00
* [DynaPDF](http://www.dynaforms.com/) - An easy-to-use PDF generation library.
2014-07-17 16:52:01 -04:00
* [HTTP Parser](https://github.com/joyent/http-parser) - A http request/response parser for C.
2014-07-25 10:06:09 -04:00
* [libcpuid](https://github.com/anrieff/libcpuid) - A small C library for x86 CPU detection and feature extraction.
2014-07-23 12:53:42 -04:00
* [libusb](http://www.libusb.org/) - A universal USB library which allows for portable access to USB devices.
* [Remote Call Framework](http://www.deltavsoft.com/) - Inter-process communication framework for C++.
2014-07-23 06:52:18 -04:00
* [Serial Communication Library](https://github.com/wjwwood/serial) - Cross-platform, Serial Port library written in C++.
2014-07-17 13:14:50 -04:00
* [SDS](https://github.com/antirez/sds) - Simple Dynamic Strings library for C.
2014-07-17 08:23:44 -04:00
* [SLDR](https://github.com/cesanta/sldr) - Super Light DNS Resolver.
* [SLRE](https://github.com/cesanta/slre) - Super Light Regular Expression library.
2014-07-23 06:52:18 -04:00
* [Stage](https://github.com/rtv/Stage) - Mobile robot simulator.
2014-07-28 17:56:31 -04:00
* [VarTypes](https://code.google.com/p/vartypes/) - A feature-rich, object-oriented framework for managing variables in C++ / Qt4.
2014-07-23 06:52:18 -04:00
* [ZBar](http://zbar.sourceforge.net/) - A barcode scanner library, which allows to scan photos/images/video streams for barcodes and return their value.
2014-07-24 11:01:34 -04:00
* [CppVerbalExpressions](https://github.com/VerbalExpressions/CppVerbalExpressions) - C++ regular expressions made easy.
* [QtVerbalExpressions](https://github.com/VerbalExpressions/QtVerbalExpressions) - This Qt lib is based off of the C++ VerbalExpressions library.
2014-08-05 04:46:03 -04:00
* [TinyVM](https://github.com/jakogut/tinyvm) - A small, fast, lightweight virtual machine written in pure ANSI C.
* [CarpVM](https://github.com/tekknolagi/carp) - "interesting" VM in C. Let's see how this goes.
2014-08-14 11:30:38 -04:00
* [PHP-CPP](https://github.com/CopernicaMarketingSoftware/PHP-CPP) - A library to build PHP extensions with C++. [website](http://www.php-cpp.com/)
2014-07-17 08:23:44 -04:00
2014-07-17 09:34:23 -04:00
# Software
*Software for creating a development environment.*
2014-07-30 13:35:46 -04:00
## Compiler
2014-07-17 06:52:03 -04:00
*List of C/C++ compilers*
2014-07-17 08:48:06 -04:00
* [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.
2014-07-27 10:11:50 -04:00
* [LLVM](http://llvm.org/) - Collection of modular and reusable compiler and toolchain technologies.
2014-07-17 06:52:03 -04:00
2014-07-30 18:11:08 -04:00
## 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.
* [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.
2014-07-30 13:35:46 -04:00
## 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
2014-07-17 09:34:23 -04:00
*List of C/C++ nominal IDEs.*
2014-07-17 06:52:03 -04:00
2014-07-17 08:48:06 -04:00
* [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 Qt.
2014-07-17 08:48:06 -04:00
* [Xcode](https://developer.apple.com/xcode/) - Developed by Apple.
* [YouCompleteMe](https://valloric.github.io/YouCompleteMe/) - YouCompleteMe is a fast, as-you-type, fuzzy-search code completion engine for Vim.
2014-07-17 06:52:03 -04:00
2014-08-12 04:57:56 -04:00
## 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.
2014-07-29 06:42:34 -04:00
## 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)
* [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.
2014-07-17 06:52:03 -04:00
# Resources
2014-07-23 07:01:42 -04:00
*Various resources, such as books, websites, and articles for improving your C++ development skills and knowledge.*
2014-07-17 06:52:03 -04:00
2014-07-23 07:01:42 -04:00
## Articles
*Fantastic C/C++ related articles.*
2014-07-17 06:52:03 -04:00
2014-07-23 07:01:42 -04:00
* [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.
2014-07-17 06:52:03 -04:00
2014-07-23 07:01:42 -04:00
## Books
*Fantastic C/C++ related books.*
2014-07-17 06:52:03 -04:00
2014-07-25 10:49:39 -04:00
* [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++.
2014-07-23 06:52:18 -04:00
* [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++.
2014-07-23 07:01:42 -04:00
* [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.
2014-07-17 07:25:16 -04:00
2014-08-04 07:17:11 -04:00
## 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)
2014-07-23 07:01:42 -04:00
## Videos
2014-07-23 07:04:08 -04:00
*Fantastic C/C++ related videos.*
2014-07-17 06:52:03 -04:00
2014-07-19 10:42:42 -04:00
* [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.
2014-07-23 07:04:08 -04:00
## Websites
*Useful C/C++ related websites.*
2014-07-23 07:01:42 -04:00
* [C++ reference](http://cppreference.com/) - C++98, C++03, C++11, C++14 reference.
2014-07-29 04:54:52 -04:00
* [cplusplus.com](http://www.cplusplus.com/) - The C++ Resources Network.
2014-07-31 09:01:55 -04:00
* [Standard C++](http://isocpp.org/) - News, Status & Discussion about Standard C++.
2014-07-23 07:01:42 -04:00
2014-07-17 13:48:46 -04:00
## Other Awesome Projects
2014-07-17 08:52:58 -04:00
*Collection of useful codes, snippets, ...*
2014-07-17 07:20:32 -04:00
2014-07-17 10:21:08 -04:00
* [algorithms](https://github.com/xtaci/algorithms) - Algorithms & Data Structures in C++.
* [c-algorithms](https://github.com/fragglet/c-algorithms) - C algorithms library.
2014-07-17 07:20:32 -04:00
* [C/C++ Awesome Pack](https://github.com/junian/CppAwesomePack) - Contains some awesome c++ codes, packed in one.
2014-07-17 11:10:45 -04:00
# Other Awesome Lists
*Other amazingly awesome lists*
2014-07-17 13:48:46 -04:00
* [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
2014-07-23 13:01:58 -04:00
* [awesome-talks](https://github.com/JanVanRyswyck/awesome-talks) - A lot of screencasts, recordings of user group gatherings and conference talks.
2014-07-17 13:48:46 -04:00
* [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.
2014-07-17 11:10:45 -04:00
2014-07-17 06:52:03 -04:00
# Contributing
Please see [CONTRIBUTING](https://github.com/fffaraz/awesome-cpp/blob/master/CONTRIBUTING.md) for details.