awesome c_c++

34
https://github.com/fffaraz/awesomecpp Awesome C/C++ A curated list of awesome C/C++ frameworks, libraries, resources, and shiny things. Inspired by awesome... stuff. Awesome C/C++ Standard Libraries Frameworks Artificial Intelligence Asynchronous Event Loop Audio Biology CLI Compression Concurrency Containers Cryptography Database Debug Star 2,160

Upload: testabc

Post on 17-Jan-2016

40 views

Category:

Documents


2 download

DESCRIPTION

rthgtfjhgf

TRANSCRIPT

Page 1: Awesome C_C++

https://github.com/fffaraz/awesome­cpp

Awesome C/C++A curated list of awesome C/C++ frameworks, libraries,

resources, and shiny things. Inspired by awesome­... stuff.

Awesome C/C++

Standard Libraries

Frameworks

Artificial Intelligence

Asynchronous Event Loop

Audio

Biology

CLI

Compression

Concurrency

Containers

Cryptography

Database

Debug

Star 2,160

Page 2: Awesome C_C++

Game Engine

GUI

Graphics

Image Processing

Internationalization

Inter­process communication

JSON

Logging

Machine Learning

Math

Multimedia

Networking

Physics

Robotics

Scientific Computing

Scripting

Serialization

Video

Virtual Machines

Page 3: Awesome C_C++

Web Application Framework

XML

Miscellaneous

Software

Compiler

Online Compiler

Debugger

Integrated Development Environment

Build Systems

Static Code Analysis

Resources

API Design

Articles

Books

Coding Style

Videos

Websites

Other Awesome Lists

Page 4: Awesome C_C++

Contributing

Standard LibrariesC++ Standard Library ­ including STL Containers, STL Aglorithm, STL Functional, etc.

C++ Standard Library ­ A collection of classes and functions, which are written in the core language andpart of the C++ ISO Standard itself.

Standard Template Library ­ The Standard Template Library (STL).

C POSIX library ­ A specification of a C standard library for POSIX systems.

ISO C++ Standards Committee ­ ISO/IEC JTC1/SC22/WG21 ­ The C++ Standards Committee. website

The GNU C Library ­ The purpose of this manual is to tell you how to use the facilities of the GNU C Library.

FrameworksC++ generic frameworks and libraries.

Apache C++ Standard Library ­ A collection of algorithms, containers, iterators, and other fundamentalcomponents. [Apache2]

APR ­ Apache Portable Runtime. Another library of cross­platform utility functions. [Apache2]

ASL ­ Adobe Source Libraries provides peer­reviewed and portable C++ source libraries. [MIT]

Boost :zap: ­ A large collection of generic C++ libraries. [Boost] website

BDE ­ The BDE Development Environment from Bloomberg Labs. [MIT]

Cinder ­ A community­developed, free and open source library for professional­quality creative coding.[BSD]

Cxxomfort ­ A small, header­only library that backports to C++03 some of the nifty C++11 goodies. [MIT]

Page 5: Awesome C_C++

Dlib :zap: ­ A general purpose cross­platform C++ library designed using contract programming andmodern C++ techniques. [Boost]

EASTL ­ Public part of EA­STL. [BSD]

ffead­cpp ­ Framework for Enterprise Application Development. [Apache2]

Folly ­ An open­source C++ library developed and used at Facebook. [Apache2]

JUCE ­ An all­encompassing C++ class library for developing cross­platform software. [Core­Module: ISC,Rest: GPL2/GPL3/Commercial] website

libPhenom ­ libPhenom is an eventing framework for building high performance and high scalability systemsin C. [Apache2]

LibSourcey ­ C++11 evented IO for real­time video streaming and high performance networkingapplications. [LGPL]

LibU ­ A multiplatform utility library written in C. [BSD]

Loki ­ A C++ library of designs, containing flexible implementations of common design patterns and idioms.[MIT]

MiLi ­ Minimal headers­only C++ Library. [Boost]

OpenFrameworks ­ A cross platform open source toolkit for creative coding in C++. [MIT] website

Qt :zap: ­ A cross­platform application and UI framework. [LGPL]

Reason ­ A cross platform framework designed to bring the ease of use of Java, .Net, or Python todevelopers who require the performance and strength of C++. [GPL2]

ROOT ­ A set of OO frameworks with all the functionality needed to handle and analyze large amounts ofdata in a very efficient way. Used at CERN. [LGPL]

STLport ­ An exemplary version of STL. [Free]

STXXL ­ Standard Template Library for Extra Large Data Sets. [Boost]

Page 6: Awesome C_C++

Ultimate++ ­ A C++ cross­platform rapid application development framework. [BSD]

uSTL ­ The small STL library. [MIT]

Windows Template Library ­ A C++ library for developing Windows applications and UI components. [Public]

Yomm11 ­ Open multi­methods for C++11. [Boost]

Artificial Intelligence

btsk ­ Game Behavior Tree Starter Kit. [zlib]

Evolving Objects ­ A template­based, ANSI­C++ evolutionary computation library which helps you to writeyour own stochastic optimization algorithms insanely fast. [LGPL]

Neu ­ A C++ 11 framework, collection of programming languages, and multipurpose software systemdesigned for: the creation of artificial intelligence applications. [BSD]

Asynchronous Event Loop

Boost.Asio ­ A cross­platform C++ library for network and low­level I/O programming. [Boost]

libev ­ A full­featured and high­performance event loop that is loosely modelled after libevent, but without itslimitations and bugs. [BSD and GPL]

libevent ­ An event notification library. [BSD]

libuv ­ Cross­platform asychronous I/O. [BSD]

AudioAudio, Sound, Music, Digitized Voice Libraries

FMOD ­ An easy to use crossplatform audio engine and audio content creation tool for games. [Free fornon­commercial/Commercial]

Page 7: Awesome C_C++

Maximilian ­ C++ Audio and Music DSP Library. [MIT]

OpenAL ­ Open Audio Library ­ A crossplatform audio API. [BSD/LGPL/Commercial]

Opus ­ A totally open, royalty­free, highly versatile audio codec. [BSD]

Speex ­ A free codec for free speech. Obsoleted by Opus. [BSD]

Tonic ­ Easy and efficient audio synthesis in C++. [Unlicense]

Vorbis ­ Ogg Vorbis is a fully open, non­proprietary, patent­and­royalty­free, general­purpose compressedaudio format. [BSD]

BiologyBioinformatics, Genomics, Biotech

libsequence ­ A C++ library for representing and analyzing population genetics data. [GPL]

SeqAn ­ Algorithms and data structures for the analysis of sequences with the focus on biological data.[BSD/3­clause]

Vcflib ­ A C++ library for parsing and manipulating VCF files. [MIT]

Wham ­ Structural variants (SVs) in Genomes by directly applying association tests to BAM files. [MIT]

CLIConsole/Terminal User Interface, Command Line Interface

Boost.Program_options ­ A library to obtain program options via conventional methods such as commandline and config file. [Boost]

gflags ­ Commandline flags module for C++. [BSD]

Ncurses ­ A terminal user interfaces. [MIT]

Page 8: Awesome C_C++

termbox ­ A C library for writing text­based user interfaces. [BSD]

CompressionCompression and Archiving Libraries

bzip2 ­ A freely available, patent free, high­quality data compressor. [BSD]

doboz ­ Compression library with very fast decompression. [zlib]

PhysicsFS ­ A library to provide abstract access to various archives. It is intended for use in video games,and the design was somewhat inspired by Quake 3's file subsystem. [zlib]

KArchive ­ A library for creating, reading, writing and manipulating file archives like zip and tar. It alsoprovides transparent compression and decompression of data, using formats like gzip, via a subclass ofQIODevice. [LGPL]

LZ4 ­ Extremely Fast Compression algorithm. [BSD]

LZHAM ­ Lossless data compression library with a compression ratio similar to LZMA but with much fasterdecompression. [BSD]

LZMA :zap: ­ The default and general compression method of 7z format. [PublicDomain]

LZMAT ­ An extremely fast real­time lossless data compression library. [GPL]

miniz ­ Single C source file Deflate/Inflate compression library with zlib­compatible API, ZIP archivereading/writing, PNG writing. [Unlicense]

Minizip ­ Zlib with latest bug fixes that supports PKWARE disk spanning, AES encryption, and IO buffering.[zlib]

smaz ­ Small strings compression library. [BSD]

Snappy ­ A fast compressor/decompressor. [BSD]

ZLib ­ A very compact compression library for data streams. [zlib]

Page 9: Awesome C_C++

ZZIPlib ­ Provides read access on ZIP­archives. [MPL/LGPL]

ConcurrencyConcurrency and Multithreading

Boost.Compute ­ A C++ GPU Computing Library for OpenCL. [Boost]

Bolt ­ A C++ template library optimized for GPUs. [Apache2]

C++React ­ A reactive programming library for C++11. [Boost]

Intel TBB ­ Intel® Threading Building Blocks. [GPL2 with runtime exception]

Libclsph ­ An OpenCL based GPU accelerated SPH fluid simulation library. [MIT]

OpenCL ­ The open standard for parallel programming of heterogeneous systems.

OpenMP ­ The OpenMP API.

Thrust ­ A parallel algorithms library which resembles the C++ Standard Template Library (STL). [Apache2]

HPX ­ A general purpose C++ runtime system for parallel and distributed applications of any scale. [Boost]

VexCL ­ A C++ vector expression template library for OpenCL/CUDA. [MIT]

Containers

C++ B­tree ­ A template library that implements ordered in­memory containers based on a B­tree datastructure. [Apache2]

Hashmaps ­ Implementation of open addressing hash table algorithms in C++. [MIT]

Cryptography

Page 10: Awesome C_C++

Cryptography and Encryption Libraries

Bcrypt ­ A cross platform file encryption utility. Encrypted files are portable across all supported operatingsystems and processors.

BeeCrypt

Botan ­ A crypto library for C++. [BSD­2]

Crypto++ ­ A free C++ class library of cryptographic schemes. [Boost]

GnuPG ­ A complete and free implementation of the OpenPGP standard. [GPL]

GnuTLS ­ A secure communications library implementing the SSL, TLS and DTLS protocols. [LGPL2.1]

Libgcrypt

libmcrypt

LibreSSL ­ A free version of the SSL/TLS protocol forked from OpenSSL in 2014. [?]

libsodium ­ P(ortable|ackageable) NaCl­based crypto library, opinionated and easy to use. [ISC]

LibTomCrypt ­ A fairly comprehensive, modular and portable cryptographic toolkit. [WTFPL]

Nettle ­ A low­level cryptographic library. [LGPL]

OpenSSL ­ A robust, commercial­grade, full­featured, and Open Source cryptography library. [Apache]

retter ­ A collection of hash functions, ciphers, tools, libraries, and materials related to cryptography.

Tiny AES128 in C ­ A small and portable implementation of the AES128 ECB encryption algorithmimplemented in C. [PublicDomain]

DatabaseDatabase Libraries, SQL Servers, ODBC Drivers, and Tools

Page 11: Awesome C_C++

hiberlite ­ C++ Object­relational mapping for sqlite3. [BSD]

Hiredis ­ A minimalistic C client library for the Redis database. [BSD]

LevelDB ­ A fast key­value storage library. [BSD]

LMDB ­ Very fast embedded key/value store with full ACID semantics. [OpenLDAP]

MongoDB C Driver ­ MongoDB client library for C. [Apache version 2.0]

MongoDB C++ Driver ­ C++ driver for MongoDB. [Apache version 2.0]

MongoDB Libbson ­ A BSON utility library. [Apache version 2.0]

MySQL++ ­ A C++ wrapper for MySQL's C API. [LGPL]

RocksDB ­ Embedded key­value store for fast storage from facebook. [BSD]

SQLite ­ A completely embedded, full­featured relational database in a few 100k that you can include rightinto your project. [PublicDomain]

DebugDebugging Libraries, Memory Leak and Resource Leak Detection, Unit Testing

Boost.Test ­ Boost Test Library. [Boost]

Catch ­ A modern, C++­native, header­only, framework for unit­tests, TDD and BDD. [Boost]

Celero ­ C++ Benchmarking Framework. [Apache 2.0]

CMocka ­ unit testing framework for C with support for mock objects. [Apache2]

CppUnit ­ C++ port of JUnit. [LGPL2]

CTest ­ The CMake test driver program. [BSD]

Page 12: Awesome C_C++

googletest ­ Google C++ Testing Framework. [BSD]

ig­debugheap ­ Multiplatform debug heap useful for tracking down memory errors. [BSD]

libtap ­ Write tests in C. [GPL2]

MemTrack ­ Tracking memory allocations in C++.

microprofile ­ Profiler with web­view for multiple platforms. [PublicDomain]

minUnit ­ A minimal unit testing framework for C written using only 2 macros. [PublicDomain]

Remotery ­ Single C File Profiler with Web Viewer. [Apache2]

UnitTest++ ­ A lightweight unit testing framework for C++. [MIT/X Consortium license]

Game Engine

Allegro ­ A cross­platform library mainly aimed for video games and multimedia programming. [zlib]

Cocos2d­x ­ A multi­platform framework for building 2d games, interactive books, demos and othergraphical applications. [Commercial?]

delta3d ­ A robust simulation platform. [LGPL2]

GamePlay ­ A cross­platform native C++ game framework for creating 2D/3D mobile and desktop games.[Apache2]

Godot ­ A fully featured, open source, MIT licensed, game engine. [MIT]

Grit ­ Community project to build a free game engine for implementing open world 3D games. [MIT]

Irrlicht ­ A high performance realtime 3D engine written in C++. [zlib]

Polycode ­ A cross­platform framework for creative code in C++ (with Lua bindings). [MIT] website

Page 13: Awesome C_C++

Torque2D ­ An open­source and cross­platform C++ engine built for 2D game development. [MIT] website

Torque3D ­ An open­source C++ engine built for 3D game development. [MIT] website

GUIGraphic User Interface

CEGUI ­ Flexible, cross­platform GUI library.

FLTK ­ Fast, light, cross­platform C++ GUI toolkit. [GPL2]

GTK+ ­ A multi­platform toolkit for creating graphical user interfaces. [LGPL]

gtkmm ­ The official C++ interface for the popular GUI library GTK+. [LGPL]

imgui ­ Immediate Mode Graphical User Interface with minimal dependencies. [MIT]

libRocket ­ libRocket is a C++ HTML/CSS game interface middleware. [MIT]

MyGUI ­ Fast, flexible and simple GUI. [MIT]

QCustomPlot ­ Qt plotting widget without further dependencies. [GPLv3]

Qwt ­ Qt Widgets for Technical Applications. [Own based on LGPL]

QwtPlot3D ­ A feature­rich Qt/OpenGL­based C++ programming library, providing essentially a bunch of3D­widgets. [zlib]

OtterUI ­ OtterUI is a User Interface development solution for embedded systems and interactiveentertainment software. [MIT]

PDCurses ­ Public domain curses library with both source code and pre­compiled library available.[PublicDomain]

Sciter ­ Sciter is an embeddable HTML/CSS/scripting engine aimed to be used as an UI layer of moderndesktop applications. [Free/Commercial]

Page 14: Awesome C_C++

wxWidgets ­ A C++ library that lets developers create applications for Windows, Mac OS X, Linux and otherplatforms with a single code base. [Own LGPL]

Graphics

bgfx ­ A cross­platform rendering library. [BSD]

Cairo ­ A 2D graphics library with support for multiple output devices. [LGPL2 or Mozilla MPL]

Horde3D ­ A small 3D rendering and animation engine. [EPL]

magnum ­ C++11 and OpenGL 2D/3D graphics engine. [MIT] website

Ogre 3D :zap: ­ A scene­oriented, real­time, flexible 3D rendering engine (as opposed to a game engine)written in C++. [MIT]

OpenSceneGraph ­ An open source high performance 3D graphics toolkit. [OSGPL]

Panda3D ­ A framework for 3D rendering and game development for Python and C++. [BSD]

Skia ­ A complete 2D graphic library for drawing Text, Geometries, and Images. [BSD] webpage

urho3d ­ Cross­platform rendering and game engine. [Many different, mostly MIT]

Image Processing

Boost.GIL ­ Generic Image Library.

CImg ­ A small, open source, C++ toolkit for image processing. [Own LGPL or GPL]

CxImage ­ An image processing and conversion library to load, save, display, transform BMP, JPEG, GIF,PNG, TIFF, MNG, ICO, PCX, TGA, WMF, WBMP, JBG, J2K images. [zlib]

FreeImage ­ An open source library that supports popular graphics image formats and others as needed bytoday's multimedia applications. [GPL2 or GPL3]

Page 15: Awesome C_C++

GDCM ­ Grassroots DICOM library.

ITK ­ An open­source, cross­platform system for image analysis. [Apache 2.0 from ITK 4.0]

libvips ­ A fast image processing library with low memory needs. [LGPL] website

Magick++ ­ ImageMagick program interfaces for C++. [Apache 2.0]

MagickWnd ­ ImageMagick program interfaces for C. [Apache 2.0]

OpenCV :zap: ­ Open source computer vision. [BSD]

tesseract­ocr ­ An OCR engine. [Apache 2.0]

VIGRA ­ A generic C++ computer vision library for image analysis. [MIT X11]

VTK ­ Open­source, freely available software system for 3D computer graphics, image processing andvisualization. [BSD]

Internationalization

gettext ­ GNU `gettext'. [GPL2]

IBM ICU ­ A set of C/C++ and Java libraries providing Unicode and Globalization support. [ICU]

libiconv ­ An encoding conversion library between different character encodings. [GPL]

Inter­process communication

Apache Thrift ­ Efficient cross­language IPC/RPC, works between C++, Java, Python, PHP, C#, and manymore other languages. Originally developed by Facebook. [Apache2]

Cap'n Proto ­ Fast data interchange format and capability­based RPC system. [MIT]

gRPC ­ A high performance, open source, general­purpose RPC framework. [BSD] website

Page 16: Awesome C_C++

libjson­rpc­cpp ­ JSON­RPC framework for C++ servers and clients. [MIT]

nanomsg ­ A simple high­performance implementation of several "scalability protocols". [MIT] website

simple­rpc­cpp ­ A simple RPC wrapper generator to C/C++ functions. [BSD]

xmlrpc­c ­ A lightweight RPC library based on XML and HTTP. [BSD]

ZeroMQ ­ High­speed, modular asynchronous communication library. [LGPL]

JSON

Boost.PropertyTree ­ A property tree parser/generator that can be used to parse XML/JSON/INI/Info files.[Boost]

frozen ­ JSON parser and generator for C/C++. [GPL & GPL2]

Jansson ­ C library for encoding, decoding and manipulating JSON data. [MIT]

jbson ­ jbson is a library for building & iterating BSON data, and JSON documents in C++14. [Boost]

JeayeSON ­ A very sane (header only) C++ JSON library. [BSD]

json ­ JSON for Modern C++. [MIT]

JSON++ ­ A JSON parser in C++. [MIT]

JsonCpp ­ A C++ library for interacting with JSON. [MIT]

json­parser ­ Very low footprint JSON parser written in portable ANSI C. [BSD]

json11 ­ A tiny JSON library for C++11. [MIT]

json­voorhees ­ JSON library for C++. Support for C++11. No dependencies, fast and dev­friendly.[Apache2]

Page 17: Awesome C_C++

jute ­ Very simple C++ JSON Parser. [PublicDomain]

libjson ­ A JSON parser and printer library in C. easy to integrate with any model. [LGPL]

libjson ­ Lightweight JSON library. [?]

LIBUCL :zap: ­ Universal configuration library parser [?]

PicoJSON ­ A header­file­only, JSON parser serializer in C++. [BSD]

qt­json ­ A simple class for parsing JSON data into a QVariant hierarchy and vice versa. [GPLv3]

QJson ­ A qt­based library that maps JSON data to QVariant objects. [LGPL2]

RapidJSON :zap: ­ A fast JSON parser/generator for C++ with both SAX/DOM style API. [MIT]

YAJL ­ A fast streaming JSON parsing library in C. [ISC]

Logging

Boost.Log ­ Designed to be very modular and extensible. [Boost]

easyloggingpp ­ Single header only C++ logging library. [MIT] website

G3log ­ Asynchronous logger with Dynamic Sinks. [PublicDomain]

Log4cpp ­ A library of C++ classes for flexible logging to files, syslog, IDSA and other destinations. [LGPL]

log4cplus ­ A simple to use C++ logging API providing thread­safe, flexible, and arbitrarily granular controlover log management and configuration. [BSD & Apache 2.0]

spdlog ­ Super fast, header only, C++ logging library.

templog ­ A very small and lightweight C++ library which you can use to add logging to your C++applications. [Boost]

Page 18: Awesome C_C++

Machine Learning

Caffe ­ A fast framework for neural networks. [BSD]

CCV ­ C­based/Cached/Core Computer Vision Library, A Modern Computer Vision Library. [BSD]

Minerva ­ A fast and flexible system for deep learning. [Apache2]

mlpack ­ A scalable c++ machine learning library. [LGPLv3]

OpenCV :zap: ­ Open Source Computer Vision Library. [BSD] website

Recommender ­ C library for product recommendations/suggestions using collaborative filtering (CF). [BSD]

SHOGUN ­ The Shogun Machine Learning Toolbox. [GPLv3]

sofia­ml ­ The suite of fast incremental algorithms for machine learning. [Apache2]

Math

Apophenia ­ A C library for statistical and scientific computing [GPL2]

Armadillo ­ A high quality C++ linear algebra library, aiming towards a good balance between speed andease of use. The syntax (API) is deliberately similar to Matlab. [MPL2]

blaze ­ high­performance C++ math library for dense and sparse arithmetic. [BSD]

ceres­solver ­ C++ library for modeling and solving large complicated nonlinear least squares problemsfrom google. [BSD]

CGal ­ Collection of efficient and reliable geometric algorithms. [LGPL&GPL]

cml ­ free C++ math library for games and graphics. [Boost]

Eigen ­ A high­level C++ library of template headers for linear algebra, matrix and vector operations,numerical solvers and related algorithms. [MPL2]

Page 19: Awesome C_C++

GMTL ­ Graphics Math Template Library is a collection of tools implementing Graphics primitives ingeneralized ways. [GPL2]

GMP ­ A C/C++ library for arbitrary precision arithmetic, operating on signed integers, rational numbers,and floating­point numbers. [LGPL3 & GPL2]

Multimedia

GStreamer ­ A library for constructing graphs of media­handling components. [LGPL]

LIVE555 Streaming Media ­ Multimedia streaming library using open standard protocols (RTP/RTCP,RTSP, SIP). [LGPL]

libVLC ­ libVLC (VLC SDK) media framework. [GPL]

QtAv ­ A multimedia playback framework based on Qt and FFmpeg to write a player easily. [LGPL] website

SDL :zap: ­ Simple DirectMedia Layer. [zlib]

SFML :zap: ­ Simple and Fast Multimedia Library. [zlib]

Networking

ACE ­ An OO Network Programming Toolkit in C++. [?MIT?]

Boost.Asio :zap: ­ A cross­platform C++ library for network and low­level I/O programming. [Boost]

Casablanca ­ C++ REST SDK. [Apache2]

cpp­netlib ­ A collection of open­source libraries for high level network programming. [Boost]

Dyad.c ­ Asynchronous networking for C. [MIT]

libcurl ­ Multiprotocol file transfer library. [MIT/X derivate license]

libjingle ­ Google talk voice and P2P interoperability library. [BSD]

Page 20: Awesome C_C++

Mongoose ­ Extremely lightweight webserver. [GPL2]

Muduo ­ A C++ non­blocking network library for multi­threaded server in Linux. [BSD]

net_skeleton ­ TCP client/server library for C/C++. [GPL2]

nope.c ­ A C language­based ultra­light software platform for scalable server­side and networkingapplications. Think node.js for C programmers. [GPL2]

Onion ­ HTTP server library in C designed to be lightweight and easy to use. [Apache2/GPL2]

POCO :zap: ­ C++ class libraries and frameworks for building network­ and internet­based applications thatrun on desktop, server, mobile and embedded systems. [Boost] website

Proxygen ­ Facebook's collection of C++ HTTP libraries including an easy to use HTTP server. [BSD]

RakNet ­ A cross platform, open source, C++ networking engine for game programmers. [BSD]

Tufão ­ An asynchronous web framework for C++ built on top of Qt. [LGPL2]

WebSocket++ ­ C++/Boost Asio based websocket client/server library. [BSD]

PhysicsDynamics simulation engines

Box2D ­ A 2D physics engine for games. [BSD­like]

Bullet ­ A 3D physics engine for games. [zlib] website

Chipmunk ­ A fast and lightweight 2D game physics library. [MIT] website

LiquidFun ­ A 2D physics engine for games. [BSD­like]

Newton Dynamics ­ An integrated solution for real time simulation of physics environments. [zlib]

Page 21: Awesome C_C++

ODE ­ Open Dynamics Engine ­ An open source, high performance library for simulating rigid bodydynamics. [BSD&LGPL]

ofxBox2d ­ openFrameworks wrapper for Box2D. [BSD­like]

Simbody ­ High­performance C++ multibody dynamics/physics library for simulating articulatedbiomechanical and mechanical systems like vehicles, robots, and the human skeleton. [Apache2]

Robotics

MOOS­IvP ­ A set of open source C++ modules for providing autonomy on robotic platforms, in particularautonomous marine vehicles.

MRPT ­ Mobile Robot Programming Toolkit. [BSD]

PCL ­ Point Cloud Library is a standalone, large scale, open project for 2D/3D image and point cloudprocessing [BSD] website

Robotics Library (RL) ­ A self­contained C++ library for robot kinematics, motion planning and control. [BSD]

RobWork ­ A collection of C++ libraries for simulation and control of robot systems. [Apache2]

ROS ­ Robot Operating System provides libraries and tools to help software developers create robotapplications. [BSD]

Scientific Computing

FFTW ­ A C library for computing the DFT in one or more dimensions. [GPL]

GSL ­ GNU scientific library. [GPL]

Scripting

ChaiScript ­ An easy to use embedded scripting language for C++. [BSD] website

Page 22: Awesome C_C++

Lua ­ A minimal and fast scripting engine for configuration files and basic application scripting. [MIT]

luacxx ­ C++11 API for creating Lua bindings. [MIT]

SWIG ­ A wrapper/interface Generator that let you link your c++ code to Javascript, Perl, PHP, Python, Tcland Ruby. [GPL/Output not licensed]

V7 ­ An embedded JavaScript engine. [GPL2]

V8 ­ A fast JavaScript engine by Google that can be embedded into any C++ application. [BSD]

Serialization

cereal ­ A C++11 library for serialization. [BSD]

FlatBuffers ­ A Memory efficient serialization library. [Apache2]

MessagePack ­ Efficient binary serialization format "like JSON" for C/C++. [Apache2] website

protobuf ­ Protocol Buffers ­ Google's data interchange format. [BSD]

protobuf­c ­ Protocol Buffers implementation in C. [BSD]

SimpleBinaryEncoding ­ encoding and decoding application messages in binary format for low­latencyapplications. [Apache2]

Video

libvpx ­ VP8/VP9 Codec SDK. [BSD]

FFmpeg ­ A complete, cross­platform solution to record, convert and stream audio and video.[LGPL2/GPL2]

libde265 ­ Open h.265 video codec implementation. [LGPL] website

OpenH264 ­ Open Source H.264 Codec. [BSD] website

Page 23: Awesome C_C++

Theora ­ A free and open video compression format. [BSD]

Virtual Machines

CarpVM ­ "interesting" VM in C. Let's see how this goes. [GPLv3]

MicroPython ­ Aims to put an implementation of Python 3.x on a microcontroller. [MIT]

TinyVM ­ A small, fast, lightweight virtual machine written in pure ANSI C. [MIT]

Web Application Framework

Civetweb ­ Provides easy to use, powerful, C/C++ embeddable web server with optional CGI, SSL and Luasupport. [MIT]

CppCMS ­ A Free High Performance Web Development Framework (not a CMS). [LGPLv3]

Crow ­ Crow is C++ micro web framework (inspired by Python Flask). [BSD]

Kore ­ ultra fast and flexible web server / framework for web applications developed in C. [ISC]

libOnion ­ lightweight library to help you create webservers in C programming language. [LGPLv3]

QDjango ­ A web framework written in C++ and built on top of the Qt library. Where possible it tries to followdjango's API, hence its name. [LGPL]

Wt ­ A C++ library for developing web applications. [GPL/Commercial]

XMLXML is crap. Really. There are no excuses. XML is nasty to parse for humans, and it's a disaster to parse evenfor computers. There's just no reason for that horrible crap to exist. ­ Linus Torvalds

Boost.PropertyTree ­ A property tree parser/generator that can be used to parse XML/JSON/INI/Info files.[Boost]

Page 24: Awesome C_C++

Expat ­ An XML parser library written in C. [MIT]

Libxml2 ­ The XML C parser and toolkit of Gnome. [MIT]

libxml++ ­ An XML Parser for C++. [LGPL2]

PugiXML ­ A light­weight, simple and fast XML parser for C++ with XPath support. [MIT]

RapidXml ­ An attempt to create the fastest XML parser possible, while retaining useability, portability andreasonable W3C compatibility. [Boost]

TinyXML ­ A simple, small, minimal, C++ XML parser that can be easily integrating into other programs.[zlib]

TinyXML2 ­ A simple, small, efficient, C++ XML parser that can be easily integrating into other programs.[zlib]

TinyXML++ ­ A completely new interface to TinyXML that uses MANY of the C++ strengths. Templates,exceptions, and much better error handling. [MIT]

Xerces­C++ ­ A validating XML parser written in a portable subset of C++. [Apache2]

MiscellaneousUseful libraries or tools that don't fit in the categories above or maybe just not categorised yet

Better String ­ An alternative to the string library for C which is more functional and does not have bufferoverflow overrun problems. Also includes a C++ wrapper. [BSD, GPL2]

Boost.Signals ­ An implementation of a managed signals and slots system. [Boost]

C++ Format ­ Small, safe and fast formatting library for C++. [BSD]

casacore ­ A set of c++ core libraries derived from aips++. [LGPL]

CppVerbalExpressions ­ C++ regular expressions made easy. [MIT]

Page 25: Awesome C_C++

QtVerbalExpressions ­ This Qt lib is based off of the C++ VerbalExpressions library. [MIT]

c­smart­pointers ­ Smart pointers for the (GNU) C programming language. [MIT]

cxx­prettyprint ­ A pretty printing library for C++ containers. [Boost]

DynaPDF ­ An easy­to­use PDF generation library. [Commercial]

gcc­poison ­ A simple header file for developers to ban unsafe C/C++ functions from applications.

googlemock ­ A library for writing and using C++ mock classes. [BSD]

HTTP Parser :zap: ­ A http request/response parser for C. [MIT]

Klib ­ Small and lightweight implementations of common algorithms and data structures. [MIT]

libsigc++ ­ A typesafe callback system for standard C++. [LGPL]

libcpuid ­ A small C library for x86 CPU detection and feature extraction. [BSD]

libevil ­ The Evil License Manager. [GPLv3]

libnih ­ A lightweight library of C functions and structures. [GPL2.1]

libusb ­ A universal USB library which allows for portable access to USB devices. [LGPL2]

PCRE ­ A regular expression C library inspired by the regular expression capabilities in Perl. [BSD]

PHP­CPP ­ A library to build PHP extensions with C++. [Apache2] website

Remote Call Framework ­ Inter­process communication framework for C++. [GPL2/Commercial]

Scintilla ­ A free source code editing component. [MIT]

SDS ­ Simple Dynamic Strings library for C. [BSD]

Serial Communication Library ­ Cross­platform, Serial Port library written in C++. [MIT]

Page 26: Awesome C_C++

sigslot ­ C++ Signal/Slot Library. [PublicDomain]

SLDR ­ Super Light DNS Resolver. [GPL2/Commercial]

SLRE ­ Super Light Regular Expression library. [GPL2/Commercial]

Stage ­ Mobile robot simulator. [GPL2]

stb ­ A range of single­file libraries for C/C++. [PublicDomain]

VarTypes ­ A feature­rich, object­oriented framework for managing variables in C++ / Qt4. [LGPL]

ZBar ­ A barcode scanner library, which allows to scan photos/images/video streams for barcodes andreturn their value. [LGPL2]

ZXing ­ An open­source, multi­format 1D/2D barcode image processing library implemented in Java, withports to other languages. [Apache]

SoftwareSoftware for creating a development environment.

CompilerList of C/C++ compilers

8cc ­ A Small C Compiler.

c ­ Compile and execute C "scripts" in one go! [MIT]

Clang ­ A C compiler for LLVM. Supports C11. Developed by Apple. [NCSA]

GCC ­ GNU Compiler Collection. Supports C11 and OpenMP. [GNU GPL3]

PCC ­ A very old C compiler. Supports C99.

Page 27: Awesome C_C++

Intel C++ Compiler ­ Developed by Intel.

LLVM ­ Collection of modular and reusable compiler and toolchain technologies.

Microsoft Visual C++ ­ MSVC, developed by Microsoft.

Open WatCom ­ Watcom C, C++, and Fortran cross compilers and tools. [Sybase Open Watcom PublicLicense]

Oracle Solaris Studio ­ C, C++ and Fortran compiler for SPARC and x86. Supports C++11. Available onLinux and Solaris. [OTN Developer License]

TCC ­ Tiny C Compiler. [LGPL]

Online CompilerList of online C/C++ compilers

codepad ­ An online compiler/interpreter, and a simple collaboration tool.

CodeTwist ­ A simple online compiler/interpreter, where you can paste your C, C++ or Java code andexecute it online and see results.

coliru ­ Online compiler/shell with support for various C++ compilers.

Compiler Explorer ­ An interactive compiler with assembly output available.

CompileOnline ­ Compile and Execute C++ online on Linux.

Ideone ­ An online compiler and debugging tool which allows you to compile source code and execute itonline in more than 60 programming languages.

Rextester ­ Online compiler which provides several compilers(Clang, GCC, MSVC) and several editors.

Rise4Fun ­ Online Visual C++ compiler.

Wandbox ­ An online Clang/GCC compiler with Boost available.

Page 28: Awesome C_C++

DebuggerList of C/C++ debuggers

Comparison of debuggers ­ A list of Debuggers from Wikipedia.

GDB ­ GNU Debugger.

Valgrind ­ A tool for memory debugging, memory leak detection, and profiling.

x64_dbg ­ An open­source x64/x32 debugger for windows.

Integrated Development EnvironmentList of C/C++ nominal IDEs.

Anjuta DevStudio ­ The GNOME IDE. [GPL3]

AppCode ­ an IDE for Objective­C, C, C++, and JavaScript development built on JetBrains’ IntelliJ IDEAplatform.

CLion ­ Cross­platform C/C++ IDE from JetBrains. In pre­release/early access stadium.

Code::Blocks ­ A free C, C++ and Fortran IDE.

CodeLite ­ Another cross­plaform, free C/C++ IDE. [GPL2 with an exception for plugins]

Dev­C++ ­ A portable C/C++/C++11 IDE.

Eclipse CDT ­ A fully functional C and C++ IDE based on the Eclipse platform.

Geany ­ Small, fast, cross­platform IDE. [GPL]

IBM VisualAge ­ A family of computer integrated development environments from IBM.

Irony­mode ­ A C/C++ minor mode for Emacs powered by libclang.

Page 29: Awesome C_C++

KDevelop ­ A free, open source IDE.

Microsoft Visual Studio ­ An IDE from Microsoft.

NetBeans ­ An IDE for developing primarily with Java, but also with other languages, in particular PHP,C/C++, and HTML5.

Qt Creator :zap: ­ A cross­platform C++, JavaScript and QML IDE which is part of the SDK for Qt.

rtags ­ A c/c++ client/server indexer with for integration with emacs based on clang.

Xcode ­ Developed by Apple.

YouCompleteMe ­ YouCompleteMe is a fast, as­you­type, fuzzy­search code completion engine for Vim.

Build Systems

Bear ­ A tool to generate compilation database for clang tooling.

Biicode ­ Simple, file­based dependency manager.

CMake ­ Cross­platform free and open­source software for managing the build process of software using acompiler­independent method. [BSD]

CPM ­ A C++ Package Manager based on CMake and Git.

FASTBuild ­ High performance, open­source build system supporting highly scalable compilation, cachingand network distribution.

Ninja ­ A small build system with a focus on speed.

Scons ­ A software construction tool configured with Python scipt.

tundra ­ High­performance code build system designed to give the best possible incremental build timeseven for very large software projects.

tup ­ File­based build system that monitors in the background for changed files.

Page 30: Awesome C_C++

Premake ­ A tool configured with lua scipt to generate project files for Visual Studio, GNU Make, Xcode,Code::Blocks, and more across Windows, Mac OS X, and Linux.

Static Code AnalysisList of tools for improving quality and reducing defects by code analysis

Cppcheck ­ A tool for static C/C++ code analysis. ­ source

include­what­you­use ­ A tool for use with clang to analyze includes in C and C++ source files.

OCLint ­ A static source code analysis tool to improve quality and reduce defects for C, C++ and Objective­C. ­ source

Clang Static Analyzer ­ A source code analysis tool that finds bugs in C, C++, and Objective­C programs.

List of tools for static code analysis ­ A list of tools for static code analysis from Wikipedia.

ResourcesVarious resources, such as books, websites, and articles for improving your C++ development skills andknowledge.

API Design

Beautiful Native Libraries

Designing Qt­Style C++ APIs

ArticlesFantastic C/C++ related articles.

CppCon 2014 Speaker Materials ­ Speaker materials from CppCon 2014.

C++Now 2014 Presentations ­ Presentation materials presented at C++Now 2014.

Page 31: Awesome C_C++

C++Now 2013 Presentations ­ Presentation materials presented at C++Now 2013.

C++Now 2012 Presentations ­ Presentation materials presented at C++Now 2012.

BooksFantastic C/C++ related books.

List of Free C/C++ Books

Free C Books ­ vhf/free­programming­books/C.

Free C++ Books ­ vhf/free­programming­books/C++.

6 Free eBooks On C++ Game Programming ­ Learn how to create graphics And video games in C++.

Coding Style

C++ Dos and Don'ts ­ The Chromium Projects > For Developers > Coding Style > C++ Dos and Don'ts.

google­styleguide ­ Style guides for Google­originated open­source projects.

Google C++ Style Guide

GNU Coding Standard

Linux kernel coding style

Talks

CppCon Talks :zap: ­ The C++ conference.

Quick game development with C++11/C++14 ­ CppCon 2014 talk by Vittorio Romeo.

Page 32: Awesome C_C++

VideosFantastic C/C++ related videos.

Awesome C Programming Tutorials in Hi Def [HD] ­ A collection of detailed C Programming LanguageTutorials for Beginners and New Programmers.

C++ ­ by VoidRealms.

C++ Qt Programming ­ by VoidRealms.

C++ Programming Tutorials Playlist ­ TheNewBoston Official Buckys C++ Programming Tutorials Playlist.

C++ Programming Tutorials from thenewboston ­ These are all of thenewboston's C++ programmingtutorials.

C++ GUI with Qt Playlist ­ Official Playlist for thenewboston C++ GUI with Qt tutorials.

C Programming Tutorials ­ All of TheNewBoston's C programming tutorials are right here.

Bo Qian's playlist ­ Boost Library, C++ Standard Library, Modern C++, Advanced C++, Advanced STL, ...

WebsitesUseful C/C++ related websites.

Standard C++ :zap: ­ News, Status & Discussion about Standard C++.

CppCon ­ The C++ Conference.

C++ reference ­ C++98, C++03, C++11, C++14 reference.

cplusplus.com ­ The C++ Resources Network.

C FAQ ­ C frequently asked questions.

C++ FAQ ­ C++ frequently asked questions.

Page 33: Awesome C_C++

C++ FQA Lite ­ C++ frequently questioned answers.

Guru of the Week ­ A regular series of C++ programming problems created and written by Herb Sutter.

Meeting C++

WeblogsUseful C/C++ related weblogs.

Coding For Speed ­ Coding For Speed DOT COM, Less Execution Time.

Eric Niebler

Sticky Bits

Paul Fultz II's Blog

Other Awesome ProjectsCollection of useful codes, snippets, ...

algorithms ­ Algorithms & Data Structures in C++.

c­algorithms ­ C algorithms library.

C/C++ Awesome Pack ­ Contains some awesome c++ codes, packed in one.

Other Awesome ListsOther amazingly awesome lists

lists ­ List of (awesome) lists curated on GitHub.

awesome­awesomeness ­ A curated list of awesome awesomeness.

Page 34: Awesome C_C++

awesome ­ A curated list of awesome lists.

Awesome C ­ A curated list of awesome C frameworks, libraries, resources and other shiny things.

free­programming­books ­ List of Freely Available Programming Books.

papers­we­love ­ Papers from the computer science community to read and discuss.

awesome­algorithms ­ A curated list of awesome places to learn and/or practice algorithms.

awesome­talks ­ A lot of screencasts, recordings of user group gatherings and conference talks.

Projects ­ A list of practical projects that anyone can solve in any programming language.

ContributingPlease see CONTRIBUTING for details.