# Awesome C/C++ A curated list of awesome C/C++ frameworks, libraries, resources, and shiny things. Inspired by awesome-... stuff. - [Awesome C/C++](#awesome-cpp) - [Standard Libraries](#standard-libraries) - [Frameworks](#frameworks) - [Artificial Intelligence](#artificial-intelligence) - [Asynchronous Event Loop](#asynchronous-event-loop) - [Audio](#audio) - [Compression](#compression) - [Concurrency](#concurrency) - [Containers](#containers) - [Cryptography](#cryptography) - [Database](#database) - [Debug](#debug) - [Game Engine](#game-engine) - [GUI](#gui) - [Graphics](#graphics) - [Imaging](#imaging) - [Internationalization](#internationalization) - [JSON](#json) - [Logging](#logging) - [Machine Learning](#machine-learning) - [Math](#math) - [Mocking](#mocking) - [Multimedia](#multimedia) - [Networking](#networking) - [Physics](#physics) - [Scripting](#scripting) - [Serialization](#serialization) - [Web Application Framework](#web-application-framework) - [XML](#xml) - [Miscellaneous](#miscellaneous) - [Software](#software) - [Compiler](#compiler) - [Online Compiler](#online-compiler) - [Debugger](#debugger) - [Integrated Development Environment](#integrated-development-environment) - [Static Code Analysis](#static-code-analysis) - [Resources](#resources) - [Articles](#articles) - [Books](#books) - [Coding Style](#coding-style) - [Videos](#videos) - [Websites](#websites) - [Other Awesome Lists](#other-awesome-lists) - [Contributing](#contributing) ## Standard Libraries *C++ Standard Library - including STL Containers, STL Aglorithm, STL Functional, etc.* * [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. * [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/) ## 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](https://github.com/boostorg) - A large collection of generic C++ libraries. - [website](http://www.boost.org/) * [BDE](https://github.com/bloomberg/bde) - The BDE Development Environment from Bloomberg Labs. * [Cinder](http://libcinder.org/) - A community-developed, free and open source library for professional-quality creative coding. * [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. * [libPhenom](https://github.com/facebook/libphenom) - libPhenom is an eventing framework for building high performance and high scalability systems in C. * [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. ## Asynchronous Event Loop * [Boost.Asio](http://think-async.com/) - A cross-platform C++ library for network and low-level I/O programming. * [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. * [libevent](http://libevent.org/) - An event notification library. * [libuv](https://github.com/joyent/libuv) - Cross-platform asychronous I/O. ## Audio *Audio, Sound, Music, Digitized Voice Libraries* * [FMOD](http://www.fmod.org/) - An easy to use crossplatform audio engine and audio content creation tool for games. * [Maximilian](https://github.com/micknoise/Maximilian) - C++ Audio and Music DSP Library. * [OpenAL](http://www.openal.org/) - Open Audio Library - A crossplatform audio API. ## Compression *Compression and Archiving Libraries* * [bzip2](http://www.bzip.org/) - A freely available, patent free, high-quality data compressor. * [doboz](https://bitbucket.org/attila_afra/doboz/overview) - Compression library with very fast decompression. * [LZ4](https://code.google.com/p/lz4/) - Extremely Fast Compression algorithm. * [LZHAM](https://code.google.com/p/lzham/) - Lossless data compression library with a compression ratio similar to LZMA but with much faster decompression. * [LZMA](http://www.7-zip.org/sdk.html) - The default and general compression method of 7z format. * [LZMAT](http://www.matcode.com/lzmat.htm) - An extremely fast real-time lossless data compression library. * [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. * [Minizip](https://github.com/nmoinvaz/minizip) - Zlib with latest bug fixes that supports PKWARE disk spanning, AES encryption, and IO buffering. * [Snappy](https://code.google.com/p/snappy/) - A fast compressor/decompressor. * [ZLib](http://zlib.net/) - A very compact compression library for data streams. * [ZZIPlib](http://zziplib.sourceforge.net/) - Provides read access on ZIP-archives. ## Concurrency *Concurrency and Multithreading* * [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. * [Intel TBB](https://www.threadingbuildingblocks.org/) - Intel® Threading Building Blocks. * [OpenCL](https://www.khronos.org/opencl/) - The open standard for parallel programming of heterogeneous systems. * [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. * [VexCL](https://github.com/ddemidov/vexcl) - A C++ vector expression template library for OpenCL/CUDA. ## 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. ## Cryptography *Cryptography and Encryption Libraries* * [Crypto++](http://www.cryptopp.com/) - A free C++ class library of cryptographic schemes. * [LibTomCrypt](https://github.com/libtom/libtomcrypt) - A fairly comprehensive, modular and portable cryptographic toolkit. * [libsodium](https://github.com/jedisct1/libsodium) - P(ortable|ackageable) NaCl-based crypto library, opinionated and easy to use. * [OpenSSL](http://www.openssl.org/) - A robust, commercial-grade, full-featured, and Open Source cryptography library. ## Database *Database Libraries, SQL Servers, ODBC Drivers, and Tools* * [hiberlite](https://github.com/paulftw/hiberlite) - C++ Object-relational mapping for sqlite3. * [Hiredis](https://github.com/redis/hiredis) - A minimalistic C client library for the Redis database. * [LMDB](http://symas.com/mdb/) - Very fast embedded key/value store with full ACID semantics. * [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. * [SQLite](http://www.sqlite.org/) - A completely embedded, full-featured relational database in a few 100k that you can include right into your project. ## Debug *Debugging Libraries, Memory Leak and Resource Leak Detection, Unit Testing* * [Catch](https://github.com/philsquared/Catch) - A modern, C++-native, header-only, framework for unit-tests, TDD and BDD. * [CppUnit](http://sourceforge.net/projects/cppunit/) - C++ port of JUnit. * [googletest](http://code.google.com/p/googletest/) - Google C++ Testing Framework. ## Game Engine * [Cocos2d-x](http://www.cocos2d-x.org/) - A multi-platform framework for building 2d games, interactive books, demos and other graphical applications. * [Irrlicht](http://irrlicht.sourceforge.net/) - An open source high performance realtime 3D engine written in C++. * [Polycode](http://polycode.org/) - Open-Source Framework for creating games in C++ (with Lua bindings).. ## 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+. * [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. * [Ncurses](http://invisible-island.net/ncurses/) - A terminal user interfaces. * [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. * [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. ## Graphics * [bgfx](https://github.com/bkaradzic/bgfx) - A cross-platform rendering library. * [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. * [Horde3D](https://github.com/horde3d/Horde3D) - A small 3D rendering and animation engine. * [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++ . * [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) ## 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'. ## JSON * [frozen](https://github.com/cesanta/frozen) - :star: 20+ - JSON parser and generator for C/C++. * [Jansson](https://github.com/akheron/jansson) - :star: 650+ - C library for encoding, decoding and manipulating JSON data. * [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. * [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. ## 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. ## Machine Learning * [Caffe](https://github.com/BVLC/caffe) - A fast framework for neural networks. * [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. * [OpenCV](https://github.com/Itseez/opencv) - Open Source Computer Vision Library. - [website](http://opencv.org/) * [Recommender](https://github.com/GHamrouni/Recommender) - C library for product recommendations/suggestions using collaborative filtering (CF). * [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. ## Math * [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. * [cml](http://cmldev.net/) - free C++ math library for games and graphics. * [Eigen](http://eigen.tuxfamily.org/index.php) - C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms. ## 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. * [libVLC](https://wiki.videolan.org/LibVLC) - libVLC (VLC SDK) media framework. * [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++. * [Boost.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. * [Muduo](https://github.com/chenshuo/muduo) - A C++ non-blocking network library for multi-threaded server in Linux. * [net_skeleton](https://github.com/cesanta/net_skeleton) - TCP client/server library for C/C++. * [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. * [Onion](https://github.com/davidmoreno/onion) - HTTP server library in C designed to be lightweight and easy to use. * [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. * [Tufão](https://github.com/vinipsmaker/tufao) - An asynchronous web framework for C++ built on top of Qt. * [WebSocket++](https://github.com/zaphoyd/websocketpp) - C++/Boost Asio based websocket client/server library. * [ZeroMQ](http://zeromq.org/) - High-speed, modular asynchronous communication library. ## Physics *Dynamics simulation engines* * [Box2D](https://code.google.com/p/box2d/) - A 2D physics engine for games. * [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/) * [LiquidFun](https://github.com/google/liquidfun) - A 2D physics engine for games. * [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. ## Scripting * [ChaiScript](https://github.com/ChaiScript/ChaiScript/) - An easy to use embedded scripting language for C++. - [website](http://chaiscript.com/) * [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. * [SWIG](http://www.swig.org/) - a wrapper/interface Generator that let you link your c++ code to Javascript, Perl, PHP, Python, Tcl and Ruby. * [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. ## Serialization * [Cap'n Proto](http://kentonv.github.io/capnproto/) - Fast data interchange format and capability-based RPC system. * [cereal](https://github.com/USCiLab/cereal) - A C++11 library for serialization. * [FlatBuffers](https://github.com/google/flatbuffers) - A Memory efficient serialization library. * [MessagePack](https://github.com/msgpack/msgpack-c) - Efficient binary serialization format "like JSON" for C/C++. - [website](http://msgpack.org/) * [protobuf](http://code.google.com/p/protobuf/) - Protocol Buffers - Google's data interchange format. ## Web Application Framework * [CppCMS](http://cppcms.com/) - A Free High Performance Web Development Framework (not a CMS). * [Crow](https://github.com/ipkn/crow) - Crow is C++ micro web framework (inspired by Python Flask). * [Kore](https://kore.io/) - ultra fast and flexible web server / framework for web applications developed in C. * [libOnion](http://www.coralbits.com/libonion/) - lightweight library to help you create webservers in C programming language. * [Wt](http://www.webtoolkit.eu/wt) - A C++ library for developing web applications. ## XML *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* * [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++. ## Miscellaneous *Useful libraries or tools that don't fit in the categories above or maybe just not categorised yet* * [C++ Format](https://github.com/cppformat/cppformat) - Small, safe and fast formatting library for C++. * [casacore](https://code.google.com/p/casacore/) - A set of c++ core libraries derived from aips++. * [cxx-prettyprint](https://github.com/louisdx/cxx-prettyprint) - A pretty printing library for C++ containers. * [DynaPDF](http://www.dynaforms.com/) - An easy-to-use PDF generation library. * [HTTP Parser](https://github.com/joyent/http-parser) - A http request/response parser for C. * [libcpuid](https://github.com/anrieff/libcpuid) - A small C library for x86 CPU detection and feature extraction. * [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++. * [Serial Communication Library](https://github.com/wjwwood/serial) - Cross-platform, Serial Port library written in C++. * [SDS](https://github.com/antirez/sds) - Simple Dynamic Strings library for C. * [SLDR](https://github.com/cesanta/sldr) - Super Light DNS Resolver. * [SLRE](https://github.com/cesanta/slre) - Super Light Regular Expression library. * [Stage](https://github.com/rtv/Stage) - Mobile robot simulator. * [VarTypes](https://code.google.com/p/vartypes/) - A feature-rich, object-oriented framework for managing variables in C++ / Qt4. * [ZBar](http://zbar.sourceforge.net/) - A barcode scanner library, which allows to scan photos/images/video streams for barcodes and return their value. * [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. * [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. * [PHP-CPP](https://github.com/CopernicaMarketingSoftware/PHP-CPP) - A library to build PHP extensions with C++. - [website](http://www.php-cpp.com/) # Software *Software for creating a development environment.* ## Compiler *List of C/C++ compilers* * [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. * [LLVM](http://llvm.org/) - Collection of modular and reusable compiler and toolchain technologies. ## 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. ## 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 *List of C/C++ nominal IDEs.* * [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. * [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. ## 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. # Resources *Various resources, such as books, websites, and articles for improving your C++ development skills and knowledge.* ## Articles *Fantastic C/C++ related articles.* * [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. ## Books *Fantastic C/C++ related books.* * [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++. * [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++. * [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. ## 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) ## Videos *Fantastic C/C++ related videos.* * [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. ## Websites *Useful C/C++ related websites.* * [C++ reference](http://cppreference.com/) - C++98, C++03, C++11, C++14 reference. * [cplusplus.com](http://www.cplusplus.com/) - The C++ Resources Network. * [Standard C++](http://isocpp.org/) - News, Status & Discussion about Standard C++. ## Other Awesome Projects *Collection of useful codes, snippets, ...* * [algorithms](https://github.com/xtaci/algorithms) - Algorithms & Data Structures in C++. * [c-algorithms](https://github.com/fragglet/c-algorithms) - C algorithms library. * [C/C++ Awesome Pack](https://github.com/junian/CppAwesomePack) - Contains some awesome c++ codes, packed in one. # Other Awesome Lists *Other amazingly awesome lists* * [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 * [awesome-talks](https://github.com/JanVanRyswyck/awesome-talks) - A lot of screencasts, recordings of user group gatherings and conference talks. * [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. # Contributing Please see [CONTRIBUTING](https://github.com/fffaraz/awesome-cpp/blob/master/CONTRIBUTING.md) for details.