Bu sayfa altında ağırlıklı olarak C++ kütüphanelerini sıralayacağım. Örnek bir liste için http://en.cppreference.com/w/cpp/links/libs sayfasına da başvurabilirsiniz.
Bu sayfa sürekli güncellenecektir. Bu arada başlıklara linkleri ekleme işim de sırada 🙂 İçeriğin büyük bir kısmı ingilizce henüz güncellemeye fırsatım olmadı, yavaş yavaş güncelleyeceğim.
İçerik
- 0.1 Makaleler
- 0.2 Standart Kütüphaneler
- 0.3 Frameworkler
- 0.4 Yapay Zeka
- 0.5 Asenkron Olay Yönetimi
- 0.6 Ses
- 0.7 Biyoloji
- 0.8 BitTorrent
- 0.9 Konsol/CLI
- 0.10 Sıkıştırma
- 0.11 Concurrency/Multithreading
- 0.12 Konteynırlar
- 0.13 Kriptografi
- 0.14 Veritabanları
- 0.15 Hata Ayıklama/Test/Birim Test
- 0.16 Oyun Motorları
- 0.17 GUI/GKA
- 0.18 Grafik
- 0.19 Resim İşleme
- 0.20 Internationalization
- 0.21 Inter-process communication
- 0.22 JSON
- 0.23 Logging
- 0.24 Machine Learning
- 0.25 Math
- 0.26 Multimedia
- 0.27 Networking
- 0.28 PDF
- 0.29 Physics
- 0.30 Regular Expression
- 0.31 Robotics
- 0.32 Scientific Computing
- 0.33 Scripting
- 0.34 Serialization
- 0.35 Video
- 0.36 Virtual Machines
- 0.37 Web Application Framework
- 0.38 XML
- 0.39 Miscellaneous
- 1 Software
- 2 Resources
- 3 Other Awesome Lists
Makaleler
C++ ile ilgili bir takım sunum ve dokümanlar. Son eklenenler başa:
- C++ 17 Kabiliyetlerinin Özeti – C++ 17 Kabiliyetlerinin Özeti
- CppCon 2017 Presentation Materials – CppCon 2017 Presentation Materials.
- CppCon 2016 Presentation Materials – CppCon 2016 Presentation Materials.
- CppCon 2015 Presentation Materials – CppCon 2015 Presentation Materials.
- CppCon 2014 Presentation Materials – CppCon 2014 Presentation Materials.
- C++Now 2016 Presentations – Presentation materials for C++Now 2016.
- C++Now 2015 Presentations – Presentation materials presented at C++Now 2015.
- C++Now 2014 Presentations – Presentation materials presented at C++Now 2014.
- C++Now 2013 Presentations – Presentation materials presented at C++Now 2013.
- C++Now 2012 Presentations – Presentation materials presented at C++Now 2012.
Standart Kütüphaneler
C++ 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 and part 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.
Frameworkler
C++ generic frameworks and libraries.
- abseil-cpp – Abseil C++ Common Libraries. [Apache2]
- Apache C++ Standard Library – STDCXX, A collection of algorithms, containers, iterators, and other fundamental components. [retired] [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 ⚡ – A large collection of generic C++ libraries. [Boost] website
- BDE – The BDE Development Environment from Bloomberg Labs. [Apache2]
- 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]
- Dlib ⚡ – A general purpose cross-platform C++ library designed using contract programming and modern C++ techniques. [Boost] website
- EASTL – Electronic Arts Standard Template Library. [BSD]
- ffead-cpp – Framework for Enterprise Application Development. [Apache2]
- Folly – An open-source C++ library developed and used at Facebook. [Apache2]
- GLib – GLib provides the core application building blocks for libraries and applications written in C. [LGPL]
- 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 systems in C. [Apache2]
- LibSourcey – C++11 evented IO for real-time video streaming and high performance networking applications. [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 ⚡ – A cross-platform application and UI framework. [GPL/LGPL/Commercial]
- 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++. [GPL2]
- ROOT – A set of OO frameworks with all the functionality needed to handle and analyze large amounts of data in a very efficient way. Used at CERN. [LGPL]
- STLport – An exemplary version of STL. [Free]
- STXXL – Standard Template Library for Extra Large Data Sets. [Boost]
- tbox – A glib-like multi-platform c library. [Apache2] website
- 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]
Yapay Zeka
- ANNetGPGPU – A GPU (CUDA) based Artificial Neural Network library. [LGPL]
- btsk – Game Behavior Tree Starter Kit. [zlib]
- Evolving Objects – A template-based, ANSI-C++ evolutionary computation library which helps you to write your own stochastic optimization algorithms insanely fast. [LGPL]
- Recast/Detour – (3D) Navigation mesh generator and pathfinder, mostly for games. [zlib]
- TensorFlow – An open source software library for numerical computation using data flow graphs [Apache]
- CNTK – Microsoft Cognitive Toolkit (CNTK), an open source deep-learning toolkit. [Boost]
- tiny-dnn – A header only, dependency-free deep learning framework in C++11. [BSD]
- Veles – Distributed platform for rapid Deep learning application development. [Apache]
- Kaldi – Toolkit for speech recognition. [Apache]
Asenkron Olay Yönetimi
- Asio – A cross-platform C++ library for network and low-level I/O programming that provides developers with a consistent asynchronous model using a modern C++ approach. [Boost] website
- Boost.Asio – A cross-platform C++ library for network and low-level I/O programming. [Boost]
- C++ Actor Framework – An Open Source Implementation of the Actor Model in C++. [BSD-3-Clause] website
- libev – A full-featured and high-performance event loop that is loosely modelled after libevent, but without its limitations and bugs. [BSD and GPL]
- libevent – An event notification library. [BSD]
- libuv – Cross-platform asychronous I/O. [BSD]
- uvw – C++ wrapper for libuv. [MIT]
Ses
Audio, Sound, Music, Digitized Voice Libraries
- FMOD – An easy to use crossplatform audio engine and audio content creation tool for games. [Free for non-commercial/Commercial]
- KFR – Fast, modern C++ DSP framework, FFT, FIR/IIR filters, Sample Rate Conversion. [GPL/Commercial]
- 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]
- SELA – SimplE Lossless Audio. [MIT]
- 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 compressed audio format. [BSD]
Biyoloji
Bioinformatics, 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]
BitTorrent
- jech/dht – BitTorrent DHT library in C. [MIT]
- libtorrent (a.k.a. libtorrent-rasterbar) – An efficient feature complete C++ bittorrent implementation. [BSD]
- LibTorrent (a.k.a. libtorrent-rakshasa) – BitTorrent library. [GPL]
- libutp – uTorrent Transport Protocol library. [MIT]
Konsol/CLI
Console/Terminal User Interface, Command Line Interface
- Argh! – A minimalist, frustration-free, header-only argument handler. [BSD]
- Taywee/args – A simple header-only C++ argument parser library. [MIT]
- Boost.Program_options – A library to obtain program options via conventional methods such as command line and config file. [Boost]
- jarro2783/cxxopts – Lightweight C++ command line option parser. [MIT]
- docopt.cpp – A library to generate option parser from docstring. [MIT/Boost]
- gflags – Commandline flags module for C++. [BSD]
- Ncurses – A terminal user interfaces. [MIT]
- PDCurses – Public domain curses library with both source code and pre-compiled library available. [PublicDomain]
- TCLAP – A mature, stable and feature-rich library for defining and accessing command line arguments in ANSI C++. [MIT]
- termbox – A C library for writing text-based user interfaces. [BSD]
Sıkıştırma
Compression and Archiving Libraries
- Brotli – Brotli compression format. Developed by Google. [MIT]
- bzip2 – A freely available, patent free, high-quality data compressor. [BSD]
- FiniteStateEntropy – New generation entropy codecs : Finite State Entropy and Huff0.
- 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 also provides transparent compression and decompression of data, using formats like gzip, via a subclass of QIODevice. [LGPL]
- LZ4 – Extremely Fast Compression algorithm. [BSD]
- LZFSE – LZFSE compression library and command line tool. Developed by Apple.
- LZHAM – Lossless data compression library with a compression ratio similar to LZMA but with much faster decompression. [BSD]
- LZMA ⚡ – 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 archive reading/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]
- zlib-ng – zlib for the “next generation” systems. Drop-In replacement with some serious optimizations. [zlib]
- zstd – Zstandard – Fast real-time compression algorithm. Developed by Facebook. [BSD]
- ZZIPlib – Provides read access on ZIP-archives. [MPL/LGPL]
Concurrency/Multithreading
Concurrency and Multithreading
- alpaka – Abstraction library for parallel kernel acceleration. [LGPLv3+]
- ArrayFire – A general purpose GPU library. [BSD]
- Boost.Compute – A C++ GPU Computing Library for OpenCL. [Boost]
- Bolt – A C++ template library optimized for GPUs. [Apache2]
- ck – Concurrency primitives, safe memory reclamation mechanisms and non-blocking data structures. [BSD]
- concurrentqueue – A fast multi-producer, multi-consumer lock-free concurrent queue for C++11. [BSD,Boost]
- CUB – CUB provides state-of-the-art, reusable software components for every layer of the CUDA programming mode. [New BSD]
- cupla – C++ API to run CUDA/C++ on OpenMP, Threads, TBB, … through Alpaka. [LGPLv3+]
- C++React – A reactive programming library for C++11. [Boost]
- Intel TBB – Intel® Threading Building Blocks. [Apache2]
- junction – A library of concurrent data structures in C++. [BSD]
- libcds – A C++ library of Concurrent Data Structures. [BSD]
- Libclsph – An OpenCL based GPU accelerated SPH fluid simulation library. [MIT]
- libdill – Introduces structured concurrency in C. [MIT]
- libmill – Introduces Go-style concurrency in C. [MIT]
- moderngpu – moderngpu is a productivity library for general-purpose computing on GPUs. It is a header-only C++ library written for CUDA. The unique value of the library is in its accelerated primitives for solving irregularly parallel problems. [FreeBSD & Copyright, Sean Baxter]
- NCCL – Optimized primitives for collective multi-GPU communication. [BSD]
- OpenCL – The open standard for parallel programming of heterogeneous systems.
- OpenMP – The OpenMP API.
- RaftLib – The RaftLib C++ library, streaming/dataflow concurrency via C++ iostream-like operators [Apache2]
- readerwriterqueue – A fast single-producer, single-consumer lock-free queue for C++. [BSD]
- 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]
Konteynırlar
- C++ B-tree – A template library that implements ordered in-memory containers based on a B-tree data structure. [Apache2]
- Hashmaps – Implementation of open addressing hash table algorithms in C++. [MIT]
- Hopscotch map – A fast header-only hash map which uses hopscotch hashing for collisions resolution. [MIT]
- LSHBOX – A c++ toolbox of locality-sensitive hashing (LSH), provides several popular LSH algorithms, also support Python and MATLAB. [GPL]
Kriptografi
Cryptography and Encryption Libraries
- Bcrypt – A cross platform file encryption utility. Encrypted files are portable across all supported operating systems and processors. [BSD]
- BeeCrypt – A portable and fast cryptography library. [LGPLv2.1+]
- Botan – A crypto library for C++. [BSD-2]
- Crypto++ – A free C++ class library of cryptographic schemes. [Boost] website
- 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 – A general purpose cryptographic library originally based on code from GnuPG. [LGPLv2.1+]
- libhydrogen – A lightweight, secure, easy-to-use crypto library for constrained environments. [ISC]
- 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]
- mbedTLS – An open source, portable, easy to use, readable and flexible SSL library, previously known as PolarSSL. [Apache2] website
- Nettle – A low-level cryptographic library. [LGPL]
- OpenSSL – A robust, commercial-grade, full-featured, and Open Source cryptography library. [Apache] website
- retter – A collection of hash functions, ciphers, tools, libraries, and materials related to cryptography.
- s2n – An implementation of the TLS/SSL protocols. [Apache]
- Tiny AES128 in C – A small and portable implementation of the AES128 ECB encryption algorithm implemented in C. [PublicDomain]
- Themis – crypto library for painless data security, providing symmetric and asymmetric encryption, secure sockets with forward secrecy, for mobile and server platforms. [Apache2]
Veritabanları
Database Libraries, SQL Servers, ODBC Drivers, and Tools
- 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 written at Google that provides an ordered mapping from string keys to string values. [BSD]
- LMDB – Very fast embedded key/value store with full ACID semantics. [OpenLDAP]
- LMDB++ – C++11 wrapper for the LMDB embedded database library. [PublicDomain]
- MongoDB C Driver – MongoDB client library for C. [Apache2]
- MongoDB C++ Driver – C++ driver for MongoDB. [Apache2]
- MongoDB Libbson – A BSON utility library. [Apache2]
- MySQL++ – A C++ wrapper for MySQL’s C API. [LGPL]
- redis3m – Wrapper of hiredis with clean C++ interface, supporting sentinel and ready to use patterns. [Apache2]
- RocksDB – Embedded key-value store for fast storage from facebook. [BSD]
- SimDB – High performance, shared memory, lock free, cross platform, single file, minimal dependencies, C++11 key-value store [Apache2]
- SQLite – A completely embedded, full-featured relational database in a few 100k that you can include right into your project. [PublicDomain]
- sqlite_modern_cpp – Header only C++14 wrapper around sqlite library. [MIT]
- sqlite_orm – SQLite ORM light header only library for modern C++. [BSD-3-Clause]
- upscaledb – An embedded “typed” key/value store with a built-in query interface. [GPLv3]
Hata Ayıklama/Test/Birim Test
Debugging Libraries, Memory Leak and Resource Leak Detection, Unit Testing
- backward-cpp – A beautiful stack trace pretty printer for C++. [MIT]
- benchmark – Google provided small microbenchmark support library. [Apache2]
- Boost.Test – Boost Test Library. [Boost]
- doctest – The lightest feature rich C++ single header testing framework. [MIT]
- Catch – A modern, C++-native, header-only, framework for unit-tests, TDD and BDD. [Boost]
- Catch2 – A modern, C++-native, header-only, test framework for unit-tests, TDD and BDD. [BSL-1.0]
- Celero – C++ Benchmarking Framework. [Apache2]
- CppUTest – Unit testing and mocking framework for C/C++. [BSD-3-clause]
- CUTE – C++ Unit Testing Easier. [LGPL3]
- 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]
- fff – A micro-framework for creating fake C functions. [MIT]
- Google Mock – A library for writing and using C++ mock classes. [BSD]
- Google Test – 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/C++ self-contained in a single header file. [MIT]
- Mockator – Eclipse CDT plug-in for C++ Seams and Mock Objects.
- Remotery – Single C File Profiler with Web Viewer. [Apache2]
- UnitTest++ – A lightweight unit testing framework for C++. [MIT/X Consortium license]
- utest.h – Single header unit testing framework for C and C++. [Unlicense]
- VLD – Visual Leak Detector. A free, robust, open-source memory leak detection system for Visual C++.
Oyun Motorları
- 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 other graphical applications. [MIT]
- 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]
- KlayGE – a cross-platform open source game engine with plugin-based architecture. [GPLv2] website
- Oxygine – A cross-platform 2D C++ game engine. [MIT]
- Panda3D – A game engine, a framework for 3D rendering and game development for Python and C++ programs. [Modified BSD] website
- Polycode – A cross-platform framework for creative code in C++ (with Lua bindings). [MIT] website
- 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
- Urho3D – A free lightweight, cross-platform 2D and 3D game engine implemented in C++. Greatly inspired by OGRE and Horde3D. [MIT]
GUI/GKA
Graphic User Interface
- CEGUI – Flexible, cross-platform GUI library.
- FLTK – Fast, light, cross-platform C++ GUI toolkit. [GPL2]
- GacUI – GPU Accelerated C++ User Interface, with WYSIWYG developing tools, XML supports, built-in data binding and MVVM features. [Ms-PL]
- 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]
- libui – Simple and portable (but not inflexible) GUI library in C that uses the native GUI technologies of each platform it supports. [MIT]
- MyGUI – Fast, flexible and simple GUI. [MIT]
- nana – Nana is a cross-platform library for GUI programming in modern C++ style. [Boost]
- NanoGui – A minimalistic cross-platform widget library for OpenGL 3.x or higher. [BSD]
- nuklear – A single-header ANSI C gui library. [PublicDomain]
- 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 of 3D-widgets. [zlib]
- Sciter – Sciter is an embeddable HTML/CSS/scripting engine aimed to be used as an UI layer of modern desktop applications. [Free/Commercial]
- wxWidgets – A C++ library that lets developers create applications for Windows, Mac OS X, Linux and other platforms with a single code base. [Own LGPL]
- Yue – A library for creating native cross-platform GUI apps. [LGPLv2]
Grafik
- bgfx – A cross-platform rendering library. [BSD]
- Cairo – A 2D graphics library with support for multiple output devices. [LGPL2 or Mozilla MPL]
- DirectXTK – A collection of helper classes for writing DirectX 11.x code in C++. [MIT]
- GLFW – A simple, cross-platform OpenGL wrangling library. [zlib/libpng]
- herebedragons – A basic 3D scene implemented with various engines, frameworks or APIs. [MIT] website
- Horde3D – A small 3D rendering and animation engine. [EPL]
- Ion – A small and efficient set of libraries for building cross-platform client or server applications that use 3D graphics. [Apache2] website
- Irrlicht – A high performance realtime 3D engine written in C++. [zlib]
- magnum – C++11 and OpenGL 2D/3D graphics engine. [MIT] website
- Ogre 3D ⚡ – 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]
- OpenSubdiv – Pixar’s library for evaluating and rendering subdivision surfaces on CPU and GPU. [Modified Apache2]
- OpenVDB – Library and tools for storing, editing, and rendering volumetric datasets. [MPL2]
- Panda3D – A framework for 3D rendering and game development for Python and C++. [BSD]
- Partio – Library for wrangling particle data, with support for most common file formats. [Modified 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]
Resim İşleme
- 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 by today’s multimedia applications. [GPL2 or GPL3]
- GD – GD Graphics Library, famously used in PHP for image loading/manipulation & thumbnail generation. [custom permissive license, requires mention in user docs] website
- DCMTK – DICOM Toolkit.
- GDCM – Grassroots DICOM library.
- ITK – An open-source, cross-platform system for image analysis. [Apache2 from ITK 4.0]
- libvips – A fast image processing library with low memory needs. [LGPL] website
- Magick++ – ImageMagick program interfaces for C++. [Apache2]
- MagickWnd – ImageMagick program interfaces for C. [Apache2]
- OpenCV ⚡ – Open source computer vision. [BSD]
- OpenEXR – Cross-platform library for high dynamic range imaging. [Modified BSDF]
- OpenImageIO – Powerful image and texture wrangling library with support for a wide number of common lossy and RAW formats. [Modified BSD]
- tesseract-ocr – An OCR engine. [Apache2]
- Video++ – A C++14 high performance video and image processing library. [MIT]
- 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 and visualization. [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]
- utf8.h – Single header utf8 string functions for C and C++. [Unlicense]
Inter-process communication
- Apache Thrift – Efficient cross-language IPC/RPC, works between C++, Java, Python, PHP, C#, and many more 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
- 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]
- WAMP – Provides RPC and pub/sub messaging patterns. (various implementations, various languages)
- 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]
- json.h – A simple one header/one source solution to parsing JSON in C and C++. [Unlicense]
- json-c – A JSON implementation 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]
- 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 ⚡ – 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 ⚡ – A fast JSON parser/generator for C++ with both SAX/DOM style API. [MIT]
- ujson – µjson is a a small, C++11, UTF-8, JSON library. [MIT]
- YAJL – A fast streaming JSON parsing library in C. [ISC]
Logging
- Blackhole – Attribute-based logging framework, which is designed to be fast, modular and highly customizable. [MIT]
- Boost.Log – Designed to be very modular and extensible. [Boost]
- Easylogging++ – Single header only, extremely light-weight high performance logging library for C++11 (or higher) applications. [MIT] website
- G3log – Asynchronous logger with Dynamic Sinks. [PublicDomain]
- glog – C++ implementation of the Google logging module.
- 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 control over log management and configuration. [BSD & Apache2]
- plog – Portable and simple C++ logging library. [MPL2]
- reckless – Low-latency, high-throughput, asynchronous logging library for C++. [MIT]
- 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]
Machine Learning
- Caffe – A fast framework for neural networks. [BSD]
- Caffe2 – A lightweight, modular, and scalable deep learning framework. [Apache2] website
- CCV – C-based/Cached/Core Computer Vision Library, A Modern Computer Vision Library. [BSD]
- Fido – A highly-modular C++ machine learning library for embedded electronics and robotics. [MIT] website
- MeTA – A modern C++ data sciences toolkit. [MIT] website
- Minerva – A fast and flexible system for deep learning. [Apache2]
- mlpack – A scalable c++ machine learning library. [LGPLv3] website
- OpenCV ⚡ – Open Source Computer Vision Library. [BSD] website
- Recommender – C library for product recommendations/suggestions using collaborative filtering (CF). [BSD]
- RNNLIB – RNNLIB is a recurrent neural network library for sequence learning problems. [GPLv3]
- 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 linear algebra library (matrix maths) for the C++ language, aiming towards a good balance between speed and ease of use. The syntax (API) is deliberately similar to Matlab. [MPL2] website
- blaze – high-performance C++ math library for dense and sparse arithmetic. [BSD]
- Boost.Multiprecision – provides higher-range/precision integer, rational and floating-point types in C++, header-only or with GMP/MPFR/LibTomMath backends. [Boost]
- ceres-solver – C++ library for modeling and solving large complicated nonlinear least squares problems from google. [BSD]
- CGAL – Collection of efficient and reliable geometric algorithms. [LGPL&GPL] website
- 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]
- ExprTK – The C++ Mathematical Expression Toolkit Library (ExprTk) is a simple to use, easy to integrate and extremely efficient run-time mathematical expression parser and evaluation engine. [MIT]
- GLM – Header-only C++ math library that matches and inter-operates with OpenGL’s GLSL math. [MIT]
- GMTL – Graphics Math Template Library is a collection of tools implementing Graphics primitives in generalized ways. [GPL2]
- GMP – A C/C++ library for arbitrary precision arithmetic, operating on signed integers, rational numbers, and floating-point numbers. [LGPL3 & GPL2]
- MIRACL – A Multiprecision Integer and Rational Arithmetic Cryptographic Library. [AGPL]
- muparser – muParser is an extensible high performance math expression parser library written in C++. [MIT]
- NT2 – A SIMD-optimized numerical template library that provides an interface with MATLAB-like syntax. [Boost]
- LibTomMath – A free open source portable number theoretic multiple-precision integer library written entirely in C. [PublicDomain & WTFPL] website
- linmath.h – A lean linear math library, aimed at graphics programming. [WTFPL]
- OpenBLAS – An optimized BLAS library based on GotoBLAS2 1.13 BSD version. [BSD 3-clause] website
- QuantLib – A free/open-source library for quantitative finance. [Modified BSD] website
- Vc – SIMD Vector Classes for C++. [BSD]
- Versor – A (fast) Generic C++ library for Geometric Algebras, including Euclidean, Projective, Conformal, Spacetime (etc).
- Wykobi – A C++ library of efficient, robust and simple to use C++ 2D/3D oriented computational geometry routines. [MIT]
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]
- MediaInfoLib – Convenient unified display of the most relevant technical and tag data for video and audio files. [BSD]
- QtAv – A multimedia playback framework based on Qt and FFmpeg to write a player easily. [LGPL] website
- SDL ⚡ – Simple DirectMedia Layer. [zlib]
- SFML ⚡ – Simple and Fast Multimedia Library. [zlib] website
Networking
- ACE – An OO Network Programming Toolkit in C++. [?MIT?]
- Boost.Asio ⚡ – A cross-platform C++ library for network and low-level I/O programming. [Boost]
- Breep – Event based, high-level C++14 peer-to-peer library. [EUPL-1.1 (OSI approved)]
- C++ REST SDK – C++ REST SDK (previously named Casablanca). [Apache2]
- Restbed – C++11 Asynchronous RESTful framework. [AGPL]
- cpp-netlib – A collection of open-source libraries for high level network programming. [Boost]
- cpr – A modern C++ HTTP requests library with a simple but powerful interface. Modeled after the Python Requests module. [MIT] website
- curlcpp – An object oriented C++ wrapper for CURL(libcurl). [MIT]
- Dyad.c – Asynchronous networking for C. [MIT]
- HTTP Parser ⚡ – A http request/response parser for C. [MIT]
- libcurl – Multiprotocol file transfer library. [MIT/X derivate license]
- libjingle – Google talk voice and P2P interoperability library. [BSD]
- libquic – A QUIC protocol library extracted from Chromium’s QUIC Implementation. [BSD]
- libwebsockets – A lightweight pure C WebSocket implementation that provides both client and server libraries. [LGPL2.1 + static link exception] website
- Mongoose – Extremely lightweight webserver. [GPL2]
- Muduo – A C++ non-blocking network library for multi-threaded server in Linux. [BSD]
- nghttp2 – HTTP/2 C Library. [MIT] website
- nope.c – A C language-based ultra-light software platform for scalable server-side and networking applications. Think node.js for C programmers. [GPL2]
- Onion – HTTP server library in C designed to be lightweight and easy to use. [Apache2/GPL2]
- POCO ⚡ – C++ class libraries and frameworks for building network- and internet-based applications that run 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]
- Seasocks – Simple, small, C++ embeddable webserver with WebSockets support. [BSD]
- Silicon – A high performance, middleware oriented C++14 http web framework. [MIT]
- Tufão – An asynchronous web framework for C++ built on top of Qt. [LGPL2]
- uWebSockets – µWS is one of the most lightweight, efficient & scalable WebSocket & HTTP server implementations available. [Zlib]
- wdt – An embeddedable library (and command line tool) aiming to transfer data between 2 systems as fast as possible over multiple TCP paths. [BSD-3-Clause]
- WebSocket++ – C++/Boost Asio based websocket client/server library. [BSD]
Libraries for parsing and manipulating PDF documents.
- libharu – A free, cross platform, open-sourced software library for generating PDF. [zlib]
- MuPDF – A lightweight PDF, XPS, and E-book viewer. [AGPL/Commercial]
- Poppler – Open-source multi-backend PDF rendering library based on the xpdf-3.0 code base. [GPLv2/GPLv3]
Physics
Dynamics 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]
- ODE – Open Dynamics Engine – An open source, high performance library for simulating rigid body dynamics. [BSD&LGPL]
- ofxBox2d – openFrameworks wrapper for Box2D. [BSD-like]
- Simbody – High-performance C++ multibody dynamics/physics library for simulating articulated biomechanical and mechanical systems like vehicles, robots, and the human skeleton. [Apache2]
Regular Expression
- CppVerbalExpressions – C++ regular expressions made easy. [MIT]
- PCRE – A regular expression C library inspired by the regular expression capabilities in Perl. [BSD]
- RE2 – A software library for regular expressions via a finite-state machine using automata theory. [BSD-3-Clause]
- SLRE – Super Light Regexp engine for C/C++. [GPLv2/Commercial]
Robotics
- MOOS-IvP – A set of open source C++ modules for providing autonomy on robotic platforms, in particular autonomous 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 cloud processing [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 robot applications. [BSD]
Scientific Computing
- FFTW – A C library for computing the DFT in one or more dimensions. [GPL]
- GSL – GNU scientific library. [GPL]
- Trilinos – High performance PDE solvers. [BSD]
- Torch – A scientific computing framework with wide support for machine learning algorithms that puts GPUs first. [BSD-3-Clause] website
Scripting
- Boost.Python – A C++ library which enables seamless interoperability between C++ and the Python programming language. [Boost]
- cppimport – Import C++ files directly from Python! [MIT]
- CppSharp – Tools and libraries to glue C/C++ APIs to high-level languages. [MIT]
- ChaiScript – An easy to use embedded scripting language for C++. [BSD] website
- ctypes.sh – A foreign function interface for bash. [MIT]
- Cython – Cython is an optimising static compiler for both the Python programming language and the extended Cython programming language (based on Pyrex). It makes writing C extensions for Python as easy as Python itself. [Apache] website
- Duktape – An embeddable Javascript engine with compact footprint. [MIT] website
- JavaCpp – The missing bridge between Java and native C++. [Apache2]
- libffi – A portable foreign-function interface library. [MIT] website
- Lua – A minimal and fast scripting engine for configuration files and basic application scripting. [MIT]
- luacxx – C++11 API for creating Lua bindings. [MIT]
- nbind – Magical headers that make your C++ library accessible from JavaScript. [MIT]
- pybind11 – Seamless operability between C++11 and Python. [BSD]
- SIP – C/C++ Bindings Generator for Python v2 and v3. [GPL]
- SWIG – A wrapper/interface Generator that let you link your c++ code to Javascript, Perl, PHP, Python, Tcl and Ruby. [GPL/Output not licensed] website
- V7 – An embedded JavaScript engine. [GPL2]
- V8 – A fast JavaScript engine by Google that can be embedded into any C++ application. [BSD]
- ChakraCore -A JavaScript engine by Microsoft that can be embedded into nodejs. [MIT]
Serialization
- cereal – A C++11 library for serialization. [BSD]
- cppcodec – Header-only C++11 library to encode/decode base64, base32 and hex with consistent, flexible API. [MIT]
- 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-latency applications. [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
- 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 Lua support. [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]
- lwan – Experimental, scalable, high performance HTTP server. [GPL2]
- Pistache – Pistache is a C++ REST framework written in pure C++11 with no external dependency. [Apache2]
- QDjango – A web framework written in C++ and built on top of the Qt library. Where possible it tries to follow django’s API, hence its name. [LGPL]
- TreeFrog Framework – High-speed and full-stack web application framework based on C++ and Qt, which supports HTTP and WebSocket protocol (with O/R mapping). [BSD] website
- Wt – A C++ library for developing web applications. [GPL/Commercial]
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
- Boost.PropertyTree – A property tree parser/generator that can be used to parse XML/JSON/INI/Info files. [Boost]
- 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 and reasonable 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]
Miscellaneous
Useful libraries or tools that don’t fit in the categories above or maybe just not categorised yet
- access_profiler – A tool to count accesses to member variables in c++ programs. [GPL3]
- American fuzzy lop a.k.a. afl-fuzz – Crazy fuzzing tool that automatically discovers bugs given time and minimal example input. [Apache2]
- Better Enums – Reflective enums (to string, iteration). Single header. [BSD] website
- Better String – An alternative to the string library for C which is more functional and does not have buffer overflow overrun problems. Also includes a C++ wrapper. [BSD, GPL2]
- Boost.Signals – An implementation of a managed signals and slots system. [Boost]
- {fmt} ⚡ – Small, safe and fast formatting library for C++. [Simplified BSD]
- FastFormat – Fast, Safe C++ Formatting inspired by log4j and Pantheios [Simplified BSD]
- casacore – A set of c++ core libraries derived from aips++. [LGPL]
- 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.
- Kangaru – A dependency injection container for C++11 and C++14. [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]
- Mach7 – A Pattern-matching library for C++. [BSD]
- pdqsort – Pattern-defeating quicksort. [zlib]
- 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]
- semver.c – A semver parser and render in ANSI C. [MIT]
- Serial Communication Library – Cross-platform, Serial Port library written in C++. [MIT]
- sigslot – C++ Signal/Slot Library. [PublicDomain]
- Stage – Mobile robot simulator. [GPL2]
- stdman Formatted C++11/14 stdlib man pages (from cppreference). [MIT]
- stb ⚡ – A range of single-file libraries for C/C++. [PublicDomain]
- StrTk – A C++ library consisting of high performance string processing routines. [MIT]
- ub-canaries – A collection of C/C++ programs that try to get compilers to exploit undefined behavior.
- value-category-cheatsheet A PDF cheatsheet for lvalues, rvalues, and the like. [Jank copyleft]
- 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 and return their value. [LGPL2]
- ZXing – An open-source, multi-format 1D/2D barcode image processing library implemented in Java, with ports to other languages. [Apache]
Software
Software for creating a development environment.
Compiler
List 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 C++11/14/1z C11. Developed by LLVM Team. [NCSA]
- GCC – GNU Compiler Collection. Supports C++11/14/1z C11 and OpenMP. [GNU GPL3]
- PCC – A very old C compiler. Supports C99.
- 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 Public License]
- Oracle Solaris Studio – C, C++ and Fortran compiler for SPARC and x86. Supports C++11. Available on Linux and Solaris. [OTN Developer License]
- TCC – Tiny C Compiler. [LGPL]
Online Compiler
List 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 and execute 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 it online 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.
Debugger
List of C/C++ debuggers
- Comparison of debuggers – A list of Debuggers from Wikipedia.
- GDB – GNU Debugger.
- LLDB – The LLDB Debugger.
- Metashell – An interactive template metaprogramming shell which includes the MDB metadebugger.
- Valgrind – A tool for memory debugging, memory leak detection, and profiling.
- x64dbg – An open-source x64/x32 debugger for windows.
Integrated Development Environment
List 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 IDEA platform.
- Cevelop – Cross-platform C/C++ IDE based on Eclipse CDT with additional plug-ins.
- CLion – Cross-platform C/C++ IDE from JetBrains.
- Code::Blocks – A free C, C++ and Fortran IDE.
- CodeLite – Another cross-plaform, free C/C++ IDE. [GPL2 with an exception for plugins]
- color_coded – A vim plugin for libclang-based highlighting. [MIT]
- 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.
- juCi++ – Cross-platform, lightweight C++ IDE with libclang integration. [MIT]
- 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 ⚡ – 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
- Bazel – A multi-language, fast and scalable build system from Google. [Apache]
- Bear – A tool to generate compilation database for clang tooling. [GPLv3]
- cget – Cmake package retrieval used to download and install cmake packages. [Boost]
- CMake – Cross-platform free and open-source software for managing the build process of software using a compiler-independent method. [BSD]
- C++ Archive Network – Cross-platform C++ Dependency Manager with a lot of packages available.
- Conan – C/C++ Package Manager, open sourced. [MIT]
- CPM – A C++ Package Manager based on CMake and Git.
- FASTBuild – High performance, open-source build system supporting highly scalable compilation, caching and network distribution.
- MesonBuild – An open source build system meant to be both extremely fast, and, even more importantly, as user friendly as possible.
- Ninja – A small build system with a focus on speed.
- Scons – A software construction tool configured with a Python script.
- Sconsolidator – Scons build system integration for Eclipse CDT.
- tundra – High-performance code build system designed to give the best possible incremental build times even for very large software projects.
- tup – File-based build system that monitors in the background for changed files.
- Premake – A tool configured with a Lua script to generate project files for Visual Studio, GNU Make, Xcode, Code::Blocks, and more across Windows, Mac OS X, and Linux.
- Vcpkg – VC++ Packaging Tool for Windows.
Static Code Analysis
List of tools for improving quality and reducing defects by code analysis
- Cppcheck – A tool for static C/C++ code analysis. – source
- PVS-Studio – A tool for bug detection in the source code of programs, written in C, C++ and C#.
- cpp-dependencies – Tool to check C++ #include dependencies (dependency graphs created in .dot format). [Apache]
- include-what-you-use – A tool for use with clang to analyze includes in C and C++ source files. website
- Infer – A static analyzer for Java, C and Objective-C. [BSD]
- 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.
- Linticator – Eclipse CDT integration of Pc-/FlexeLint.
- List of tools for static code analysis – A list of tools for static code analysis from Wikipedia.
Coding Style Tools
- ClangFormat – A tool to format C/C++/Obj-C code.
- Clang-Tidy – Clang-based C++ linter tool.
- Uncrustify – Code beautifier.
Resources
Various resources, such as books, websites, and articles for improving your C++ development skills and knowledge.
API Design
Coding Style
- C++ Core Guidelines – “Official” set of C++ guidelines, reviewed by the author of C++.
- 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
- LLVM Coding Standards
Talks
- CppCon Talks ⚡ – The C++ conference.
- Quick game development with C++11/C++14 – CppCon 2014 talk by Vittorio Romeo.
- Presentation on Hana for C++Now 2015
Websites
Useful C/C++ related websites.
- Standard C++ ⚡ – 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.
- 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++
- C++ Quiz – C++ quiz in which you propose to find errors in code fragments of open source projects.
- Udemy C++ Courses and Tutorials
- C++ Hints – Every business day hints about most often C/C++ mistakes and ways to solve them from PVS-Studio Team.
- Hacking C++, cheatsheet, infograph, C++
Weblogs
Useful C/C++ related weblogs.
- Coding For Speed – Coding For Speed DOT COM, Less Execution Time.
- Eric Niebler
- Sticky Bits
- Paul Fultz II’s Blog
- ridiculousfish – Will It Optimize?
- Embedded in Academia
Other Awesome Projects
Collection 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 Lists
Other amazingly awesome lists
- lists – List of (awesome) lists curated on GitHub.
- awesome-awesomeness – A curated list of awesome awesomeness.
- awesome ⚡ – A curated list of awesome lists.
- C++ links – A categorized list of C++ resources.
- Awesome C/C++ – getAwesomeness()’s mirror.
- Awesome C/C++ – LibHunt’s mirror.
- Awesome C 1
- Awesome C 2
- free-programming-books – List of Freely Available Programming Books.
- Inqlude – The Qt library archive.
- 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.
- Awesome interview questions – A list of lists of interview questions for the most popular technologies, including C/C++.
- nothings/single_file_libs ⚡ – List of single-file C/C++ libraries.