3570 lines
187 KiB
HTML
3570 lines
187 KiB
HTML
<h1 id="awesome-c-awesome-track-awesome-list">Awesome C++ <a
|
||
href="https://awesome.re"><img src="https://awesome.re/badge.svg"
|
||
alt="Awesome" /></a> <a
|
||
href="https://www.trackawesomelist.com/fffaraz/awesome-cpp/"><img
|
||
src="https://www.trackawesomelist.com/badge.svg"
|
||
alt="Track Awesome List" /></a></h1>
|
||
<p>A curated list of awesome C++ (or C) frameworks, libraries,
|
||
resources, and shiny things. Inspired by awesome-… stuff.</p>
|
||
<ul>
|
||
<li><a href="#awesome-c--">Awesome C++</a>
|
||
<ul>
|
||
<li><a href="#standard-libraries">Standard Libraries</a></li>
|
||
<li><a href="#frameworks">Frameworks</a></li>
|
||
<li><a href="#artificial-intelligence">Artificial Intelligence</a></li>
|
||
<li><a href="#asynchronous-event-loop">Asynchronous Event Loop</a></li>
|
||
<li><a href="#audio">Audio</a></li>
|
||
<li><a href="#biology">Biology</a></li>
|
||
<li><a href="#bittorrent">BitTorrent</a></li>
|
||
<li><a href="#chemistry">Chemistry</a></li>
|
||
<li><a href="#cli">CLI</a></li>
|
||
<li><a href="#compression">Compression</a></li>
|
||
<li><a href="#concurrency">Concurrency</a></li>
|
||
<li><a href="#configuration">Configuration</a></li>
|
||
<li><a href="#containers">Containers</a></li>
|
||
<li><a href="#cryptography">Cryptography</a></li>
|
||
<li><a href="#csv">CSV</a></li>
|
||
<li><a href="#database">Database</a></li>
|
||
<li><a href="#data-visualization">Data visualization</a></li>
|
||
<li><a href="#debug">Debug</a></li>
|
||
<li><a href="#documentation">Documentation</a></li>
|
||
<li><a href="#dsp">DSP</a></li>
|
||
<li><a href="#font">Font</a></li>
|
||
<li><a href="#game-engine">Game Engine</a></li>
|
||
<li><a href="#graph">Graph</a></li>
|
||
<li><a href="#gui">GUI</a></li>
|
||
<li><a href="#graphics">Graphics</a></li>
|
||
<li><a href="#image-processing">Image Processing</a></li>
|
||
<li><a href="#internationalization">Internationalization</a></li>
|
||
<li><a href="#inter-process-communication">Inter-process
|
||
communication</a></li>
|
||
<li><a href="#json">JSON</a></li>
|
||
<li><a href="#logging">Logging</a></li>
|
||
<li><a href="#machine-learning">Machine Learning</a></li>
|
||
<li><a href="#math">Math</a></li>
|
||
<li><a href="#memory-allocation">Memory Allocation</a></li>
|
||
<li><a href="#multimedia">Multimedia</a></li>
|
||
<li><a href="#networking">Networking</a></li>
|
||
<li><a href="#office-open-xml">Office Open XML</a></li>
|
||
<li><a href="#pdf">PDF</a></li>
|
||
<li><a href="#physics">Physics</a></li>
|
||
<li><a href="#reflection">Reflection</a></li>
|
||
<li><a href="#regular-expression">Regular Expression</a></li>
|
||
<li><a href="#robotics">Robotics</a></li>
|
||
<li><a href="#scientific-computing">Scientific Computing</a></li>
|
||
<li><a href="#scripting">Scripting</a></li>
|
||
<li><a href="#serialization">Serialization</a></li>
|
||
<li><a href="#serial-port">Serial Port</a></li>
|
||
<li><a href="#sorting">Sorting</a></li>
|
||
<li><a href="#video">Video</a></li>
|
||
<li><a href="#virtual-machines">Virtual Machines</a></li>
|
||
<li><a href="#web-application-framework">Web Application
|
||
Framework</a></li>
|
||
<li><a href="#xml">XML</a></li>
|
||
<li><a href="#yaml">Yaml</a></li>
|
||
<li><a href="#miscellaneous">Miscellaneous</a></li>
|
||
</ul></li>
|
||
<li><a href="#software">Software</a>
|
||
<ul>
|
||
<li><a href="#compiler">Compiler</a></li>
|
||
<li><a href="#online-compiler">Online Compiler</a></li>
|
||
<li><a href="#debugger">Debugger</a></li>
|
||
<li><a href="#integrated-development-environment">Integrated Development
|
||
Environment</a></li>
|
||
<li><a href="#build-systems">Build Systems</a></li>
|
||
<li><a href="#static-code-analysis">Static Code Analysis</a></li>
|
||
<li><a href="#coding-style-tools">Coding Style Tools</a></li>
|
||
</ul></li>
|
||
<li><a href="#resources">Resources</a>
|
||
<ul>
|
||
<li><a href="#api-design">API Design</a></li>
|
||
<li><a href="#articles">Articles</a></li>
|
||
<li><a href="#books">Books</a></li>
|
||
<li><a href="#coding-standards">Coding Standards</a></li>
|
||
<li><a href="#coding-style">Coding Style</a></li>
|
||
<li><a href="#podcasts">Podcasts</a></li>
|
||
<li><a href="#talks">Talks</a></li>
|
||
<li><a href="#videos">Videos</a></li>
|
||
<li><a href="#websites">Websites</a></li>
|
||
<li><a href="#weblogs">Weblogs</a></li>
|
||
<li><a href="#other-awesome-projects">Other Awesome Projects</a></li>
|
||
</ul></li>
|
||
<li><a href="#other-awesome-lists">Other Awesome Lists</a></li>
|
||
<li><a href="#jobs">Jobs</a></li>
|
||
<li><a href="#sponsors">Sponsors</a></li>
|
||
<li><a href="#contributing">Contributing</a> - <a
|
||
href="#if-you-see-a-project-or-link-here-that-is-no-longer-maintained-or-is-not-a-good-fit-please-submit-a-pull-request-to-improve-this-document-thank-you"><em>If
|
||
you see a project or link here that is no longer maintained or is not a
|
||
good fit, please submit a pull request to improve this document. Thank
|
||
you!</em></a></li>
|
||
</ul>
|
||
<h2 id="standard-libraries">Standard Libraries</h2>
|
||
<p><em>C++ Standard Library - including STL Containers, STL Algorithm,
|
||
STL Functional, etc.</em></p>
|
||
<ul>
|
||
<li><a href="https://en.wikipedia.org/wiki/C%2B%2B_Standard_Library">C++
|
||
Standard Library</a> - A collection of classes and functions, which are
|
||
written in the core language and part of the C++ ISO Standard
|
||
itself.</li>
|
||
<li><a
|
||
href="https://en.wikipedia.org/wiki/Standard_Template_Library">Standard
|
||
Template Library</a> - The Standard Template Library (STL).</li>
|
||
<li><a href="https://en.wikipedia.org/wiki/C_POSIX_library">C POSIX
|
||
library</a> - A specification of a C standard library for POSIX
|
||
systems.</li>
|
||
<li><a href="https://github.com/cplusplus">ISO C++ Standards
|
||
Committee</a> - ISO/IEC JTC1/SC22/WG21 - The C++ Standards Committee. <a
|
||
href="http://www.open-std.org/JTC1/SC22/WG21/">website</a></li>
|
||
<li><a href="https://www.gnu.org/software/libc/manual">The GNU C
|
||
Library</a> - The purpose of this manual is to tell you how to use the
|
||
facilities of the GNU C Library.</li>
|
||
</ul>
|
||
<h2 id="frameworks">Frameworks</h2>
|
||
<p><em>C++ generic frameworks and libraries.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/abseil/abseil-cpp">abseil-cpp</a> -
|
||
Abseil C++ Common Libraries. [Apache2]</li>
|
||
<li><a href="http://stdcxx.apache.org/">Apache C++ Standard Library</a>
|
||
- STDCXX, A collection of algorithms, containers, iterators, and other
|
||
fundamental components. [retired] [Apache2]</li>
|
||
<li><a href="http://apr.apache.org/">APR</a> - Apache Portable Runtime.
|
||
Another library of cross-platform utility functions. [Apache2]</li>
|
||
<li><a href="http://stlab.adobe.com/">ASL</a> - Adobe Source Libraries
|
||
provides peer-reviewed and portable C++ source libraries. [MIT]</li>
|
||
<li><a href="https://github.com/boostorg">Boost</a> :zap: - A large
|
||
collection of generic C++ libraries. [Boost] <a
|
||
href="https://www.boost.org">website</a></li>
|
||
<li><a href="https://github.com/bloomberg/bde">BDE</a> - The BDE
|
||
Development Environment from Bloomberg Labs. [Apache2]</li>
|
||
<li><a href="https://github.com/sogou/workflow">C++ Workflow</a> :zap: -
|
||
C++ Parallel Computing and Asynchronous Networking Engine.
|
||
[Apache2]</li>
|
||
<li><a href="https://github.com/ChunelFeng/CGraph">CGraph</a> - A
|
||
cross-platform DAG framework based on C++ without any 3rd-party.
|
||
[MIT]</li>
|
||
<li><a href="https://libcinder.org/">Cinder</a> - A community-developed,
|
||
free and open source library for professional-quality creative coding.
|
||
[BSD]</li>
|
||
<li><a href="https://github.com/idealvin/coost">Coost</a> - A tiny boost
|
||
library in C++11. [MIT]</li>
|
||
<li><a href="http://ryan.gulix.cl/fossil.cgi/cxxomfort/">Cxxomfort</a> -
|
||
A small, header-only library that backports various facilities from more
|
||
recent C++ Standards to C++03 and later. [MIT]</li>
|
||
<li><a href="https://github.com/davisking/dlib">Dlib</a> :zap: - A
|
||
toolkit for making real world machine learning and data analysis
|
||
applications in C++. [Boost] <a href="http://dlib.net/">website</a></li>
|
||
<li><a href="https://github.com/electronicarts/EASTL">EASTL</a> -
|
||
Electronic Arts Standard Template Library. [BSD]</li>
|
||
<li><a href="https://github.com/ETLCPP/etl">ETL</a> - Embedded Template
|
||
Library. [MIT]</li>
|
||
<li><a href="https://github.com/sumeetchhetri/ffead-cpp">ffead-cpp</a> -
|
||
Framework for Enterprise Application Development. [Apache2]</li>
|
||
<li><a href="https://github.com/facebook/folly">Folly</a> - An
|
||
open-source C++ library developed and used at Facebook. [Apache2]</li>
|
||
<li><a
|
||
href="https://github.com/Dobiasd/FunctionalPlus">FunctionalPlus</a> -
|
||
Functional Programming Library for C++. Write concise and readable C++
|
||
code. [MIT]</li>
|
||
<li><a href="https://wiki.gnome.org/Projects/GLib">GLib</a> - GLib
|
||
provides the core application building blocks for libraries and
|
||
applications written in C. [LGPL]</li>
|
||
<li><a href="https://github.com/iboB/itlib">itlib</a> - A collection of
|
||
std-like single-header C++ libraries [MIT]</li>
|
||
<li><a href="https://github.com/julianstorer/JUCE">JUCE</a> - An
|
||
all-encompassing C++ class library for developing cross-platform
|
||
software. [Core-Module: ISC, Rest: GPL2/GPL3/Proprietary] <a
|
||
href="http://www.juce.com/">website</a></li>
|
||
<li><a href="https://github.com/Kigs-framework/kigs">Kigs framework</a>
|
||
- A free and open source C++ modular multi-purpose cross platform RAD
|
||
framework. [MIT] <a href="https://kigs-framework.org/">website</a></li>
|
||
<li><a href="https://github.com/facebook/libphenom">libPhenom</a> -
|
||
libPhenom is an eventing framework for building high performance and
|
||
high scalability systems in C. [Apache2]</li>
|
||
<li><a href="https://github.com/sourcey/libsourcey">LibSourcey</a> -
|
||
C++11 evented IO for real-time video streaming and high performance
|
||
networking applications. [LGPL]</li>
|
||
<li><a href="https://github.com/koanlogic/libu">LibU</a> - A
|
||
multiplatform utility library written in C. [BSD]</li>
|
||
<li><a href="https://github.com/kala13x/libxutils">libxutils</a> -
|
||
Simple and yet powerful cross-platform C library providing data
|
||
structures, algorithms and much more. [MIT]</li>
|
||
<li><a href="http://loki-lib.sourceforge.net/">Loki</a> - A C++ library
|
||
of designs, containing flexible implementations of common design
|
||
patterns and idioms. [MIT]</li>
|
||
<li><a href="https://github.com/MariadeAnton/MiLi">MiLi</a> - Minimal
|
||
headers-only C++ Library. [Boost]</li>
|
||
<li><a
|
||
href="https://github.com/openframeworks/openFrameworks">OpenFrameworks</a>
|
||
- A cross platform open source toolkit for creative coding in C++. [MIT]
|
||
<a href="http://www.openframeworks.cc/">website</a></li>
|
||
<li><a href="https://github.com/qt">Qt</a> :zap: - A cross-platform
|
||
application and UI framework. [GPL/LGPL/Proprietary] <a
|
||
href="https://www.qt.io">website</a></li>
|
||
<li><a href="http://code.google.com/p/reason/">Reason</a> - 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]</li>
|
||
<li><a href="https://root.cern.ch/">ROOT</a> - 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]</li>
|
||
<li><a
|
||
href="https://github.com/Pagghiu/SaneCppLibraries">SaneCppLibraries</a>
|
||
- a set of C++ platform abstraction libraries for macOS, Windows and
|
||
Linux. [MIT] <a
|
||
href="https://pagghiu.github.io/SaneCppLibraries/">website</a></li>
|
||
<li><a href="https://github.com/scylladb/seastar">Seastar</a> - An
|
||
advanced, open-source C++ framework for high-performance server
|
||
applications on modern hardware. [Apache-2.0 License] <a
|
||
href="http://seastar.io/">seastar.io</a></li>
|
||
<li><a href="http://www.stlport.org/">STLport</a> - An exemplary version
|
||
of STL. [Free]</li>
|
||
<li><a href="http://stxxl.sourceforge.net/">STXXL</a> - Standard
|
||
Template Library for Extra Large Data Sets. [Boost]</li>
|
||
<li><a href="https://github.com/tboox/tbox">tbox</a> - A glib-like
|
||
multi-platform c library. [Apache2] <a
|
||
href="http://tboox.org/">website</a></li>
|
||
<li><a href="http://www.ultimatepp.org/">Ultimate++</a> - A C++
|
||
cross-platform rapid application development framework. [BSD]</li>
|
||
<li><a href="http://sourceforge.net/projects/wtl/">Windows Template
|
||
Library</a> - A C++ library for developing Windows applications and UI
|
||
components. [Public]</li>
|
||
<li><a href="https://github.com/jll63/yomm2">Yomm2</a> - Fast,
|
||
Orthogonal, Open multi-methods. Supersedes <a
|
||
href="https://github.com/jll63/yomm11">Yomm11</a> [Boost]</li>
|
||
</ul>
|
||
<h2 id="artificial-intelligence">Artificial Intelligence</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/ANNetGPGPU/ANNetGPGPU">ANNetGPGPU</a> -
|
||
A GPU (CUDA) based Artificial Neural Network library. [LGPL]</li>
|
||
<li><a href="https://github.com/aigamedev/btsk">btsk</a> - Game Behavior
|
||
Tree Starter Kit. [zlib]</li>
|
||
<li><a href="http://eodev.sourceforge.net/">Evolving Objects</a> - A
|
||
template-based, ANSI-C++ evolutionary computation library which helps
|
||
you to write your own stochastic optimization algorithms insanely fast.
|
||
[LGPL]</li>
|
||
<li><a href="https://github.com/Dobiasd/frugally-deep">frugally-deep</a>
|
||
- Header-only library for using Keras models in C++. [MIT]</li>
|
||
<li><a href="https://github.com/codeplea/genann">Genann</a> - Simple
|
||
neural network library in C. [zlib]</li>
|
||
<li><a href="https://github.com/apache/incubator-mxnet">MXNet</a> -
|
||
Lightweight, Portable, Flexible Distributed/Mobile Deep Learning with
|
||
Dynamic, Mutation-aware Dataflow Dep Scheduler; for Python, R, Julia,
|
||
Scala, Go, Javascript and more. <a
|
||
href="https://mxnet.apache.org">website</a></li>
|
||
<li><a href="https://github.com/pytorch/pytorch">PyTorch</a> - Tensors
|
||
and Dynamic neural networks in Python with strong GPU acceleration. <a
|
||
href="https://pytorch.org">website</a></li>
|
||
<li><a href="https://github.com/flashlight/flashlight">flashlight</a> -
|
||
Flashlight is a fast, flexible machine learning library written entirely
|
||
in C++. [BSD]</li>
|
||
<li><a
|
||
href="https://github.com/recastnavigation/recastnavigation">Recast/Detour</a>
|
||
- (3D) Navigation mesh generator and pathfinder, mostly for games.
|
||
[zlib]</li>
|
||
<li><a href="https://github.com/tensorflow/tensorflow">TensorFlow</a> -
|
||
An open source software library for numerical computation using data
|
||
flow graphs. [Apache]</li>
|
||
<li><a href="https://github.com/oneapi-src/oneDNN">oneDNN</a> - An
|
||
open-source cross-platform performance library for deep learning
|
||
applications. [Apache] <a href="https://01.org/onednn">website</a></li>
|
||
<li><a href="https://github.com/Microsoft/CNTK">CNTK</a> - Microsoft
|
||
Cognitive Toolkit (CNTK), an open source deep-learning toolkit.
|
||
[Boost]</li>
|
||
<li><a href="https://github.com/tiny-dnn/tiny-dnn">tiny-dnn</a> - A
|
||
header only, dependency-free deep learning framework in C++11.
|
||
[BSD]</li>
|
||
<li><a href="https://github.com/Samsung/veles">Veles</a> - Distributed
|
||
platform for rapid Deep learning application development. [Apache]</li>
|
||
<li><a href="https://github.com/kaldi-asr/kaldi">Kaldi</a> - Toolkit for
|
||
speech recognition. [Apache]</li>
|
||
</ul>
|
||
<h2 id="asynchronous-event-loop">Asynchronous Event Loop</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/chriskohlhoff/asio/">Asio</a> - 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] <a
|
||
href="http://think-async.com/">website</a></li>
|
||
<li><a href="https://github.com/boostorg/asio">Boost.Asio</a> - A
|
||
cross-platform C++ library for network and low-level I/O programming.
|
||
[Boost] <a href="https://boost.org/libs/asio">website</a></li>
|
||
<li><a href="https://github.com/actor-framework/actor-framework">C++
|
||
Actor Framework</a> - An Open Source Implementation of the Actor Model
|
||
in C++. [BSD-3-Clause] <a
|
||
href="http://actor-framework.org/">website</a></li>
|
||
<li><a href="https://github.com/volt-software/ichor">Ichor</a> - An
|
||
event queue which focuses on thread safety and provides dependency
|
||
injection. [MIT]</li>
|
||
<li><a href="http://libev.schmorp.de/">libev</a> - A full-featured and
|
||
high-performance event loop that is loosely modelled after libevent, but
|
||
without its limitations and bugs. [BSD and GPL]</li>
|
||
<li><a href="http://libevent.org/">libevent</a> - An event notification
|
||
library. [BSD]</li>
|
||
<li><a href="https://github.com/ithewei/libhv">libhv</a> -
|
||
Cross-platform event loop library. [BSD]</li>
|
||
<li><a href="https://github.com/libuv/libuv">libuv</a> - Cross-platform
|
||
asynchronous I/O. [BSD]</li>
|
||
<li><a href="https://github.com/xhawk18/promise-cpp">promise-cpp</a> -
|
||
Header only library that implements Promise/A+ standard. [Anti-996]</li>
|
||
<li><a href="https://github.com/skypjack/uvw">uvw</a> - C++ wrapper for
|
||
libuv. [MIT]</li>
|
||
</ul>
|
||
<h2 id="audio">Audio</h2>
|
||
<p><em>Audio, Sound, Music, Digitized Voice Libraries</em></p>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/SparkyStudios/AmplitudeAudioSDK">Amplitude
|
||
Audio SDK</a> - A cross-platform audio engine designed with the needs of
|
||
games in mind. [Apache-2.0] <a
|
||
href="https://amplitudeaudiosdk.com">website</a></li>
|
||
<li><a href="https://github.com/aubio/aubio">Aubio</a> - A library for
|
||
audio and music analysis.[GPL-3.0] <a
|
||
href="https://aubio.org/">website</a></li>
|
||
<li><a href="https://github.com/adamstark/AudioFile">AudioFile</a> - A
|
||
simple C++ library for reading and writing audio files. [MIT]</li>
|
||
<li><a href="https://github.com/libAudioFlux/audioFlux">audioFlux</a> -
|
||
A C library for audio and music analysis, feature extraction. [MIT]</li>
|
||
<li><a href="https://github.com/mackron/dr_libs">dr_libs</a> - Single
|
||
file audio decoding libraries for C and C++. [Unlicense]</li>
|
||
<li><a href="http://www.fmod.org/">FMOD</a> - An easy to use
|
||
crossplatform audio engine and audio content creation tool for games.
|
||
[Free for non-commercial/Commercial]</li>
|
||
<li><a href="https://www.kfrlib.com/">KFR</a> - Fast, modern C++ DSP
|
||
framework, FFT, FIR/IIR filters, Sample Rate Conversion.
|
||
[GPL/Proprietary]</li>
|
||
<li><a href="https://lame.sourceforge.io/using.php">LAME</a> - LAME is a
|
||
high quality MPEG Audio Layer III (MP3) encoder. [LGPL]</li>
|
||
<li><a href="https://github.com/erikd/libsndfile/">libsndfile</a> - C
|
||
library with C++ wrapper for reading and writing files containing
|
||
sampled sound through one standard library interface. [LGPL-2.1] <a
|
||
href="http://www.mega-nerd.com/libsndfile/">website</a></li>
|
||
<li><a href="https://github.com/andrewrk/libsoundio">libsoundio</a> - C
|
||
library for cross-platform real-time audio input and output. [MIT] <a
|
||
href="http://libsound.io/">website</a></li>
|
||
<li><a href="https://github.com/micknoise/Maximilian">Maximilian</a> -
|
||
C++ Audio and Music DSP Library. [MIT]</li>
|
||
<li><a href="http://www.openal.org/">OpenAL</a> - Open Audio Library - A
|
||
crossplatform audio API. [BSD/LGPL/Proprietary]</li>
|
||
<li><a href="https://github.com/mackron/miniaudio">miniaudio</a> -
|
||
Single file audio playback and capture library. [Unlicense] <a
|
||
href="https://miniaud.io/">website</a></li>
|
||
<li><a href="https://github.com/NativeInstruments/ni-media">ni-media</a>
|
||
- C++ library for reading and writing audio files. [MIT]</li>
|
||
<li><a href="http://opus-codec.org/">Opus</a> - A totally open,
|
||
royalty-free, highly versatile audio codec. [BSD]</li>
|
||
<li><a href="http://www.portaudio.com/">PortAudio</a> - PortAudio is a
|
||
free, cross-platform, open-source, audio I/O library. [MIT]</li>
|
||
<li><a href="https://github.com/xiph/rnnoise">rnnoise</a> - Recurrent
|
||
neural network for audio noise reduction. [BSD-3-Clause]</li>
|
||
<li><a href="https://github.com/sahaRatul/sela">SELA</a> - SimplE
|
||
Lossless Audio. [MIT]</li>
|
||
<li><a href="https://github.com/jarikomppa/soloud">SoLoud</a> - Easy,
|
||
portable audio engine for games. [zlib]</li>
|
||
<li><a href="http://www.speex.org/">Speex</a> - A free codec for free
|
||
speech. Obsoleted by Opus. [BSD]</li>
|
||
<li><a href="https://github.com/TonicAudio/Tonic">Tonic</a> - Easy and
|
||
efficient audio synthesis in C++. [Unlicense]</li>
|
||
<li><a href="http://xiph.org/vorbis/">Vorbis</a> - Ogg Vorbis is a fully
|
||
open, non-proprietary, patent-and-royalty-free, general-purpose
|
||
compressed audio format. [BSD]</li>
|
||
<li><a href="https://github.com/lieff/minimp3">minimp3</a> - Public
|
||
domain, header-only MP3 decoder with clean-room implementation.
|
||
[CC0]</li>
|
||
<li><a href="https://github.com/rism-ch/verovio">Verovio</a> - Verovio
|
||
is a fast and lightweight music notation engraving library. [LGPL] <a
|
||
href="https://www.verovio.org">website</a></li>
|
||
<li><a
|
||
href="https://github.com/facebookresearch/wav2letter/">Wav2Letter++</a>
|
||
- Public domain, a fast open source speech processing toolkit written
|
||
entirely in C++ and uses the ArrayFire tensor library and the flashlight
|
||
machine learning library for maximum efficiency. [BSD]</li>
|
||
</ul>
|
||
<h2 id="biology">Biology</h2>
|
||
<p><em>Bioinformatics, Genomics, Biotech</em></p>
|
||
<ul>
|
||
<li><a href="http://biocpp.sourceforge.net/">BioC++</a> - C++
|
||
Computational Libraries for Bioinformatics. [BSD]</li>
|
||
<li><a href="http://www.cs.ox.ac.uk/chaste/">Chaste</a> - An open source
|
||
C++ library for the computational simulation of mathematical models
|
||
developed for physiology and biology. [BSD]</li>
|
||
<li><a href="http://molpopgen.github.io/libsequence/">libsequence</a> -
|
||
A C++ library for representing and analyzing population genetics data.
|
||
[GPL]</li>
|
||
<li><a href="http://www.seqan.de/">SeqAn</a> - Algorithms and data
|
||
structures for the analysis of sequences with the focus on biological
|
||
data. [BSD/3-clause]</li>
|
||
<li><a href="https://github.com/ekg/vcflib">Vcflib</a> - A C++ library
|
||
for parsing and manipulating VCF files. [MIT]</li>
|
||
<li><a href="https://github.com/zeeev/wham">Wham</a> - Structural
|
||
variants (SVs) in Genomes by directly applying association tests to BAM
|
||
files. [MIT]</li>
|
||
</ul>
|
||
<h2 id="bittorrent">BitTorrent</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/jech/dht">jech/dht</a> - BitTorrent DHT
|
||
library in C. [MIT]</li>
|
||
<li><a href="https://github.com/arvidn/libtorrent">libtorrent</a>
|
||
(a.k.a. libtorrent-rasterbar) - An efficient feature complete C++
|
||
bittorrent implementation. [BSD]</li>
|
||
<li><a href="https://github.com/rakshasa/libtorrent">LibTorrent</a>
|
||
(a.k.a. libtorrent-rakshasa) - BitTorrent library. [GPL]</li>
|
||
<li><a href="https://github.com/bittorrent/libutp">libutp</a> - uTorrent
|
||
Transport Protocol library. [MIT]</li>
|
||
</ul>
|
||
<h2 id="chemistry">Chemistry</h2>
|
||
<p><em>Chemistry, Quantum Chemistry, Solid-State Chemistry/Physics,
|
||
Geochemistry, Biochemistry</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/d-SEAMS/seams-core">d-SEAMS</a> - A
|
||
molecular dynamics trajectory analysis engine in C++ and Lua with Nix.
|
||
It is an acronym for Deferred Structural Elucidation Analysis for
|
||
Molecular Simulations. [GPL] <a
|
||
href="https://dseams.info">website</a></li>
|
||
<li><a href="https://github.com/gromacs/gromacs">gromacs</a> - A
|
||
message-passing parallel molecular dynamics implementation. [GPL] <a
|
||
href="http://www.gromacs.org">website</a></li>
|
||
<li><a href="https://github.com/reaktoro/reaktoro">Reaktoro</a> - A
|
||
computational framework in C++ and Python for modeling chemically
|
||
reactive systems. [LGPL] <a href="https://reaktoro.org">website</a></li>
|
||
<li><a href="https://github.com/lammps/lammps">LAMMPS</a> - A classical
|
||
molecular dynamics code with a focus on materials modeling. It’s an
|
||
acronym for Large-scale Atomic/Molecular Massively Parallel Simulator.
|
||
[GPL] <a href="https://lammps.sandia.gov/">website</a></li>
|
||
<li><a href="https://github.com/m-a-d-n-e-s-s/madness">MADNESS</a> -
|
||
Multiresolution Adaptive Numerical Environment for Scientific
|
||
Simulation. [GPL] <a
|
||
href="https://github.com/m-a-d-n-e-s-s/madness">website</a></li>
|
||
<li><a href="https://github.com/ValeevGroup/mpqc">MPQC</a> - The
|
||
Massively Parallel Quantum Chemistry program, MPQC, computes properties
|
||
of atoms and molecules from first principles using the time independent
|
||
Schrödinger equation. [GPL] <a href="https://mpqc.org/">website</a></li>
|
||
<li><a
|
||
href="https://en.wikipedia.org/wiki/ORCA_(quantum_chemistry_program)">ORCA</a>
|
||
- An ab initio quantum chemistry program package that contains modern
|
||
electronic structure methods. [Academic] <a
|
||
href="https://orcaforum.kofo.mpg.de/">website</a></li>
|
||
<li><a href="https://github.com/psi4/psi4">Psi</a> - An ab initio
|
||
computational chemistry package. [GPL] <a
|
||
href="https://psicode.org/">website</a></li>
|
||
</ul>
|
||
<h2 id="cli">CLI</h2>
|
||
<p><em>Console/Terminal User Interface, Command Line Interface</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/adishavit/argh">Argh!</a> - A
|
||
minimalist, frustration-free, header-only argument handler. [BSD]</li>
|
||
<li><a href="https://github.com/p-ranav/argparse">argparse</a> -
|
||
Argument Parser for Modern C++. [MIT]</li>
|
||
<li><a href="https://github.com/taywee/args">args</a> - A simple
|
||
header-only C++ argument parser library. [MIT]</li>
|
||
<li><a
|
||
href="https://github.com/boostorg/program_options">Boost.Program_options</a>
|
||
- A library to obtain program options via conventional methods such as
|
||
command line and config file. [Boost] <a
|
||
href="https://boost.org/libs/program_options">website</a></li>
|
||
<li><a href="https://github.com/daniele77/cli">cli</a> - A
|
||
cross-platform header only C++14 library for interactive command line
|
||
interfaces (Cisco style). [Boost]</li>
|
||
<li><a href="https://github.com/CLIUtils/CLI11">CLI11</a> - Header only
|
||
single or multi-file C++11 library for simple and advanced CLI parsing.
|
||
[BSD]</li>
|
||
<li><a href="https://github.com/muellan/clipp">clipp</a> - Easy to use,
|
||
powerful and expressive command line argument handling for C++11/14/17
|
||
contained in a single header file. [MIT]</li>
|
||
<li><a
|
||
href="https://github.com/jupyter-xeus/cpp-terminal">cpp-terminal</a> -
|
||
Small header only C++ library for writing multiplatform terminal
|
||
applications. [MIT]</li>
|
||
<li><a href="https://github.com/jarro2783/cxxopts">cxxopts</a> -
|
||
Lightweight C++ command line option parser. [MIT]</li>
|
||
<li><a href="https://github.com/docopt/docopt.cpp">docopt.cpp</a> - A
|
||
library to generate option parser from docstring. [MIT/Boost]</li>
|
||
<li><a href="https://github.com/gansm/finalcut">FINAL CUT</a> - Library
|
||
for creating terminal applications with text-based widgets. [LGPL]</li>
|
||
<li><a href="https://github.com/ArthurSonzogni/FTXUI">FTXUI</a> - C++
|
||
Functional Terminal User Interface. [MIT]</li>
|
||
<li><a href="https://gflags.github.io/gflags/">gflags</a> - Commandline
|
||
flags module for C++. [BSD]</li>
|
||
<li><a href="https://github.com/ggerganov/imtui">imtui</a> - Immediate
|
||
Mode Text-based User Interface. [MIT]</li>
|
||
<li><a href="https://github.com/p-ranav/indicators/">indicators</a> -
|
||
Activity indicators for Modern C++. [MIT]</li>
|
||
<li><a href="https://github.com/antirez/linenoise">linenoise</a> - A
|
||
small self-contained alternative to readline and libedit.
|
||
[BSD-2-Clause]</li>
|
||
<li><a href="https://github.com/arangodb/linenoise-ng">linenoise-ng</a>
|
||
- A small, portable GNU readline replacement for Linux, Windows and
|
||
MacOS which is capable of handling UTF-8 characters. [BSD]</li>
|
||
<li><a href="https://github.com/bfgroup/Lyra">Lyra</a> - A simple to
|
||
use, composable, command line parser for C++ 11 and beyond. [Boost]</li>
|
||
<li><a href="http://invisible-island.net/ncurses/">Ncurses</a> - A
|
||
terminal user interface. [MIT]</li>
|
||
<li><a href="https://github.com/s9w/oof">oof</a> - Convenient,
|
||
high-performance RGB color and position control for console output.
|
||
[MIT]</li>
|
||
<li><a href="https://github.com/wmcbrine/PDCurses">PDCurses</a> - Public
|
||
domain curses library with both source code and pre-compiled library
|
||
available. [PublicDomain]</li>
|
||
<li><a href="https://github.com/badaix/popl">popl</a> - A single-header
|
||
templated command line arguments and ini file parser for C++ 11 and
|
||
beyond. [MIT]</li>
|
||
<li><a href="https://github.com/AmokHuginnsson/replxx">replxx</a> - A
|
||
readline and libedit replacement that supports UTF-8, syntax
|
||
highlighting, hints, works on Unix and Windows. [BSD]</li>
|
||
<li><a href="https://github.com/p-ranav/tabulate">tabulate</a> - Table
|
||
Maker for Modern C++. [MIT]</li>
|
||
<li><a href="http://tclap.sourceforge.net">TCLAP</a> - A mature, stable
|
||
and feature-rich library for defining and accessing command line
|
||
arguments in ANSI C++. [MIT]</li>
|
||
<li><a href="https://github.com/nsf/termbox">termbox</a> - A C library
|
||
for writing text-based user interfaces. [MIT]</li>
|
||
<li><a href="https://github.com/a-n-t-h-o-n-y/TermOx">TermOx</a> - C++17
|
||
Terminal User Interface(TUI) Library. [MIT]</li>
|
||
</ul>
|
||
<h2 id="compression">Compression</h2>
|
||
<p><em>Compression and Archiving Libraries</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/rikyoz/bit7z">bit7z</a> - A C++ static
|
||
library offering a clean and simple interface to the 7-zip shared
|
||
libraries. [MPL2]</li>
|
||
<li><a href="https://github.com/google/brotli">Brotli</a> - Brotli
|
||
compression format. Developed by Google. [MIT]</li>
|
||
<li><a href="http://www.bzip.org/">bzip2</a> - A freely available,
|
||
patent free, high-quality data compressor. [BSD]</li>
|
||
<li><a href="https://github.com/kspalaiologos/bzip3">bzip3</a> - A
|
||
better and stronger spiritual successor to BZip2. [LGPL]</li>
|
||
<li><a
|
||
href="https://github.com/Cyan4973/FiniteStateEntropy">FiniteStateEntropy</a>
|
||
- New generation entropy codecs : Finite State Entropy and Huff0.</li>
|
||
<li><a href="https://github.com/atomicobject/heatshrink">heatshrink</a>
|
||
- data compression library for embedded/real-time systems [ISC]</li>
|
||
<li><a
|
||
href="https://api.kde.org/frameworks/karchive/html/index.html">KArchive</a>
|
||
- 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]</li>
|
||
<li><a href="https://github.com/libarchive/libarchive">libarchive</a> -
|
||
Multi-format archive and compression library. [New BSD] <a
|
||
href="http://www.libarchive.org/">website</a></li>
|
||
<li><a href="https://github.com/lz4/lz4">LZ4</a> - Extremely Fast
|
||
Compression algorithm. [BSD] <a
|
||
href="http://www.lz4.org/">website</a></li>
|
||
<li><a href="https://github.com/lzfse/lzfse">LZFSE</a> - LZFSE
|
||
compression library and command line tool. Developed by Apple.</li>
|
||
<li><a href="https://code.google.com/p/lzham/">LZHAM</a> - Lossless data
|
||
compression library with a compression ratio similar to LZMA but with
|
||
much faster decompression. [BSD]</li>
|
||
<li><a
|
||
href="https://sourceforge.net/projects/sevenzip/files/7-Zip">LZMA</a>
|
||
:zap: - The default and general compression method of 7z format.
|
||
[PublicDomain] <a href="https://www.7-zip.org">website</a></li>
|
||
<li><a href="http://www.matcode.com/lzmat.htm">LZMAT</a> - An extremely
|
||
fast real-time lossless data compression library. [GPL]</li>
|
||
<li><a href="https://github.com/richgel999/miniz">miniz</a> - Single C
|
||
source file Deflate/Inflate compression library with zlib-compatible
|
||
API, ZIP archive reading/writing, PNG writing. [MIT]</li>
|
||
<li><a href="https://github.com/nmoinvaz/minizip">Minizip</a> - Zlib
|
||
with latest bug fixes that supports PKWARE disk spanning, AES
|
||
encryption, and IO buffering. [zlib]</li>
|
||
<li><a href="https://github.com/zlib-ng/minizip-ng">minizip-ng</a> -
|
||
Fork of the popular zip manipulation library found in the zlib
|
||
distribution. [zlib]</li>
|
||
<li><a href="https://icculus.org/physfs/">PhysicsFS</a> - 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]</li>
|
||
<li><a href="https://github.com/mxmlnkn/rapidgzip">Rapidgzip</a> - Gzip
|
||
Decompression and Random Access for Modern Multi-Core Machines.
|
||
[Apache-2/MIT]</li>
|
||
<li><a href="https://github.com/antirez/smaz">smaz</a> - Small strings
|
||
compression library. [BSD]</li>
|
||
<li><a href="https://google.github.io/snappy/">Snappy</a> - A fast
|
||
compressor/decompressor. [BSD]</li>
|
||
<li><a href="http://zlib.net/">ZLib</a> - A very compact compression
|
||
library for data streams. [zlib]</li>
|
||
<li><a href="https://github.com/zlib-ng/zlib-ng">zlib-ng</a> - zlib for
|
||
the “next generation” systems. Drop-In replacement with some serious
|
||
optimizations. [zlib]</li>
|
||
<li><a href="https://github.com/facebook/zstd">zstd</a> - Zstandard -
|
||
Fast real-time compression algorithm. Developed by Facebook. [BSD]</li>
|
||
<li><a href="http://zziplib.sourceforge.net/">ZZIPlib</a> - Provides
|
||
read access on ZIP-archives. [MPL/LGPL]</li>
|
||
</ul>
|
||
<h2 id="concurrency">Concurrency</h2>
|
||
<p><em>Concurrency and Multithreading</em></p>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/ComputationalRadiationPhysics/alpaka">alpaka</a>
|
||
- Abstraction library for parallel kernel acceleration. [LGPLv3+]</li>
|
||
<li><a href="https://github.com/arrayfire/arrayfire">ArrayFire</a> - A
|
||
general purpose GPU library. [BSD]</li>
|
||
<li><a href="https://github.com/Amanieu/asyncplusplus">Async++</a> - A
|
||
lightweight concurrency framework for C++11, inspired by the Microsoft
|
||
PPL library and the N3428 C++ standard proposal. [MIT]</li>
|
||
<li><a href="https://github.com/boostorg/compute">Boost.Compute</a> - A
|
||
C++ GPU Computing Library for OpenCL. [Boost] <a
|
||
href="https://boost.org/libs/compute">website</a></li>
|
||
<li><a href="https://github.com/HSA-Libraries/Bolt">Bolt</a> - A C++
|
||
template library optimized for GPUs. [Apache2]</li>
|
||
<li><a href="https://github.com/andreiavrammsd/cpp-channel">Channel</a>
|
||
- Thread-safe container for sharing data between threads. [MIT]</li>
|
||
<li><a href="https://github.com/concurrencykit/ck">ck</a> - Concurrency
|
||
primitives, safe memory reclamation mechanisms and non-blocking data
|
||
structures. [BSD]</li>
|
||
<li><a
|
||
href="https://github.com/cameron314/concurrentqueue">concurrentqueue</a>
|
||
- A fast multi-producer, multi-consumer lock-free concurrent queue for
|
||
C++11. [BSD,Boost]</li>
|
||
<li><a href="https://github.com/NVlabs/cub">CUB</a> - CUB provides
|
||
state-of-the-art, reusable software components for every layer of the
|
||
CUDA programming mode. [New BSD]</li>
|
||
<li><a
|
||
href="https://github.com/eyalroz/cuda-api-wrappers">cuda-api-wrappers</a>
|
||
- Lightweight, Modern-C++ wrappers for the CUDA GPU programming runtime
|
||
API. [BSD]</li>
|
||
<li><a
|
||
href="https://github.com/ComputationalRadiationPhysics/cupla">cupla</a>
|
||
- C++ API to run CUDA/C++ on OpenMP, Threads, TBB, … through Alpaka.
|
||
[LGPLv3+]</li>
|
||
<li><a href="https://github.com/schlangster/cpp.react">C++React</a> - A
|
||
reactive programming library for C++11. [Boost]</li>
|
||
<li><a
|
||
href="https://github.com/RichieSams/FiberTaskingLib">FiberTaskingLib</a>
|
||
- Task-based multi-threading library that supports task graphs with
|
||
arbitrary dependencies. [Apache]</li>
|
||
<li><a href="https://github.com/STEllAR-GROUP/hpx/">HPX</a> - A general
|
||
purpose C++ runtime system for parallel and distributed applications of
|
||
any scale. [Boost]</li>
|
||
<li><a
|
||
href="https://github.com/GameTechDev/GTS-GamesTaskScheduler">Intel Games
|
||
Task Scheduler</a> - A task scheduling framework designed for the needs
|
||
of game developers. [MIT]</li>
|
||
<li><a href="https://github.com/intel/parallelstl">Intel Parallel
|
||
STL</a> - Intel® implementation of C++17 STL for C++11 and above.
|
||
[Apache2]</li>
|
||
<li><a href="https://www.threadingbuildingblocks.org/">Intel TBB</a> -
|
||
Intel® Threading Building Blocks. [Apache2]</li>
|
||
<li><a href="https://github.com/preshing/junction">junction</a> - A
|
||
library of concurrent data structures in C++. [BSD]</li>
|
||
<li><a href="https://github.com/kokkos/kokkos">Kokkos</a> - A
|
||
performance portable programming model for parallel execution and memory
|
||
abstraction. [BSD]</li>
|
||
<li><a href="https://github.com/khizmax/libcds">libcds</a> - A C++
|
||
library of Concurrent Data Structures. [BSD]</li>
|
||
<li><a href="https://github.com/libclsph/libclsph">Libclsph</a> - An
|
||
OpenCL based GPU accelerated SPH fluid simulation library. [MIT]</li>
|
||
<li><a href="https://github.com/sustrik/libdill/">libdill</a> -
|
||
Introduces structured concurrency in C. [MIT]</li>
|
||
<li><a
|
||
href="https://github.com/apple/swift-corelibs-libdispatch">libdispatch</a>
|
||
- Grand Central Dispatch (GCD), developed by Apple Inc., is a task
|
||
parallelism technology based on the thread pool pattern. libdispatch is
|
||
a library that provides the implementation of GCD’s services.
|
||
[Apache-2.0] <a
|
||
href="https://apple.github.io/swift-corelibs-libdispatch/">website</a></li>
|
||
<li><a href="https://github.com/ConorWilliams/libfork">libfork</a> - A
|
||
bleeding-edge, lock-free, wait-free, continuation-stealing tasking
|
||
library built on C++20’s coroutines. [MPL-2.0] <a
|
||
href="https://conorwilliams.github.io/libfork/">website</a></li>
|
||
<li><a href="https://github.com/sustrik/libmill/">libmill</a> -
|
||
Introduces Go-style concurrency in C. [MIT]</li>
|
||
<li><a href="https://github.com/google/marl">marl</a> - Marl is a hybrid
|
||
thread / fiber task scheduler written in C++ 11. [Apache-2.0]</li>
|
||
<li><a href="https://github.com/moderngpu/moderngpu">moderngpu</a> -
|
||
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]</li>
|
||
<li><a href="https://github.com/NVIDIA/nccl">NCCL</a> - Optimized
|
||
primitives for collective multi-GPU communication. [BSD]</li>
|
||
<li><a href="https://github.com/tidwall/neco">Neco</a> - Concurrency
|
||
library for C (coroutines). [MIT]</li>
|
||
<li><a href="https://www.khronos.org/opencl/">OpenCL</a> - The open
|
||
standard for parallel programming of heterogeneous systems.</li>
|
||
<li><a href="http://openmp.org/">OpenMP</a> - The OpenMP API.</li>
|
||
<li><a href="https://github.com/basiliscos/cpp-rotor">rotor</a> - Event
|
||
loop friendly C++ actor micro framework. [MIT]</li>
|
||
<li><a href="https://github.com/Stiffstream/sobjectizer">SObjectizer</a>
|
||
- An implementation of Actor, Publish-Subscribe, and CSP models in one
|
||
rather small C++ framework. [BSD-3-Clause]</li>
|
||
<li><a href="https://github.com/bloomberg/quantum">Quantum</a> - A
|
||
powerful C++ coroutine dispatcher framework built on top of <a
|
||
href="https://boost.org/libs/coroutine2">Boost.Coroutine2</a>.</li>
|
||
<li><a href="http://raftlib.io/">RaftLib</a> - The RaftLib C++ library,
|
||
streaming/dataflow concurrency via C++ iostream-like operators.
|
||
[Apache2]</li>
|
||
<li><a
|
||
href="https://github.com/cameron314/readerwriterqueue">readerwriterqueue</a>
|
||
- A fast single-producer, single-consumer lock-free queue for C++.
|
||
[BSD]</li>
|
||
<li><a href="https://github.com/stotko/stdgpu">stdgpu</a> - Efficient
|
||
STL-like Data Structures on the GPU. [Apache2]</li>
|
||
<li><a href="https://github.com/taskflow/taskflow">Taskflow</a> - A
|
||
General-purpose Parallel and Heterogeneous Task Programming System.
|
||
(renamed from Cpp-Taskflow) [MIT]</li>
|
||
<li><a href="http://thrust.github.io/">Thrust</a> - A parallel
|
||
algorithms library which resembles the C++ Standard Template Library
|
||
(STL). [Apache2]</li>
|
||
<li><a href="https://github.com/bloomen/transwarp">transwarp</a> - A
|
||
header-only C++ library for task concurrency. [MIT]</li>
|
||
<li><a href="https://github.com/ddemidov/vexcl">VexCL</a> - A C++ vector
|
||
expression template library for OpenCL/CUDA. [MIT]</li>
|
||
<li><a href="http://parasol-lab.gitlab.io/stapl-home/">STAPL</a> - A C++
|
||
parallel programming framework designed to work on both shared and
|
||
distributed memory parallel computers. [BSD]</li>
|
||
<li><a
|
||
href="https://github.com/David-Haim/concurrencpp">concurrencpp</a> - A
|
||
general concurrency library containing tasks, executors, timers and
|
||
C++20 coroutines to rule them all.</li>
|
||
</ul>
|
||
<h2 id="configuration">Configuration</h2>
|
||
<p><em>Configuration files, INI files</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/Rookfighter/inifile-cpp">inifile-cpp</a>
|
||
- A header-only and easy to use Ini file parser for C++. [MIT]</li>
|
||
<li><a href="https://github.com/benhoyt/inih">inih</a> - Simple .INI
|
||
file parser in C, good for embedded systems. [BSD-3-Clause]</li>
|
||
<li><a href="https://github.com/jtilly/inih">inih</a> - Single header
|
||
only C++ version of <a href="https://github.com/benhoyt/inih">inih</a>.
|
||
[BSD-3-Clause]</li>
|
||
<li><a href="https://github.com/SSARCandy/ini-cpp">ini-cpp</a> - Single
|
||
header only C++ version, with some handy read/write interface, extend
|
||
from <a href="https://github.com/benhoyt/inih">inih</a>. [BSD-3-Clause]
|
||
<a href="https://ssarcandy.tw/ini-cpp/index.html">website</a></li>
|
||
<li><a href="https://github.com/ndevilla/iniparser">iniparser</a> - INI
|
||
file parser. [MIT]*</li>
|
||
<li><a href="https://github.com/mcmtroffaes/inipp">inipp</a> - Simple
|
||
header-only C++ ini parser and generator. [MIT]</li>
|
||
<li><a href="https://github.com/hyperrealm/libconfig">libconfig</a> - C,
|
||
C++ library for processing structured configuration files. [LGPL-2.1] <a
|
||
href="https://hyperrealm.github.io/libconfig/">website</a></li>
|
||
<li><a href="https://github.com/martinh/libconfuse">libconfuse</a> -
|
||
Small configuration file parser library for C. [ISC]</li>
|
||
<li><a href="https://github.com/metayeti/mINI">mINI</a> - INI file
|
||
reader and writer. [MIT]</li>
|
||
<li><a href="https://github.com/brofield/simpleini">simpleini</a> -
|
||
Cross-platform C++ library providing a simple API to read and write
|
||
INI-style configuration files. [MIT]</li>
|
||
<li><a href="https://github.com/marzer/tomlplusplus">toml++</a> -
|
||
Header-only TOML parser and serializer for C++17 and later. [MIT] <a
|
||
href="https://marzer.github.io/tomlplusplus/">website</a></li>
|
||
<li><a href="https://github.com/ToruNiina/toml11">toml11</a> - a C++11
|
||
(or later) header-only toml parser/encoder depending only on C++
|
||
standard library. [MIT]</li>
|
||
</ul>
|
||
<h2 id="containers">Containers</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/algorithm-ninja/cpp-btree">C++
|
||
B-tree</a> - A template library that implements ordered in-memory
|
||
containers based on a B-tree data structure. [Apache2]</li>
|
||
<li><a
|
||
href="https://github.com/pinam45/dynamic_bitset">dynamic_bitset</a> -
|
||
Simple Useful Libraries: C++17/20 header-only dynamic bitset. [MIT] <a
|
||
href="https://pinam45.github.io/dynamic_bitset/">website</a></li>
|
||
<li><a
|
||
href="https://github.com/teslamotors/fixed-containers">fixed-containers</a>
|
||
- Header-only C++20 library that provides fixed capacity constexpr
|
||
containers. [MIT]</li>
|
||
<li><a
|
||
href="https://github.com/skarupke/flat_hash_map">flat_hash_map</a> - A
|
||
very fast flat hashtable with Fibonacci hashing.</li>
|
||
<li><a href="https://github.com/serge-sans-paille/frozen">frozen</a> - a
|
||
header-only, constexpr alternative to gperf for C++14 users.
|
||
[Apache-2.0]</li>
|
||
<li><a href="https://github.com/goossaert/hashmap">Hashmaps</a> -
|
||
Implementation of open addressing hash table algorithms in C++.
|
||
[MIT]</li>
|
||
<li><a href="https://github.com/Tessil/hat-trie">hat-trie</a> - C++
|
||
implementation of a fast and memory efficient HAT-trie. [MIT]</li>
|
||
<li><a href="https://github.com/Tessil/hopscotch-map">Hopscotch map</a>
|
||
- A fast header-only hash map which uses hopscotch hashing for
|
||
collisions resolution. [MIT]</li>
|
||
<li><a href="https://github.com/RSIA-LIESMARS-WHU/LSHBOX">LSHBOX</a> - A
|
||
c++ toolbox of locality-sensitive hashing (LSH), provides several
|
||
popular LSH algorithms, also support Python and MATLAB. [GPL]</li>
|
||
<li><a
|
||
href="https://github.com/greg7mdp/parallel-hashmap">parallel-hashmap</a>
|
||
- A family of header-only, very fast and memory-friendly hashmap and
|
||
btree containers [Apache2] <a
|
||
href="https://greg7mdp.github.io/parallel-hashmap/">website</a></li>
|
||
<li><a href="https://github.com/gvinciguerra/PGM-index">PGM-index</a> -
|
||
A data structure that enables fast lookup, predecessor, range searches
|
||
and updates in arrays of billions of items using orders of magnitude
|
||
less space than traditional indexes. [Apache2] <a
|
||
href="https://pgm.di.unipi.it">website</a></li>
|
||
<li><a
|
||
href="https://github.com/mattreecebentley/plf_colony">plf::colony</a> -
|
||
An unordered “bag”-type container which outperforms std containers in
|
||
high-modification scenarios while maintaining permanent pointers to
|
||
non-erased elements regardless of insertion/erasure. [zLib] <a
|
||
href="http://www.plflib.org/colony.htm">website</a></li>
|
||
<li><a href="https://github.com/mattreecebentley/plf_list">plf::list</a>
|
||
- A std::list implementation which removes range splicing in order to
|
||
enable cache-friendlier structure, yielding significant performance
|
||
gains. [zLib] <a href="http://www.plflib.org/list.htm">website</a></li>
|
||
<li><a
|
||
href="https://github.com/mattreecebentley/plf_stack">plf::stack</a> - A
|
||
replacement container for the std::stack container adaptor, with better
|
||
performance than any std container in a stack context. [zLib] <a
|
||
href="http://www.plflib.org/stack.htm">website</a></li>
|
||
<li><a href="https://github.com/martinmoene/ring-span-lite">ring_span
|
||
lite</a> - A simplified implementation of Arthur O’Dwyer’s ring_span
|
||
implementation ie. a circular buffer view. [MIT]</li>
|
||
<li><a
|
||
href="https://github.com/martinus/robin-hood-hashing">robin-hood-hashing</a>
|
||
- Fast & memory efficient hashtable based on robin hood hashing for
|
||
C++14. [MIT]</li>
|
||
<li><a href="https://github.com/Tessil/robin-map">robin-map</a> - Fast
|
||
hash map and hash set using robin hood hashing. [MIT]</li>
|
||
<li><a href="https://github.com/greg7mdp/sparsepp">sparsepp</a> - A
|
||
fast, memory efficient hash map for C++. [BSD 3-clause]</li>
|
||
<li><a href="https://github.com/erikerlandson/st_tree">st_tree</a> - A
|
||
fast and flexible c++ template class for tree data structures.
|
||
[Apache-2.0]</li>
|
||
<li><a href="https://github.com/martinus/svector">svector</a> - Compact
|
||
SVO optimized vector for C++17 or higher. [MIT]</li>
|
||
<li><a href="https://github.com/kpeeters/tree.hh">tree.hh</a> - An
|
||
STL-like C++ header-only tree library. [GPL2+]</li>
|
||
<li><a
|
||
href="https://github.com/martinus/unordered_dense">unordered_dense</a> -
|
||
A fast & densely stored hashmap and hashset based on robin-hood
|
||
backward shift deletion. [MIT]</li>
|
||
</ul>
|
||
<h2 id="cryptography">Cryptography</h2>
|
||
<p><em>Cryptography and Encryption Libraries</em></p>
|
||
<ul>
|
||
<li><a href="http://bcrypt.sourceforge.net/">Bcrypt</a> - A cross
|
||
platform file encryption utility. Encrypted files are portable across
|
||
all supported operating systems and processors. [BSD]</li>
|
||
<li><a href="http://beecrypt.sourceforge.net/">BeeCrypt</a> - A portable
|
||
and fast cryptography library. [LGPLv2.1+]</li>
|
||
<li><a href="http://botan.randombit.net/">Botan</a> - A crypto library
|
||
for C++. [BSD-2]</li>
|
||
<li><a href="https://github.com/weidai11/cryptopp">Crypto++</a> - A free
|
||
C++ class library of cryptographic schemes. [Boost] <a
|
||
href="http://www.cryptopp.com/">website</a></li>
|
||
<li><a href="https://github.com/kerukuro/digestpp">digestpp</a> - C++11
|
||
header-only message digest (hash) library. [PublicDomain]</li>
|
||
<li><a href="https://www.gnupg.org/">GnuPG</a> - A complete and free
|
||
implementation of the OpenPGP standard. [GPL]</li>
|
||
<li><a href="http://www.gnutls.org/">GnuTLS</a> - A secure
|
||
communications library implementing the SSL, TLS and DTLS protocols.
|
||
[LGPL2.1]</li>
|
||
<li><a href="http://www.gnu.org/software/libgcrypt/">Libgcrypt</a> - A
|
||
general purpose cryptographic library originally based on code from
|
||
GnuPG. [LGPLv2.1+]</li>
|
||
<li><a href="http://www.libressl.org/">LibreSSL</a> - A free version of
|
||
the SSL/TLS protocol forked from OpenSSL in 2014. [?]</li>
|
||
<li><a href="https://github.com/jedisct1/libsodium">libsodium</a> -
|
||
P(ortable|ackageable) NaCl-based crypto library, opinionated and easy to
|
||
use. [ISC]</li>
|
||
<li><a href="https://github.com/jedisct1/libhydrogen">libhydrogen</a> -
|
||
A lightweight, secure, easy-to-use crypto library suitable for
|
||
constrained environments. [ISC]</li>
|
||
<li><a href="https://github.com/libtom/libtomcrypt">LibTomCrypt</a> - A
|
||
fairly comprehensive, modular and portable cryptographic toolkit.
|
||
[WTFPL]</li>
|
||
<li><a href="https://github.com/ARMmbed/mbedtls">mbedTLS</a> - An open
|
||
source, portable, easy to use, readable and flexible SSL library,
|
||
previously known as PolarSSL. [Apache2] <a
|
||
href="https://tls.mbed.org/">website</a></li>
|
||
<li><a href="http://www.lysator.liu.se/~nisse/nettle/">Nettle</a> - A
|
||
low-level cryptographic library. [LGPL]</li>
|
||
<li><a href="https://github.com/openssl/openssl">OpenSSL</a> - A robust,
|
||
commercial-grade, full-featured, and Open Source cryptography library.
|
||
[Apache] <a href="http://www.openssl.org/">website</a></li>
|
||
<li><a href="https://github.com/MaciejCzyzewski/retter">retter</a> - A
|
||
collection of hash functions, ciphers, tools, libraries, and materials
|
||
related to cryptography.</li>
|
||
<li><a href="https://github.com/awslabs/s2n">s2n</a> - An implementation
|
||
of the TLS/SSL protocols. [Apache]</li>
|
||
<li><a
|
||
href="https://github.com/cr-marcstevens/sha1collisiondetection">sha1collisiondetection</a>
|
||
- Library and command line tool to detect SHA-1 collision in a file.
|
||
[MIT]</li>
|
||
<li><a href="https://github.com/google/tink">Tink</a> - A
|
||
multi-language, cross-platform library that provides cryptographic APIs
|
||
that are secure, easy to use correctly, and hard(er) to misuse.
|
||
[Apache-2.0]</li>
|
||
<li><a href="https://github.com/kokke/tiny-AES-c">Tiny AES in C</a> -
|
||
Small portable AES128/192/256 in C. [PublicDomain]</li>
|
||
<li><a href="https://github.com/cossacklabs/themis">Themis</a> - crypto
|
||
library for painless data security, providing symmetric and asymmetric
|
||
encryption, secure sockets with forward secrecy, for mobile and server
|
||
platforms. [Apache2]</li>
|
||
<li><a href="https://github.com/primihub/HEhub">HEhub</a> - A library
|
||
for homomorphic encryption and its applications. [Apache2]</li>
|
||
</ul>
|
||
<h2 id="csv">CSV</h2>
|
||
<p><em>Libraries for parsing Comma Separated Value (CSV) files</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/furfurylic/commata">commata</a> - Just
|
||
another header-only C++17 CSV parser. [Unlicense]</li>
|
||
<li><a href="https://github.com/p-ranav/csv2">csv2</a> - Fast CSV parser
|
||
for modern C++. [MIT]</li>
|
||
<li><a href="https://github.com/ashaduri/csv-parser">Csv::Parser</a> -
|
||
Compile-time and runtime CSV parser written in C++17. [Zlib]</li>
|
||
<li><a href="https://github.com/ben-strasser/fast-cpp-csv-parser">Fast
|
||
C++ CSV Parser</a> - Small, easy-to-use and fast header-only library for
|
||
reading CSV files. [BSD-3-Clause]</li>
|
||
<li><a href="https://github.com/stephenberry/glaze">Glaze</a> - High
|
||
performance, header only, CSV library with reflection support.
|
||
[MIT]</li>
|
||
<li><a href="https://github.com/ashtum/lazycsv">lazycsv</a> - A fast,
|
||
lightweight and single-header csv parser for modern C++. [MIT]</li>
|
||
<li><a href="https://github.com/red0124/ssp">ssp</a> - A header only
|
||
“csv” parser which is fast and versatile with modern C++ api. [MIT]</li>
|
||
<li><a href="https://github.com/vincentlaucsb/csv-parser">Vince’s CSV
|
||
Parser</a> - A fast, self-contained, streaming C++17 CSV parser with
|
||
optional type-casting and statistics. [MIT]</li>
|
||
</ul>
|
||
<h2 id="database">Database</h2>
|
||
<p><em>Database Libraries, SQL Servers, ODBC Drivers, and Tools</em></p>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/ClickHouse/clickhouse-cpp">ClickHouse</a> - C++
|
||
client for ClickHouse DBMS. [Apache2]</li>
|
||
<li><a href="https://duckdb.org/">DuckDB</a> - in-process SQL OLAP
|
||
Database Management System. [MIT]</li>
|
||
<li><a href="https://github.com/paulftw/hiberlite">hiberlite</a> - C++
|
||
Object-relational mapping for sqlite3. [BSD]</li>
|
||
<li><a href="https://github.com/redis/hiredis">Hiredis</a> - A
|
||
minimalistic C client library for the Redis database. [BSD]</li>
|
||
<li><a href="https://github.com/infiniflow/infinity">Infinity</a> - The
|
||
AI-native database built for LLM applications, providing incredibly fast
|
||
vector and full-text search. [Apache2]</li>
|
||
<li><a href="https://github.com/apache/incubator-kvrocks">Kvrocks</a> -
|
||
A distributed key value NoSQL database that uses RocksDB as storage
|
||
engine and is compatible with Redis protocol. [Apache2]</li>
|
||
<li><a href="https://github.com/google/leveldb">LevelDB</a> - A fast
|
||
key-value storage library written at Google that provides an ordered
|
||
mapping from string keys to string values. [BSD]</li>
|
||
<li><a href="https://github.com/jtv/libpqxx">libpqxx</a> - The official
|
||
C++ client API for PostgreSQL. [BSD-3-Clause]</li>
|
||
<li><a href="https://www.symas.com/lmdb">LMDB</a> - Very fast embedded
|
||
key/value store with full ACID semantics. [OpenLDAP]</li>
|
||
<li><a href="https://github.com/bendiken/lmdbxx">LMDB++</a> - C++11
|
||
wrapper for the LMDB embedded database library. [PublicDomain]</li>
|
||
<li><a href="https://github.com/memgraph/mgclient">mgclient</a> - C/C++
|
||
Memgraph Client. [Apache2]</li>
|
||
<li><a href="https://github.com/mongodb/mongo-c-driver">MongoDB C
|
||
Driver</a> - MongoDB client library for C. [Apache2]</li>
|
||
<li><a href="https://github.com/mongodb/mongo-cxx-driver">MongoDB C++
|
||
Driver</a> - C++ driver for MongoDB. [Apache2]</li>
|
||
<li><a href="https://github.com/mongodb/libbson">MongoDB Libbson</a> - A
|
||
BSON utility library. [Apache2]</li>
|
||
<li><a href="http://www.tangentsoft.net/mysql++/">MySQL++</a> - A C++
|
||
wrapper for MySQL’s C API. [LGPL]</li>
|
||
<li><a href="https://github.com/nanodbc/nanodbc">nanodbc</a> - A small
|
||
C++ wrapper for the native C ODBC API. [MIT]</li>
|
||
<li><a href="https://www.codesynthesis.com/products/odb/">ODB</a> - An
|
||
open-source, cross-platform, and cross-database object-relational
|
||
mapping (ORM) system for C++. [GPLv2]</li>
|
||
<li><a href="https://github.com/luca3m/redis3m">redis3m</a> - Wrapper of
|
||
hiredis with clean C++ interface, supporting sentinel and ready to use
|
||
patterns. [Apache2]</li>
|
||
<li><a href="https://github.com/Restream/reindexer">Reindexer</a> -
|
||
Embeddable, in-memory, document-oriented database with a high-level
|
||
Query builder interface. [Apache2] <a
|
||
href="https://reindexer.io/">website</a></li>
|
||
<li><a href="https://github.com/facebook/rocksdb">RocksDB</a> - Embedded
|
||
key-value store for fast storage from facebook. [BSD]</li>
|
||
<li><a
|
||
href="https://github.com/LiveAsynchronousVisualizedArchitecture/simdb">SimDB</a>
|
||
- High performance, shared memory, lock free, cross platform, single
|
||
file, minimal dependencies, C++11 key-value store. [Apache2]</li>
|
||
<li><a href="https://github.com/SOCI/soci">SOCI</a> - A database
|
||
abstraction layer for C++. [Boost]</li>
|
||
<li><a href="https://github.com/speedb-io/speedb">Speedb</a> -
|
||
Community-led project: A RocksDB compliant high performance scalable
|
||
embedded key-value store. [Apache2]</li>
|
||
<li><a href="http://www.sqlite.org/">SQLite</a> - A completely embedded,
|
||
full-featured relational database in a few 100k that you can include
|
||
right into your project. [PublicDomain]</li>
|
||
<li><a href="https://github.com/SRombauts/SQLiteCpp">SQLiteC++</a> -
|
||
SQLiteC++ (SQLiteCpp) is a smart and easy to use C++ SQLite3 wrapper.
|
||
[MIT]</li>
|
||
<li><a
|
||
href="https://github.com/SqliteModernCpp/sqlite_modern_cpp">sqlite_modern_cpp</a>
|
||
- Header only C++14 wrapper around sqlite library. [MIT]</li>
|
||
<li><a href="https://github.com/fnc12/sqlite_orm">sqlite_orm</a> -
|
||
SQLite ORM light header only library for modern C++. [AGPL + paid
|
||
MIT]</li>
|
||
<li><a href="https://github.com/rbock/sqlpp11">sqlpp11</a> - A type safe
|
||
embedded domain specific language for SQL queries and results in C++.
|
||
[BSD-2-Clause]</li>
|
||
<li><a href="https://github.com/TileDB-Inc/TileDB">TileDB</a> - Fast
|
||
Dense and Sparse Multidimensional Array DBMS. [MIT] <a
|
||
href="https://tiledb.io/">website</a></li>
|
||
<li><a href="https://github.com/silverqx/TinyORM">TinyORM</a> - Modern
|
||
C++ ORM library. [MIT] <a
|
||
href="https://www.tinyorm.org/">website</a></li>
|
||
<li><a href="https://github.com/symisc/unqlite">UnQLite</a> - A
|
||
self-contained, serverless, zero-configuration, transactional NoSQL
|
||
engine. [BSD-2-Clause] <a href="https://unqlite.org/">website</a></li>
|
||
<li><a href="https://upscaledb.com">upscaledb</a> - An embedded “typed”
|
||
key/value store with a built-in query interface. [GPLv3]</li>
|
||
<li><a href="https://github.com/kassane/tigerbeetle-cpp">TigerBeetleDB
|
||
C++ client (Community)</a> - TigerBeetle is a financial accounting
|
||
database designed for mission critical safety and performance to power
|
||
the future of financial services. [BSL-1.0]</li>
|
||
<li><a href="https://github.com/unum-cloud/ustore">UStore</a> -
|
||
Multi-Modal database for BLOBs, JSON, and graphs. [Apache2]</li>
|
||
<li><a href="https://github.com/facebookincubator/velox">Velox</a> - A
|
||
C++ vectorized database acceleration library aimed to optimizing query
|
||
engines and data processing systems. [Apache-2.0] <a
|
||
href="https://velox-lib.io/">website</a></li>
|
||
</ul>
|
||
<h2 id="data-visualization">Data visualization</h2>
|
||
<p><em>Data visualization Libraries</em></p>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/alandefreitas/matplotplusplus">matplotplusplus</a>
|
||
- C++ Graphics Library for Data Visualization. [MIT] <a
|
||
href="https://alandefreitas.github.io/matplotplusplus/">website</a></li>
|
||
</ul>
|
||
<h2 id="debug">Debug</h2>
|
||
<p><em>Debugging Libraries, Memory Leak and Resource Leak Detection,
|
||
Unit Testing</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/bombela/backward-cpp">backward-cpp</a> -
|
||
A beautiful stack trace pretty printer for C++. [MIT]</li>
|
||
<li><a href="https://bencher.dev/">Bencher</a> - A suite of continuous
|
||
benchmarking tools designed to catch performance regressions in CI.
|
||
[MIT]/[Apache2]</li>
|
||
<li><a href="https://github.com/google/benchmark">benchmark</a> - Google
|
||
provided small microbenchmark support library. [Apache2]</li>
|
||
<li><a href="https://github.com/boostorg/test">Boost.Test</a> - Boost
|
||
Test Library. [Boost] <a
|
||
href="https://boost.org/libs/test">website</a></li>
|
||
<li><a href="https://github.com/libcheck/check">check</a> - Check is a
|
||
unit testing framework for C. [LGPL-2.1] <a
|
||
href="https://libcheck.github.io/check/">website</a></li>
|
||
<li><a href="https://github.com/onqtam/doctest">doctest</a> - The
|
||
lightest feature rich C++ single header testing framework. [MIT]</li>
|
||
<li><a href="https://github.com/catchorg/Catch2">Catch2</a> - A modern,
|
||
C++-native, test framework for unit-tests, TDD and BDD. [Boost]</li>
|
||
<li><a href="https://github.com/DigitalInBlue/Celero">Celero</a> - C++
|
||
Benchmarking Framework. [Apache2]</li>
|
||
<li><a href="https://github.com/philip82148/cpp-dump">cpp-dump</a> - A
|
||
C++ library for debugging purposes that can print any variable, even
|
||
user-defined types. [MIT]</li>
|
||
<li><a href="https://github.com/cpputest/cpputest">CppUTest</a> - Unit
|
||
testing and mocking framework for C/C++. [BSD-3-clause]</li>
|
||
<li><a href="http://cute-test.com">CUTE</a> - C++ Unit Testing Easier.
|
||
[LGPL3]</li>
|
||
<li><a href="https://cmocka.org/">CMocka</a> - unit testing framework
|
||
for C with support for mock objects. [Apache2]</li>
|
||
<li><a href="https://github.com/chronoxor/CppBenchmark">CppBenchmark</a>
|
||
- Performance benchmark framework for C++ with nanoseconds measure
|
||
precision. [MIT]</li>
|
||
<li><a href="https://github.com/jeremy-rifkin/cpptrace">Cpptrace</a> - A
|
||
simple, portable, and self-contained C++ stacktrace library supporting
|
||
C++11 and greater. [MIT]</li>
|
||
<li><a
|
||
href="http://www.freedesktop.org/wiki/Software/cppunit/">CppUnit</a> -
|
||
C++ port of JUnit. [LGPL2]</li>
|
||
<li><a href="https://cmake.org/cmake/help/v2.8.8/ctest.html">CTest</a> -
|
||
The CMake test driver program. [BSD]</li>
|
||
<li><a href="https://github.com/sharkdp/dbg-macro">dbg-macro</a> - A
|
||
dbg(…) macro for C++. [MIT]</li>
|
||
<li><a
|
||
href="https://github.com/CobaltFusion/DebugViewPP">DebugViewPP</a> -
|
||
Debug logging viewer. [Boost]</li>
|
||
<li><a href="http://www.deleaker.com">Deleaker</a> - A tool for resource
|
||
leak detection, including memory, GDI and handle leaks.</li>
|
||
<li><a href="https://github.com/eranpeer/FakeIt">FakeIt</a> - Simple
|
||
mocking framework for C++. [MIT]</li>
|
||
<li><a href="https://github.com/meekrosoft/fff">fff</a> - A
|
||
micro-framework for creating fake C functions. [MIT]</li>
|
||
<li><a
|
||
href="https://github.com/google/googletest/blob/master/googlemock/README.md">Google
|
||
Mock</a> - A library for writing and using C++ mock classes. [BSD]</li>
|
||
<li><a href="https://github.com/google/googletest">Google Test</a> -
|
||
Google C++ Testing Framework. [BSD]</li>
|
||
<li><a
|
||
href="https://github.com/deplinenoise/ig-debugheap">ig-debugheap</a> -
|
||
Multiplatform debug heap useful for tracking down memory errors.
|
||
[BSD]</li>
|
||
<li><a href="https://github.com/jeremy-rifkin/libassert">libassert</a> -
|
||
The most over-engineered C++ assertion library. [MIT]</li>
|
||
<li><a href="https://github.com/zorgnax/libtap">libtap</a> - Write tests
|
||
in C. [GPL2]</li>
|
||
<li><a href="https://github.com/jonasmr/microprofile">microprofile</a> -
|
||
Profiler with web-view for multiple platforms. [Unlicense]</li>
|
||
<li><a href="https://github.com/siu/minunit">MinUnit</a> - A minimal
|
||
unit testing framework for C self-contained in a single header file.
|
||
[MIT]</li>
|
||
<li><a href="http://www.mockator.com">Mockator</a> - Eclipse CDT plug-in
|
||
for C++ Seams and Mock Objects.</li>
|
||
<li><a href="https://github.com/martinus/nanobench">nanobench</a> -
|
||
Simple, fast, accurate single-header microbenchmarking functionality for
|
||
C++11/14/17/20. [MIT] <a
|
||
href="https://nanobench.ankerl.com">website</a></li>
|
||
<li><a
|
||
href="https://github.com/mattreecebentley/plf_nanotimer">Nanotimer</a> -
|
||
A simple low-overhead cross-platform timer class for benchmarking.
|
||
[zLib] <a href="http://www.plflib.org/nanotimer.htm">website</a></li>
|
||
<li><a href="https://github.com/libnonius/nonius">Nonius</a> - A C++
|
||
micro-benchmarking framework. [CC]</li>
|
||
<li><a href="https://github.com/Celtoys/Remotery">Remotery</a> - Single
|
||
C File Profiler with Web Viewer. [Apache2]</li>
|
||
<li><a href="https://github.com/cschreib/snitch">snitch</a> -
|
||
Lightweight C++20 testing framework. [Boost]</li>
|
||
<li><a href="https://github.com/trytouca/trytouca">Touca</a> -
|
||
Open-source regression testing system that you can self-host. [Apache2]
|
||
<a href="https://touca.io/">website</a></li>
|
||
<li><a
|
||
href="https://github.com/unittest-cpp/unittest-cpp">UnitTest++</a> - A
|
||
lightweight unit testing framework for C++. [MIT/X Consortium
|
||
license]</li>
|
||
<li><a href="https://github.com/ThrowTheSwitch/Unity">Unity</a> - Simple
|
||
Unit Testing for C. [MIT]</li>
|
||
<li><a href="https://github.com/sheredom/utest.h">utest.h</a> - Single
|
||
header unit testing framework for C and C++. [Unlicense]</li>
|
||
<li><a href="https://github.com/boost-experimental/ut">μt</a> - C++20
|
||
single header/single module, macro-free μ(micro)/Unit Testing Framework.
|
||
[Boost]</li>
|
||
<li><a href="https://kinddragon.github.io/vld//">VLD</a> - Visual Leak
|
||
Detector. A free, robust, open-source memory leak detection system for
|
||
Visual C++.</li>
|
||
</ul>
|
||
<h2 id="documentation">Documentation</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/lawmurray/doxide">Doxide</a> - Modern
|
||
documentation for modern C++, configure with YAML, output Markdown.
|
||
[Apache 2.0] <a href="https://doxide.org">website</a></li>
|
||
<li><a href="https://github.com/doxygen/doxygen">doxygen</a> :zap: - The
|
||
de facto standard tool for generating documentation from annotated C++
|
||
sources. [GPL2] <a href="https://www.doxygen.org">website</a></li>
|
||
<li><a href="https://github.com/vovkos/doxyrest">doxyrest</a> - A
|
||
compiler from Doxygen XML to reStructuredText for Sphinx. [MIT]</li>
|
||
<li><a href="https://github.com/hdoc/hdoc">hdoc</a> - The modern
|
||
documentation tool for C++. [AGPL/Proprietary] <a
|
||
href="https://hdoc.io">website</a></li>
|
||
<li><a href="https://github.com/NaturalDocs/NaturalDocs">Natural
|
||
Docs</a> - Natural Docs is an open source documentation generator for
|
||
multiple programming languages. [AGPL/Proprietary] <a
|
||
href="https://www.naturaldocs.org">website</a></li>
|
||
<li><a href="https://github.com/sphinx-doc/sphinx">Sphinx</a> - Sphinx
|
||
makes it easy to create intelligent and beautiful documentation.
|
||
[BSD-2-Clause] <a href="https://www.sphinx-doc.org">website</a></li>
|
||
</ul>
|
||
<h2 id="dsp">DSP</h2>
|
||
<p><em>Digital signal processing.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/vinniefalco/DSPFilters">DSPFilters</a> -
|
||
A collection of useful C++ classes for digital signal processing.
|
||
[MIT]</li>
|
||
<li><a href="http://www.fftw.org/">FFTW</a> - A C library for computing
|
||
the DFT in one or more dimensions. [GPL]</li>
|
||
<li><a href="https://github.com/berndporr/iir1">iir1</a> - IIR Realtime
|
||
C++ filter library. [MIT]</li>
|
||
<li><a href="https://github.com/mborgerding/kissfft">kissfft</a> - A
|
||
Fast Fourier Transform (FFT) library that tries to Keep it Simple,
|
||
Stupid. [BSD-3-Clause]</li>
|
||
<li><a href="https://github.com/mreineck/pocketfft">pocketfft</a> - FFT
|
||
implementation based on FFTPack, but with several improvements.
|
||
[BSD-3-Clause]</li>
|
||
<li><a href="https://github.com/rafat/wavelib">wavelib</a> - C
|
||
implementation of 1D and 2D wavelet transforms. [BSD-3-Clause]</li>
|
||
</ul>
|
||
<h2 id="font">Font</h2>
|
||
<p><em>Libraries for parsing and manipulating font files.</em></p>
|
||
<ul>
|
||
<li><a
|
||
href="https://gitlab.freedesktop.org/fontconfig/fontconfig">Fontconfig</a>
|
||
- Font configuration and customization library. [MIT] <a
|
||
href="https://www.freedesktop.org/wiki/Software/fontconfig/">website</a></li>
|
||
<li><a href="https://www.freetype.org/">FreeType</a> - FreeType is a
|
||
freely available software library to render fonts. [FTL &
|
||
GPLv2]</li>
|
||
<li><a href="https://github.com/caryll/otfcc">otfcc</a> - A C library
|
||
and utility used for parsing and writing OpenType font files.
|
||
[Apache-2.0]</li>
|
||
<li><a href="https://github.com/harfbuzz/harfbuzz">harfbuzz</a> - A text
|
||
shaping engine. [Old MIT]</li>
|
||
<li><a href="https://github.com/tomolt/libschrift">libschrift</a> - A
|
||
lightweight TrueType font rendering library. [ISC]</li>
|
||
</ul>
|
||
<h2 id="game-engine">Game Engine</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/Equilibrium-Games/Acid">Acid</a> - A
|
||
high speed C++17 Vulkan game engine. [MIT]</li>
|
||
<li><a href="http://liballeg.org/">Allegro</a> - A cross-platform
|
||
library mainly aimed for video games and multimedia programming.
|
||
[zlib]</li>
|
||
<li><a href="http://www.cocos2d-x.org/">Cocos2d-x</a> - A multi-platform
|
||
framework for building 2d games, interactive books, demos and other
|
||
graphical applications. [MIT]</li>
|
||
<li><a href="https://github.com/orangeduck/Corange">Corange</a> - A game
|
||
engine written in pure C, SDL and OpenGL. [BSD]</li>
|
||
<li><a href="https://github.com/dbartolini/crown">crown</a> - Crown is a
|
||
general purpose data-driven game engine, written from scratch in
|
||
orthodox C++ with a minimalistic and data-oriented design philosophy in
|
||
mind. [MIT]</li>
|
||
<li><a href="http://sourceforge.net/projects/delta3d/">delta3d</a> - A
|
||
robust simulation platform. [LGPL2]</li>
|
||
<li><a href="https://github.com/skypjack/entt">EnTT</a> - Gaming meets
|
||
modern C++. [MIT]</li>
|
||
<li><a href="https://github.com/gameplay3d/GamePlay">GamePlay</a> - A
|
||
cross-platform native C++ game framework for creating 2D/3D mobile and
|
||
desktop games. [Apache2]</li>
|
||
<li><a href="https://github.com/godotengine/godot">Godot</a> - A fully
|
||
featured, open source, MIT licensed, game engine. [MIT]</li>
|
||
<li><a href="https://github.com/grit-engine/grit-engine">Grit</a> -
|
||
Community project to build a free game engine for implementing open
|
||
world 3D games. [MIT]</li>
|
||
<li><a href="https://github.com/amzeratul/halley">Halley</a> - A
|
||
lightweight game engine written in C++14 with a “true” entity-component
|
||
system. [Apache 2.0]</li>
|
||
<li><a href="https://github.com/jhasse/jngl/">JNGL</a> - 2D library for
|
||
Linux, Windows, macOS, Android, iOS, Xbox, the Nintendo Switch and the
|
||
Web. [zlib] <a href="https://bixense.com/jngl/">website</a></li>
|
||
<li><a href="https://github.com/gongminmin/KlayGE">KlayGE</a> - a
|
||
cross-platform open source game engine with plugin-based architecture.
|
||
[GPLv2] <a href="http://www.klayge.org/">website</a></li>
|
||
<li><a href="https://github.com/nCine/nCine">nCine</a> - A
|
||
cross-platform 2D game engine with an emphasis on performance, written
|
||
in C++11 and optionally scriptable in Lua. [MIT] <a
|
||
href="https://ncine.github.io/">website</a></li>
|
||
<li><a href="https://github.com/o3de/o3de">o3de</a> - An open-source,
|
||
real-time, multi-platform 3D engine based on Amazon Lumberyard.
|
||
[Apache2] <a href="https://o3de.org/">website</a></li>
|
||
<li><a href="https://github.com/OpenXRay/xray-16">OpenXRay</a> - a
|
||
community-modified X-Ray engine used in S.T.A.L.K.E.R. game series.
|
||
[Modified BSD/non-commercial only]</li>
|
||
<li><a href="http://oxygine.org/">Oxygine</a> - A cross-platform 2D C++
|
||
game engine. [MIT]</li>
|
||
<li><a href="https://github.com/panda3d/panda3d">Panda3D</a> - A game
|
||
engine, a framework for 3D rendering and game development for Python and
|
||
C++ programs. [Modified BSD] <a
|
||
href="https://www.panda3d.org/">website</a></li>
|
||
<li><a
|
||
href="https://github.com/OneLoneCoder/olcPixelGameEngine">PixelGameEngine</a>
|
||
- The official distribution of olcPixelGameEngine, a tool used in
|
||
javidx9’s YouTube videos and projects. [OLC3]</li>
|
||
<li><a href="https://github.com/ivansafrin/Polycode">Polycode</a> - A
|
||
cross-platform framework for creative code in C++ (with Lua bindings).
|
||
[MIT] <a href="http://polycode.org/">website</a></li>
|
||
<li><a href="https://github.com/quakeforge/quakeforge">quakeforge</a> -
|
||
Actively maintained branch of the original Quake engine code with 20+
|
||
years of development. [GPL-2.0]</li>
|
||
<li><a href="https://github.com/raysan5/raylib">raylib</a> - A simple
|
||
and easy-to-use library to enjoy videogames programming. [zlib/libpng]
|
||
<a href="http://www.raylib.com/">website</a></li>
|
||
<li><a href="https://github.com/spring/spring">Spring</a> - A powerful
|
||
free cross-platform RTS game engine. [GPLv2/GPLv3] <a
|
||
href="https://springrts.com/">website</a></li>
|
||
<li><a href="https://github.com/TorqueGameEngines/Torque2D">Torque2D</a>
|
||
- An open-source and cross-platform C++ engine built for 2D game
|
||
development. [MIT] <a
|
||
href="https://torque3d.org/torque2d">website</a></li>
|
||
<li><a href="https://github.com/TorqueGameEngines/Torque3D">Torque3D</a>
|
||
- An open-source C++ engine built for 3D game development. [MIT] <a
|
||
href="https://torque3d.org/torque3d">website</a></li>
|
||
<li><a href="https://github.com/hugoam/toy">toy engine</a> - toy is a
|
||
thin and modular c++ game engine and offers simple expressive c++ idioms
|
||
to design full featured 2D or 3D games in fast iterations.</li>
|
||
<li><a href="https://urho3d.github.io/">Urho3D</a> - A free lightweight,
|
||
cross-platform 2D and 3D game engine implemented in C++. Greatly
|
||
inspired by OGRE and Horde3D. [MIT]</li>
|
||
<li><a href="https://github.com/ezEngine/ezEngine">ezEngine</a> - Is a
|
||
free, open-source game engine written in C++. Its philosophy is to be
|
||
modular and flexible, such that it can be adapted to many different use
|
||
cases. [MIT] <a href="https://ezengine.net/">website</a></li>
|
||
</ul>
|
||
<h2 id="graph">Graph</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/ZigRazor/CXXGraph">CXXGraph</a> - free
|
||
C++(17) graph header-only library for representation and algorithms
|
||
execution. [AGPL-3.0]</li>
|
||
<li><a href="https://github.com/bobluppes/graaf">Graaf</a> - A
|
||
general-purpose lightweight C++20 graph library. [MIT] <a
|
||
href="https://bobluppes.github.io/graaf/">website</a></li>
|
||
</ul>
|
||
<h2 id="gui">GUI</h2>
|
||
<p><em>Graphic User Interface</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/AshampooSystems/boden">Boden</a> -
|
||
Native, mobile, cross-platform GUI Framework. [GPL/LGPL/Proprietary] <a
|
||
href="https://www.boden.io">website</a></li>
|
||
<li><a href="http://cegui.org.uk/">CEGUI</a> - Flexible, cross-platform
|
||
GUI library.</li>
|
||
<li><a href="https://github.com/cycfi/elements">Elements</a> -
|
||
Lightweight, fine-grained, resolution independent, modular GUI library.
|
||
[MIT]</li>
|
||
<li><a href="http://www.fltk.org/index.php">FLTK</a> - Fast, light,
|
||
cross-platform C++ GUI toolkit. [LGPL2]</li>
|
||
<li><a href="http://fox-toolkit.org">FOX Toolkit</a> - an open-source,
|
||
cross-platform widget toolkit. [LGPL]</li>
|
||
<li><a href="https://github.com/vczh-libraries/GacUI">GacUI</a> - GPU
|
||
Accelerated C++ User Interface, with WYSIWYG developing tools, XML
|
||
supports, built-in data binding and MVVM features. [Ms-PL]</li>
|
||
<li><a href="http://www.gtk.org/">GTK+</a> - A multi-platform toolkit
|
||
for creating graphical user interfaces. [LGPL]</li>
|
||
<li><a href="http://www.gtkmm.org/en/">gtkmm</a> - The official C++
|
||
interface for the popular GUI library GTK+. [LGPL]</li>
|
||
<li><a href="https://github.com/ocornut/imgui">imgui</a> - Immediate
|
||
Mode Graphical User Interface with minimal dependencies. [MIT]</li>
|
||
<li><a href="https://github.com/epezent/implot">implot</a> - Immediate
|
||
Mode Plotting widgets for imgui. [MIT]</li>
|
||
<li><a href="https://www.tecgraf.puc-rio.br/iup">iup</a> -
|
||
Multi-platform toolkit for building graphical user interfaces.
|
||
[MIT]</li>
|
||
<li><a href="https://github.com/andlabs/libui">libui</a> - Simple and
|
||
portable (but not inflexible) GUI library in C that uses the native GUI
|
||
technologies of each platform it supports. [MIT]</li>
|
||
<li><a href="https://github.com/MyGUI/mygui">MyGUI</a> - Fast, flexible
|
||
and simple GUI. [MIT]</li>
|
||
<li><a href="http://nanapro.org/en-us/">nana</a> - Nana is a
|
||
cross-platform library for GUI programming in modern C++ style.
|
||
[Boost]</li>
|
||
<li><a href="https://github.com/mitsuba-renderer/nanogui">NanoGui</a> -
|
||
A minimalistic cross-platform widget library for OpenGL 3.x or higher.
|
||
[BSD]</li>
|
||
<li><a href="https://github.com/Immediate-Mode-UI/Nuklear">nuklear</a> -
|
||
A single-header ANSI C gui library. [PublicDomain]</li>
|
||
<li><a href="http://qcustomplot.com/">QCustomPlot</a> - Qt plotting
|
||
widget without further dependencies. [GPLv3]</li>
|
||
<li><a href="http://qwt.sourceforge.net/">Qwt</a> - Qt Widgets for
|
||
Technical Applications. [Own based on LGPL]</li>
|
||
<li><a href="http://qwtplot3d.sourceforge.net/">QwtPlot3D</a> - A
|
||
feature-rich Qt/OpenGL-based C++ programming library, providing
|
||
essentially a bunch of 3D-widgets. [zlib]</li>
|
||
<li><a href="https://github.com/mikke89/RmlUi">RmlUi</a> - The HTML/CSS
|
||
User Interface library evolved. Fork of libRocket. [MIT]</li>
|
||
<li><a href="http://sciter.com/">Sciter</a> - Sciter is an embeddable
|
||
HTML/CSS/scripting engine aimed to be used as an UI layer of modern
|
||
desktop applications. [Free/Commercial]</li>
|
||
<li><a href="https://github.com/slint-ui/slint">Slint</a> - Lightweight
|
||
GUI toolkit for desktop and embedded. [GPL/Free/Proprietary] <a
|
||
href="https://slint.dev/">website</a></li>
|
||
<li><a href="https://github.com/texus/TGUI">TGUI</a> - Cross-platform
|
||
modern c++ GUI. [Zlib] <a href="https://tgui.eu/">website</a></li>
|
||
<li><a href="https://github.com/webui-dev/webui">WebUI</a> - Use any web
|
||
browser as GUI, with your preferred language in the backend and HTML5 in
|
||
the frontend. [MIT] <a href="https://webui.me/">website</a></li>
|
||
<li><a href="http://wxwidgets.org/">wxWidgets</a> - A C++ library that
|
||
lets developers create applications for Windows, Mac OS X, Linux and
|
||
other platforms with a single code base. [Own LGPL]</li>
|
||
<li><a href="https://github.com/gammasoft71/xtd">xtd</a> - Modern
|
||
C++17/20 framework to create console (CLI), forms (GUI like WinForms)
|
||
and tunit (unit tests like Microsoft Unit Testing Framework)
|
||
applications on Windows, macOS, Linux, iOS and android. [MIT]</li>
|
||
<li><a href="https://github.com/yue/yue">Yue</a> - A library for
|
||
creating native cross-platform GUI apps. [LGPLv2]</li>
|
||
</ul>
|
||
<h2 id="graphics">Graphics</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/assimp/assimp">assimp</a> - Open Asset
|
||
Import Library (assimp) is a cross-platform 3D model import library
|
||
which aims to provide a common API for different 3D asset file formats.
|
||
[BSD-3-Clause] <a href="http://www.assimp.org">website</a></li>
|
||
<li><a href="https://github.com/bkaradzic/bgfx">bgfx</a> - A
|
||
cross-platform rendering library. [BSD]</li>
|
||
<li><a href="https://github.com/blend2d/blend2d">Blend2D</a> - 2D vector
|
||
graphics engine powered by a JIT compiler. [Zlib] <a
|
||
href="https://blend2d.com/">website</a></li>
|
||
<li><a href="http://www.cairographics.org/">Cairo</a> - A 2D graphics
|
||
library with support for multiple output devices. [LGPL2 or Mozilla
|
||
MPL]</li>
|
||
<li><a href="https://github.com/walkerje/C-Turtle">C-Turtle</a> - A
|
||
C++11 header-only turtle graphics library acting as a CImg wrapper.
|
||
[MIT]</li>
|
||
<li><a
|
||
href="https://github.com/DiligentGraphics/DiligentEngine">Diligent
|
||
Engine</a> - A modern cross-platform low-level 3D graphics library.
|
||
[Apache2]</li>
|
||
<li><a href="https://github.com/Microsoft/DirectXTK">DirectXTK</a> - A
|
||
collection of helper classes for writing DirectX 11.x code in C++.
|
||
[MIT]</li>
|
||
<li><a href="https://github.com/glfw/glfw">GLFW</a> - A simple,
|
||
cross-platform OpenGL wrangling library. [zlib/libpng]</li>
|
||
<li><a href="https://github.com/janekb04/glfwpp">GLFWPP</a> - A thin
|
||
modern C++17 header-only wrapper for GLFW. [MIT]</li>
|
||
<li><a href="https://github.com/harfang3d/harfang3d">Harfang 3D</a> 3D
|
||
visualization library usable in C++, Python, Lua and Go. Based on BGFX.
|
||
[GPLv3/LGPLv3/Proprietary] <a
|
||
href="https://www.harfang3d.com">website</a></li>
|
||
<li><a href="https://github.com/kosua20/herebedragons">herebedragons</a>
|
||
- A basic 3D scene implemented with various engines, frameworks or APIs.
|
||
[MIT] <a href="http://simonrodriguez.fr/dragon/">website</a></li>
|
||
<li><a href="https://github.com/horde3d/Horde3D">Horde3D</a> - A small
|
||
3D rendering and animation engine. [EPL]</li>
|
||
<li><a href="https://github.com/google/ion">Ion</a> - A small and
|
||
efficient set of libraries for building cross-platform client or server
|
||
applications that use 3D graphics. [Apache2] <a
|
||
href="https://google.github.io/ion/">website</a></li>
|
||
<li><a href="http://irrlicht.sourceforge.net/">Irrlicht</a> - A high
|
||
performance realtime 3D engine written in C++. [zlib]</li>
|
||
<li><a href="https://github.com/libigl/libigl">libigl</a> - Simple C++
|
||
geometry processing library. [MPL2]</li>
|
||
<li><a href="https://github.com/LukasBanana/LLGL">LLGL</a> - Low Level
|
||
Graphics Library (LLGL) is a thin abstraction layer for the modern
|
||
graphics APIs. [BSD-3-Clause]</li>
|
||
<li><a href="https://github.com/sammycage/lunasvg">LunaSVG</a> - a
|
||
standalone SVG rendering library in C++. [MIT]</li>
|
||
<li><a href="https://github.com/mosra/magnum">magnum</a> - Lightweight
|
||
and modular C++11/C++14 graphics middleware for games and data
|
||
visualization. [MIT] <a href="http://magnum.graphics">website</a></li>
|
||
<li><a href="https://github.com/micro-gl/micro-gl">micro-gl</a> -
|
||
Realtime, Embeddable, Headers Only C++11 CPU vector graphics. no STD
|
||
lib, no FPU and no GPU required. [CUSTOM] <a
|
||
href="https://micro-gl.github.io/docs/microgl">website</a></li>
|
||
<li><a href="https://github.com/memononen/nanovg">NanoVG</a> -
|
||
Antialiased 2D vector drawing library on top of OpenGL for UI and
|
||
visualizations. [Zlib]</li>
|
||
<li><a href="https://github.com/OGRECave">Ogre 3D</a> :zap: - A
|
||
scene-oriented, real-time, flexible 3D rendering engine (as opposed to a
|
||
game engine) written in C++. [MIT] <a
|
||
href="https://www.ogre3d.org">website</a></li>
|
||
<li><a href="http://www.openscenegraph.org/">OpenSceneGraph</a> - An
|
||
open source high performance 3D graphics toolkit. [OSGPL]</li>
|
||
<li><a
|
||
href="https://github.com/PixarAnimationStudios/OpenSubdiv">OpenSubdiv</a>
|
||
- Pixar’s library for evaluating and rendering subdivision surfaces on
|
||
CPU and GPU. [Modified Apache2]</li>
|
||
<li><a href="http://www.openvdb.org/">OpenVDB</a> - Library and tools
|
||
for storing, editing, and rendering volumetric datasets. [MPL2]</li>
|
||
<li><a href="http://www.panda3d.org/">Panda3D</a> - A framework for 3D
|
||
rendering and game development for Python and C++. [BSD]</li>
|
||
<li><a href="https://github.com/wdas/partio">Partio</a> - Library for
|
||
wrangling particle data, with support for most common file formats.
|
||
[Modified BSD]</li>
|
||
<li><a href="https://github.com/google/skia">Skia</a> - A complete 2D
|
||
graphic library for drawing Text, Geometries, and Images. [BSD] <a
|
||
href="https://skia.org/">website</a></li>
|
||
<li><a href="https://github.com/thorvg/thorvg">ThorVG</a> - a
|
||
platform-independent portable library that allows for drawing
|
||
vector-based scenes and animations, including SVG and Lottie. [MIT] <a
|
||
href="https://www.thorvg.org/">website</a></li>
|
||
<li><a href="https://github.com/msteinbeck/tinyspline">TinySpline</a> -
|
||
A small, yet powerful ANSI C library for interpolating, transforming,
|
||
and querying arbitrary NURBS, B-Splines, and Bézier curves. [MIT]</li>
|
||
<li><a href="https://github.com/urho3d/Urho3D">urho3d</a> -
|
||
Cross-platform rendering and game engine. [Many different, mostly
|
||
MIT]</li>
|
||
<li><a href="https://github.com/xelatihy/yocto-gl">Yocto/GL</a> - Tiny
|
||
C++ Libraries for Data-Driven Physically-based Graphics. [MIT]</li>
|
||
</ul>
|
||
<h2 id="image-processing">Image Processing</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/boostorg/gil">Boost.GIL</a> - Generic
|
||
Image Library. [Boost] <a
|
||
href="https://boost.org/libs/gil">website</a></li>
|
||
<li><a
|
||
href="https://github.com/baderouaich/BitmapPlusPlus">BitmapPlusPLus</a>
|
||
- Simple and Fast header only Bitmap C++ library. [MIT]</li>
|
||
<li><a href="http://cimg.eu/">CImg</a> - A small, open source, C++
|
||
toolkit for image processing. [Own LGPL or GPL]</li>
|
||
<li><a
|
||
href="https://www.codeproject.com/Articles/1300/CxImage">CxImage</a> -
|
||
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]</li>
|
||
<li><a href="https://github.com/davisking/dlib">Dlib</a> :zap: - A
|
||
modern C++11 machine learning, computer vision, numerical optimization,
|
||
and deep learning toolkit. [Boost] <a
|
||
href="http://dlib.net/">website</a></li>
|
||
<li><a href="https://github.com/richgel999/fpng">fpng</a> - Super fast
|
||
C++ .PNG writer/reader. [Unlicense]</li>
|
||
<li><a href="http://freeimage.sourceforge.net/">FreeImage</a> - An open
|
||
source library that supports popular graphics image formats and others
|
||
as needed by today’s multimedia applications. [GPL2 or GPL3]</li>
|
||
<li><a href="https://github.com/libgd/libgd">GD</a> - GD Graphics
|
||
Library, famously used in PHP for image loading/manipulation &
|
||
thumbnail generation. [custom permissive license, requires mention in
|
||
user docs] <a href="http://libgd.github.io/">website</a></li>
|
||
<li><a href="http://dicom.offis.de/dcmtk.php.en">DCMTK</a> - DICOM
|
||
Toolkit.</li>
|
||
<li><a
|
||
href="http://gdcm.sourceforge.net/wiki/index.php/Main_Page">GDCM</a> -
|
||
Grassroots DICOM library.</li>
|
||
<li><a href="http://www.itk.org/">ITK</a> - An open-source,
|
||
cross-platform system for image analysis. [Apache2 from ITK 4.0]</li>
|
||
<li><a href="https://github.com/DanBloomberg/leptonica">Leptonica</a> -
|
||
Leptonica is an open source library containing software that is broadly
|
||
useful for image processing and image analysis applications.
|
||
[BSD-2-Clause] <a
|
||
href="http://leptonica.org/index.html">website</a></li>
|
||
<li><a href="https://github.com/AOMediaCodec/libavif">libavif</a> -
|
||
Library for encoding and decoding .avif files. [BSD-2-Clause]</li>
|
||
<li><a
|
||
href="https://github.com/ShiqiYu/libfacedetection">libfacedetection</a>
|
||
- Open source library for face detection in images. The face detection
|
||
speed can reach 1500FPS. [BSD]</li>
|
||
<li><a
|
||
href="https://github.com/libjpeg-turbo/libjpeg-turbo">libjpeg-turbo</a>
|
||
- A JPEG image codec that uses SIMD instructions to accelerate baseline
|
||
JPEG encoding and decoding. [IJG & BSD-3-Clause & zlib] <a
|
||
href="https://libjpeg-turbo.org/">website</a></li>
|
||
<li><a href="https://github.com/libjxl/libjxl">libjxl</a> - JPEG XL
|
||
image format reference implementation. [BSD-3-Clause]</li>
|
||
<li><a href="https://github.com/pnggroup/libpng">libpng</a> - the
|
||
reference library for use in applications that read, create, and
|
||
manipulate PNG (Portable Network Graphics) raster image files.
|
||
[libpng-2.0] <a href="https://libpng.sourceforge.io/">website</a></li>
|
||
<li><a href="https://github.com/randy408/libspng">libspng</a> - Simple,
|
||
modern libpng alternative. [BSD-2] <a
|
||
href="https://libspng.org/">website</a></li>
|
||
<li><a href="https://github.com/jcupitt/libvips">libvips</a> - A fast
|
||
image processing library with low memory needs. [LGPL] <a
|
||
href="http://www.vips.ecs.soton.ac.uk/">website</a></li>
|
||
<li><a href="https://github.com/lvandeve/lodepng">LodePNG</a> - PNG
|
||
encoder and decoder in C and C++. [Zlib]</li>
|
||
<li><a href="https://imagemagick.org/script/magick++.php">Magick++</a> -
|
||
ImageMagick program interfaces for C++. [Apache2]</li>
|
||
<li><a
|
||
href="https://imagemagick.org/script/magick-wand.php">MagickWnd</a> -
|
||
ImageMagick program interfaces for C. [Apache2]</li>
|
||
<li><a href="https://github.com/mozilla/mozjpeg">MozJPEG</a> - Improved
|
||
JPEG encoder. [BSD/BSD-3-Clause/ZLIB]</li>
|
||
<li><a href="https://github.com/opencv">OpenCV</a> :zap: - Open source
|
||
computer vision. [Apache2] <a href="https://opencv.org">website</a></li>
|
||
<li><a href="http://www.openexr.com/">OpenEXR</a> - Cross-platform
|
||
library for high dynamic range imaging. [Modified BSDF]</li>
|
||
<li><a href="https://github.com/OpenImageIO/oiio">OpenImageIO</a> -
|
||
Powerful image and texture wrangling library with support for a wide
|
||
number of common lossy and RAW formats. [Modified BSD]</li>
|
||
<li><a href="https://github.com/uclouvain/openjpeg">OpenJPEG</a> - an
|
||
open-source JPEG 2000 codec written in C language. [BSD-2-Clause]</li>
|
||
<li><a href="https://github.com/happy-sea-fox/sail">SAIL</a> -
|
||
Easy-to-use cross-platform image decoding library with pluggable image
|
||
codecs. [MIT]</li>
|
||
<li><a href="https://github.com/ermig1979/Simd">Simd</a> - C++ image
|
||
processing library with using of SIMD: SSE, SSE2, SSE3, SSSE3, SSE4.1,
|
||
SSE4.2, AVX, AVX2, AVX-512, VMX(Altivec) and VSX(Power7), NEON for ARM.
|
||
[MIT]</li>
|
||
<li><a
|
||
href="https://github.com/nothings/stb/blob/master/stb_image.h">stb-image</a>
|
||
- STB single-header image loading library. [Public Domain]</li>
|
||
<li><a href="https://github.com/tesseract-ocr">tesseract-ocr</a> - An
|
||
OCR engine. [Apache2]</li>
|
||
<li><a href="https://github.com/cdcseacave/TinyEXIF">TinyEXIF</a> - Tiny
|
||
ISO-compliant C++ EXIF and XMP parsing library for JPEG. [MIT]</li>
|
||
<li><a href="https://github.com/matt-42/vpp">Video++</a> - A C++14 high
|
||
performance video and image processing library. [MIT]</li>
|
||
<li><a href="https://github.com/ukoethe/vigra">VIGRA</a> - A generic C++
|
||
computer vision library for image analysis. [MIT X11]</li>
|
||
<li><a href="http://www.vtk.org/">VTK</a> - Open-source, freely
|
||
available software system for 3D computer graphics, image processing and
|
||
visualization. [BSD]</li>
|
||
</ul>
|
||
<h2 id="internationalization">Internationalization</h2>
|
||
<ul>
|
||
<li><a href="http://www.gnu.org/software/gettext/">gettext</a> - GNU
|
||
‘gettext’. [GPL2]</li>
|
||
<li><a href="http://site.icu-project.org/">IBM ICU</a> - A set of C/C++
|
||
and Java libraries providing Unicode and Globalization support.
|
||
[ICU]</li>
|
||
<li><a href="http://www.gnu.org/software/libiconv/">libiconv</a> - An
|
||
encoding conversion library between different character encodings.
|
||
[GPL]</li>
|
||
<li><a href="https://github.com/simdutf/simdutf">simdutf</a> - Unicode
|
||
routines (UTF8, UTF16, UTF32): billions of characters per second using
|
||
SSE2, AVX2, NEON, AVX-512. [Apache-2/MIT]</li>
|
||
<li><a href="https://github.com/uni-algo/uni-algo">uni-algo</a> -
|
||
Unicode Algorithms Implementation for C/C++. [Unlicense or MIT]</li>
|
||
<li><a href="https://github.com/sheredom/utf8.h">utf8.h</a> - Single
|
||
header utf8 string functions for C and C++. [Unlicense]</li>
|
||
<li><a href="https://github.com/JuliaStrings/utf8proc">utf8proc</a> - A
|
||
clean C library for processing UTF-8 Unicode data. [MIT]</li>
|
||
</ul>
|
||
<h2 id="inter-process-communication">Inter-process communication</h2>
|
||
<ul>
|
||
<li><a href="https://thrift.apache.org/">Apache Thrift</a> - Efficient
|
||
cross-language IPC/RPC, works between C++, Java, Python, PHP, C#, and
|
||
many more other languages. Originally developed by Facebook.
|
||
[Apache2]</li>
|
||
<li><a
|
||
href="https://github.com/boostorg/interprocess">Boost.Interprocess</a> -
|
||
Header-only Boost library that supports kernel-level shared memory and
|
||
memory-mapped files, with in-built synchronization mechanisms
|
||
(semaphores, mutexes, and more). [Boost] <a
|
||
href="https://boost.org/libs/interprocess">website</a></li>
|
||
<li><a href="https://github.com/apache/brpc">bRPC</a> - bRPC is an
|
||
Industrial-grade RPC framework using C++ Language, which is often used
|
||
in high performance system such as Search, Storage, Machine learning,
|
||
Advertisement, Recommendation etc. [Apache2] <a
|
||
href="https://brpc.apache.org/">website</a></li>
|
||
<li><a href="https://github.com/capnproto/capnproto">Cap’n Proto</a> -
|
||
Fast data interchange format and capability-based RPC system. [MIT] <a
|
||
href="https://capnproto.org/">website</a></li>
|
||
<li><a href="https://github.com/continental/ecal">eCAL</a> - Pub/sub,
|
||
client/server, C++/Python/C#, various message protocols (protobuf,
|
||
capnproto ..). [Apache2] <a href="http://www.ecal.io/">website</a></li>
|
||
<li><a href="https://github.com/grpc/grpc">gRPC</a> - A high
|
||
performance, open source, general-purpose RPC framework. [BSD] <a
|
||
href="http://www.grpc.io/">website</a></li>
|
||
<li><a href="https://github.com/zeroc-ice/ice">Ice</a> - Comprehensive
|
||
RPC framework with support for C++, C#, Java, JavaScript, Python and
|
||
more. [GPLv2]</li>
|
||
<li><a href="https://github.com/eclipse-iceoryx/iceoryx">iceoryx</a> -
|
||
True zero-copy inter-process communication framework for safety critical
|
||
systems with bindings for C, Rust. Runs on Linux, QNX, Windows, Mac OS,
|
||
FreeBSD. [Apache2] <a href="https://iceoryx.io/">website</a></li>
|
||
<li><a
|
||
href="https://github.com/cinemast/libjson-rpc-cpp">libjson-rpc-cpp</a> -
|
||
JSON-RPC framework for C++ servers and clients. [MIT]</li>
|
||
<li><a href="https://github.com/nanomsg/nanomsg">nanomsg</a> - A simple
|
||
high-performance implementation of several “scalability protocols”.
|
||
[MIT] <a href="http://nanomsg.org/">website</a></li>
|
||
<li><a href="https://github.com/nanomsg/nng">nng</a> -
|
||
nanomsg-next-generation, a light-weight brokerless messaging library.
|
||
[MIT] <a href="https://nanomsg.github.io/nng/">website</a></li>
|
||
<li><a href="https://github.com/rpclib/rpclib">rpclib</a> - A modern C++
|
||
msgpack-RPC server and client library. [MIT]</li>
|
||
<li><a href="https://github.com/pearu/simple-rpc-cpp">simple-rpc-cpp</a>
|
||
- A simple RPC wrapper generator to C/C++ functions. [BSD]</li>
|
||
<li><a href="https://github.com/sogou/srpc">SRPC</a> - A lightweight RPC
|
||
system that supports multiple protocols and OpenTelemetry.
|
||
[Apache2]</li>
|
||
<li><a href="http://wamp.ws/">WAMP</a> - Provides RPC and pub/sub
|
||
messaging patterns. (various implementations, various languages)</li>
|
||
<li><a href="http://xmlrpc-c.sourceforge.net/">xmlrpc-c</a> - A
|
||
lightweight RPC library based on XML and HTTP. [BSD]</li>
|
||
</ul>
|
||
<h2 id="json">JSON</h2>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/boostorg/property_tree">Boost.PropertyTree</a>
|
||
- A property tree parser/generator that can be used to parse
|
||
XML/JSON/INI/Info files. [Boost] <a
|
||
href="https://boost.org/libs/property_tree">website</a></li>
|
||
<li><a href="https://github.com/DaveGamble/cJSON">cJSON</a> -
|
||
Ultralightweight JSON parser in ANSI C. [MIT]</li>
|
||
<li><a href="https://github.com/beached/daw_json_link">DAW JSON Link</a>
|
||
- Fast, convenient JSON serialization and parsing in C++. [BSL-1.0]</li>
|
||
<li><a href="https://github.com/cesanta/frozen">frozen</a> - JSON parser
|
||
and generator for C/C++. [GPL & GPL2]</li>
|
||
<li><a href="https://github.com/stephenberry/glaze">Glaze</a> -
|
||
Extremely fast, in memory, JSON and interface library for modern C++.
|
||
[MIT]</li>
|
||
<li><a href="https://github.com/akheron/jansson">Jansson</a> - C library
|
||
for encoding, decoding and manipulating JSON data. [MIT]</li>
|
||
<li><a href="https://github.com/chrismanning/jbson">jbson</a> - jbson is
|
||
a library for building & iterating BSON data, and JSON documents in
|
||
C++14. [Boost]</li>
|
||
<li><a href="https://github.com/jeaye/jeayeson">JeayeSON</a> - A very
|
||
sane (header only) C++ JSON library. [BSD]</li>
|
||
<li><a href="https://github.com/zserge/jsmn">Jsmn</a> - A minimalistic
|
||
JSON parser in C. [MIT]</li>
|
||
<li><a href="https://github.com/nlohmann/json">json</a> :zap: - JSON for
|
||
Modern C++. [MIT] <a href="https://json.nlohmann.me">website</a></li>
|
||
<li><a href="https://github.com/hjiang/jsonxx">JSON++</a> - A JSON
|
||
parser in C++. [MIT]</li>
|
||
<li><a href="https://github.com/sheredom/json.h">json.h</a> - A simple
|
||
one header/one source solution to parsing JSON in C and C++.
|
||
[Unlicense]</li>
|
||
<li><a href="https://github.com/lcsmuller/json-build">json-build</a> -
|
||
C89 tiny zero-allocation JSON serializer. [MIT]</li>
|
||
<li><a href="https://github.com/json-c/json-c">json-c</a> - A JSON
|
||
implementation in C. [MIT]</li>
|
||
<li><a href="https://github.com/danielaparker/jsoncons">jsoncons</a> - A
|
||
C++ header-only library for JSON and JSON-like binary formats with
|
||
JSONPointer, JSONPatch, JSONPath and JMESPath. [Boost]</li>
|
||
<li><a href="https://github.com/open-source-parsers/jsoncpp">JsonCpp</a>
|
||
- A C++ library for interacting with JSON. [MIT]</li>
|
||
<li><a href="https://github.com/RealTimeChris/Jsonifier">Jsonifier</a> -
|
||
A few classes for parsing and serializing objects from/into JSON - very
|
||
rapidly. [MIT]</li>
|
||
<li><a href="https://github.com/liufeigit/jsonParse">jsonParse</a> - A
|
||
simple JSON parser in ANSI C. [MIT]</li>
|
||
<li><a href="https://github.com/udp/json-parser">json-parser</a> - Very
|
||
low footprint JSON parser written in portable ANSI C. [BSD]</li>
|
||
<li><a href="https://github.com/dropbox/json11">json11</a> - A tiny JSON
|
||
library for C++11. [MIT]</li>
|
||
<li><a href="https://github.com/jorgen/json_struct">json-struct</a> -
|
||
High performance, single header JSON parser parsing to and from C++
|
||
structs. [MIT]</li>
|
||
<li><a href="https://github.com/tgockel/json-voorhees">json-voorhees</a>
|
||
- JSON library for C++. Support for C++11. No dependencies, fast and
|
||
dev-friendly. [Apache2]</li>
|
||
<li><a href="https://github.com/amir-s/jute">jute</a> - Very simple C++
|
||
JSON Parser. [PublicDomain]</li>
|
||
<li><a href="https://github.com/vincenthz/libjson">libjson</a> - A JSON
|
||
parser and printer library in C. easy to integrate with any model.
|
||
[LGPL]</li>
|
||
<li><a href="http://sourceforge.net/projects/libjson/">libjson</a> -
|
||
Lightweight JSON library. [?]</li>
|
||
<li><a href="https://github.com/vstakhov/libucl">LIBUCL</a> :zap: -
|
||
Universal configuration library parser. [BSD-2-Clause]</li>
|
||
<li><a href="https://github.com/kgabis/parson">parson</a> - Parson is a
|
||
lighweight json library written in C. [MIT]</li>
|
||
<li><a href="https://github.com/kazuho/picojson">PicoJSON</a> - A
|
||
header-file-only, JSON parser serializer in C++. [BSD]</li>
|
||
<li><a href="https://github.com/gaudecker/qt-json">qt-json</a> - A
|
||
simple class for parsing JSON data into a QVariant hierarchy and vice
|
||
versa. [GPLv3]</li>
|
||
<li><a href="https://github.com/flavio/qjson">QJson</a> - A qt-based
|
||
library that maps JSON data to QVariant objects. [LGPL2]</li>
|
||
<li><a href="https://github.com/miloyip/rapidjson">RapidJSON</a> :zap: -
|
||
A fast JSON parser/generator for C++ with both SAX/DOM style API. [MIT]
|
||
<a href="https://rapidjson.org">website</a></li>
|
||
<li><a href="https://github.com/chadaustin/sajson">sajson</a> -
|
||
Lightweight, extremely high-performance JSON parser for C++11.
|
||
[MIT]</li>
|
||
<li><a href="https://github.com/lemire/simdjson">simdjson</a> -
|
||
Extremely fast JSON library that can parse gigabytes of JSON per second.
|
||
[Apache-2.0]</li>
|
||
<li><a href="https://github.com/bytedance/sonic-cpp">Sonic-Cpp</a> - A
|
||
fast JSON serializing & deserializing library, accelerated by SIMD.
|
||
[Apache-2.0]</li>
|
||
<li><a href="https://github.com/taocpp/json">taoJSON</a> -
|
||
Zero-dependency C++ header-only JSON library. [MIT]</li>
|
||
<li><a href="https://bitbucket.org/awangk/ujson">ujson</a> - µjson is a
|
||
a small, C++11, UTF-8, JSON library. [MIT]</li>
|
||
<li><a href="https://github.com/ultrajson/ultrajson">UltraJSON</a> -
|
||
Ultra fast JSON decoder and encoder written in C. [BSD-3-Clause]</li>
|
||
<li><a href="https://github.com/lloyd/yajl">YAJL</a> - A fast streaming
|
||
JSON parsing library in C. [ISC]</li>
|
||
<li><a href="https://github.com/ibireme/yyjson">yyjson</a> - A high
|
||
performance JSON library written in ANSI C. [MIT]</li>
|
||
</ul>
|
||
<h2 id="logging">Logging</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/3Hren/blackhole">Blackhole</a> -
|
||
Attribute-based logging framework, which is designed to be fast, modular
|
||
and highly customizable. [MIT]</li>
|
||
<li><a href="https://github.com/boostorg/log">Boost.Log</a> - Designed
|
||
to be very modular and extensible. [Boost] <a
|
||
href="https://boost.org/libs/log">website</a></li>
|
||
<li><a href="https://github.com/amrayn/easyloggingpp">Easylogging++</a>
|
||
- Extremely light-weight high performance logging library for C++11 (or
|
||
higher) applications. [MIT]</li>
|
||
<li><a href="https://github.com/MengRao/fmtlog">fmtlog</a> - A
|
||
performant fmtlib-style logging library with latency in nanoseconds.
|
||
[MIT]</li>
|
||
<li><a href="https://github.com/KjellKod/g3log">G3log</a> - Asynchronous
|
||
logger with Dynamic Sinks. [PublicDomain]</li>
|
||
<li><a href="https://github.com/google/glog">glog</a> - C++
|
||
implementation of the Google logging module.</li>
|
||
<li><a href="https://github.com/MuggleWei/haclog">haclog</a> - An
|
||
extremely fast plain C logging library. [MIT]</li>
|
||
<li><a href="http://log4cpp.sourceforge.net/">Log4cpp</a> - A library of
|
||
C++ classes for flexible logging to files, syslog, IDSA and other
|
||
destinations. [LGPL]</li>
|
||
<li><a href="https://github.com/log4cplus/log4cplus">log4cplus</a> - A
|
||
simple to use C++ logging API providing thread-safe, flexible, and
|
||
arbitrarily granular control over log management and configuration. [BSD
|
||
& Apache2]</li>
|
||
<li><a href="https://github.com/emilk/loguru">loguru</a> - A lightweight
|
||
C++ logging library. [PublicDomain]</li>
|
||
<li><a href="https://github.com/ChristianPanov/lwlog">lwlog</a> - Very
|
||
fast synchronous and asynchronous C++17 logging library. [MIT]</li>
|
||
<li><a href="https://github.com/SergiusTheBest/plog">plog</a> - Portable
|
||
and simple log for C++ in less than 1000 lines of code. [MPL2]</li>
|
||
<li><a href="https://github.com/mattiasflodin/reckless">reckless</a> -
|
||
Low-latency, high-throughput, asynchronous logging library for C++.
|
||
[MIT]</li>
|
||
<li><a href="https://github.com/gabime/spdlog">spdlog</a> - Super fast,
|
||
header only, C++ logging library.</li>
|
||
<li><a href="http://www.templog.org/">templog</a> - A very small and
|
||
lightweight C++ library which you can use to add logging to your C++
|
||
applications. [Boost]</li>
|
||
<li><a href="http://baical.net/p7.html">P7Baical</a> - An open source
|
||
and cross-platform library for high-speed sending telemetry & trace
|
||
data with minimal usage of CPU and memory. [LGPL]</li>
|
||
<li><a href="https://github.com/odygrd/quill">Quill</a> - Asynchronous
|
||
cross platform low latency logging library. [MIT]</li>
|
||
</ul>
|
||
<h2 id="machine-learning">Machine Learning</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/BVLC/caffe">Caffe</a> - A fast framework
|
||
for neural networks. [BSD]</li>
|
||
<li><a href="https://github.com/catboost/catboost">catboost</a> - A
|
||
fast, scalable, high performance Gradient Boosting on Decision Trees
|
||
library. [Apache2]</li>
|
||
<li><a href="https://github.com/liuliu/ccv">CCV</a> -
|
||
C-based/Cached/Core Computer Vision Library, A Modern Computer Vision
|
||
Library. [BSD]</li>
|
||
<li><a href="https://github.com/pjreddie/darknet">darknet</a> - Open
|
||
source neural network framework written in C and CUDA. [PublicDomain] <a
|
||
href="https://pjreddie.com/darknet/">website</a></li>
|
||
<li><a href="https://github.com/davisking/dlib">Dlib</a> :zap: - A
|
||
modern C++11 machine learning, computer vision, numerical optimization,
|
||
and deep learning toolkit. [Boost] <a
|
||
href="http://dlib.net/">website</a></li>
|
||
<li><a href="https://github.com/facebookresearch/faiss">FAISS</a> - A
|
||
library for efficient similarity search and clustering of dense vectors.
|
||
[MIT]</li>
|
||
<li><a href="https://github.com/FidoProject/Fido">Fido</a> - A
|
||
highly-modular C++ machine learning library for embedded electronics and
|
||
robotics. [MIT] <a href="http://fidoproject.github.io/">website</a></li>
|
||
<li><a
|
||
href="https://github.com/facebookresearch/flashlight">flashlight</a> - A
|
||
fast, flexible machine learning library from Facebook AI Research
|
||
written entirely in C++ and based on the ArrayFire tensor library.
|
||
[BSD-3-Clause] <a
|
||
href="https://fl.readthedocs.io/en/latest/">website</a></li>
|
||
<li><a href="https://github.com/ggerganov/ggml">ggml</a> - Tensor
|
||
library for machine learning with 16-bit and 4-bit quantization support.
|
||
[MIT]</li>
|
||
<li><a href="https://github.com/cjlin1/libsvm">libsvm</a> - A simple,
|
||
easy-to-use, efficient library for Support Vector Machines.
|
||
[BSD-3-Clause] <a
|
||
href="https://www.csie.ntu.edu.tw/~cjlin/libsvm/">website</a></li>
|
||
<li><a href="https://github.com/BayesWitnesses/m2cgen">m2cgen</a> - A
|
||
CLI tool to transpile trained classic ML models into a native C code
|
||
with zero dependencies. [MIT]</li>
|
||
<li><a href="https://github.com/meta-toolkit/meta">MeTA</a> - A modern
|
||
C++ data sciences toolkit. [MIT] <a
|
||
href="https://meta-toolkit.org/">website</a></li>
|
||
<li><a href="https://github.com/dmlc/minerva">Minerva</a> - A fast and
|
||
flexible system for deep learning. [Apache2]</li>
|
||
<li><a href="https://github.com/mlpack/mlpack">mlpack</a> - A scalable
|
||
c++ machine learning library. [LGPLv3] <a
|
||
href="http://www.mlpack.org/">website</a></li>
|
||
<li><a href="https://github.com/Tencent/ncnn">ncnn</a> - A
|
||
high-performance neural network inference computing framework optimized
|
||
for mobile platforms. [BSD]</li>
|
||
<li><a href="https://github.com/Itseez/opencv">OpenCV</a> :zap: - Open
|
||
Source Computer Vision Library. [BSD] <a
|
||
href="http://opencv.org/">website</a></li>
|
||
<li><a href="https://github.com/oneapi-src/oneDAL">oneDAL</a> - A
|
||
powerful machine learning library that helps speed up big data analysis.
|
||
[Apache]</li>
|
||
<li><a href="https://github.com/microsoft/onnxruntime">ONNX runtime</a>
|
||
- C and C++ library for training and inference ONNX models. ONNX is a
|
||
standard that AI models can be converted into, regardless of the library
|
||
they are trained with. [MIT] <a
|
||
href="https://onnxruntime.ai/">website</a></li>
|
||
<li><a href="https://github.com/GHamrouni/Recommender">Recommender</a> -
|
||
C library for product recommendations/suggestions using collaborative
|
||
filtering (CF). [BSD]</li>
|
||
<li><a href="https://github.com/szcom/rnnlib">RNNLIB</a> - RNNLIB is a
|
||
recurrent neural network library for sequence learning problems.
|
||
[GPLv3]</li>
|
||
<li><a href="https://github.com/shogun-toolbox/shogun">SHOGUN</a> - The
|
||
Shogun Machine Learning Toolbox. [GPLv3]</li>
|
||
<li><a href="https://code.google.com/p/sofia-ml/">sofia-ml</a> - The
|
||
suite of fast incremental algorithms for machine learning.
|
||
[Apache2]</li>
|
||
<li><a href="https://github.com/unum-cloud/usearch">USearch</a> - Fast
|
||
search and clustering library for vectors and strings. [Apache2]</li>
|
||
<li><a href="https://github.com/vlfeat/vlfeat">VLFeat</a> - The VLFeat
|
||
open source library implements popular computer vision algorithms
|
||
specialising in image understanding and local featurexs extraction and
|
||
matching. [BSD-2-Clause] <a
|
||
href="http://www.vlfeat.org/">website</a></li>
|
||
<li><a href="https://github.com/dmlc/xgboost">xgboost</a> - Scalable,
|
||
Portable and Distributed Gradient Boosting (GBDT, GBRT or GBM) Library,
|
||
for Python, R, Java, Scala, C++ and more. Runs on single machine,
|
||
Hadoop, Spark, Flink and DataFlow. [Apache2]</li>
|
||
</ul>
|
||
<h2 id="math">Math</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/b-k/apophenia">Apophenia</a> - A C
|
||
library for statistical and scientific computing. [GPL2]</li>
|
||
<li><a
|
||
href="https://gitlab.com/conradsnicta/armadillo-code">Armadillo</a> -
|
||
Fast C++ library for linear algebra & scientific computing.
|
||
[Apache2] <a href="http://arma.sourceforge.net/">website</a></li>
|
||
<li><a href="https://github.com/autodiff/autodiff">autodiff</a> - A
|
||
modern, fast and expressive C++ library for automatic differentiation.
|
||
[MIT] <a href="https://autodiff.github.io">website</a></li>
|
||
<li><a href="https://bitbucket.org/blaze-lib/blaze">blaze</a> -
|
||
high-performance C++ math library for dense and sparse arithmetic.
|
||
[BSD]</li>
|
||
<li><a
|
||
href="https://github.com/boostorg/multiprecision">Boost.Multiprecision</a>
|
||
- provides higher-range/precision integer, rational and floating-point
|
||
types in C++, header-only or with GMP/MPFR/LibTomMath backends. [Boost]
|
||
<a href="https://boost.org/libs/multiprecision">website</a></li>
|
||
<li><a href="http://ceres-solver.org/">ceres-solver</a> - C++ library
|
||
for modeling and solving large complicated nonlinear least squares
|
||
problems from google. [BSD]</li>
|
||
<li><a href="https://github.com/CGAL/cgal">CGAL</a> - Collection of
|
||
efficient and reliable geometric algorithms. [LGPL&GPL] <a
|
||
href="http://www.cgal.org/">website</a></li>
|
||
<li><a href="http://cmldev.net/">cml</a> - free C++ math library for
|
||
games and graphics. [Boost]</li>
|
||
<li><a href="https://github.com/johnmcfarlane/cnl/">CNL</a> - A
|
||
Compositional Numeric Library for C++. [Boost]</li>
|
||
<li><a href="https://github.com/microsoft/DirectXMath">DirectXMath</a> -
|
||
An all inline SIMD C++ linear algebra library for use in games and
|
||
graphics apps.</li>
|
||
<li><a href="https://github.com/davisking/dlib">Dlib</a> :zap: - A
|
||
modern C++11 machine learning, computer vision, numerical optimization,
|
||
and deep learning toolkit. [Boost] <a
|
||
href="http://dlib.net/">website</a></li>
|
||
<li><a href="http://eigen.tuxfamily.org/">Eigen</a> - A high-level C++
|
||
library of template headers for linear algebra, matrix and vector
|
||
operations, numerical solvers and related algorithms. [MPL2]</li>
|
||
<li><a href="https://www.partow.net/programming/exprtk/">ExprTk</a> -
|
||
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]</li>
|
||
<li><a href="https://www.geometrictools.com">Geometric Tools</a> - C++
|
||
library for computing in the fields of mathematics, graphics, image
|
||
analysis and physics. [Boost] <a
|
||
href="https://www.geometrictools.com">website</a></li>
|
||
<li><a href="https://github.com/g-truc/glm">GLM</a> - Header-only C++
|
||
math library that matches and inter-operates with OpenGL’s GLSL math.
|
||
[MIT] <a href="https://glm.g-truc.net/">website</a></li>
|
||
<li><a href="http://ggt.sourceforge.net/">GMTL</a> - Graphics Math
|
||
Template Library is a collection of tools implementing Graphics
|
||
primitives in generalized ways. [GPL2]</li>
|
||
<li><a href="https://gmplib.org/">GMP</a> - A C library for arbitrary
|
||
precision arithmetic, operating on signed integers, rational numbers,
|
||
and floating-point numbers. [LGPL3 & GPL2]</li>
|
||
<li><a href="https://github.com/jeremyong/klein">Klein</a> - A fast,
|
||
SIMD-optimized C++17 Geometric Algebra library for point, line, and
|
||
plane projections, intersections, joins, rigid-body motion, and more.
|
||
[MIT] <a href="https://jeremyong.com/klein">website</a></li>
|
||
<li><a href="https://github.com/sgorsten/linalg">linalg.h</a> - Single
|
||
header, public domain, short vector math library for C++.
|
||
[Unlicense]</li>
|
||
<li><a href="https://github.com/NVIDIA/MatX">MatX</a> - A
|
||
GPU-accelerated C++17 numerical computing library with a
|
||
MATLAB/Python-like syntax. [BSD 3-clause]</li>
|
||
<li><a href="https://github.com/CertiVox/MIRACL">MIRACL</a> - A
|
||
Multiprecision Integer and Rational Arithmetic Cryptographic Library.
|
||
[AGPL]</li>
|
||
<li><a href="https://github.com/dpilger26/NumCpp">NumCpp</a> - A
|
||
templatized header only C++ implementation of the Python Numpy library.
|
||
[MIT]</li>
|
||
<li><a href="https://beltoforion.de/en/muparser">muparser</a> - muParser
|
||
is an extensible high performance math expression parser library written
|
||
in C++. [MIT]</li>
|
||
<li><a href="https://github.com/libtom/libtommath">LibTomMath</a> - A
|
||
free open source portable number theoretic multiple-precision integer
|
||
library written entirely in C. [PublicDomain & WTFPL] <a
|
||
href="http://www.libtom.net/">website</a></li>
|
||
<li><a href="https://github.com/datenwolf/linmath.h">linmath.h</a> - A
|
||
lean linear math library, aimed at graphics programming. [WTFPL]</li>
|
||
<li><a href="https://sourceforge.net/projects/lpsolve">lp_solve</a> - A
|
||
library used to formulate and solve linear programming problems. [LGPL]
|
||
<a href="http://lpsolve.sourceforge.net">website</a></li>
|
||
<li><a href="https://github.com/xianyi/OpenBLAS">OpenBLAS</a> - An
|
||
optimized BLAS library based on GotoBLAS2 1.13 BSD version. [BSD
|
||
3-clause] <a href="http://www.openblas.net/">website</a></li>
|
||
<li><a href="https://www.pcg-random.org/">PCG-rand</a> - PCG is a family
|
||
of simple fast space-efficient statistically good algorithms for random
|
||
number generation. Unlike many general-purpose RNGs, they are also hard
|
||
to predict. [Apache]</li>
|
||
<li><a href="https://github.com/lballabio/quantlib">QuantLib</a> - A
|
||
free/open-source library for quantitative finance. [Modified BSD] <a
|
||
href="http://quantlib.org/">website</a></li>
|
||
<li><a href="https://github.com/ashvardanian/SimSIMD">SimSIMD</a> -
|
||
Vector distance functions for x86 AVX2, AVX-512, Arm NEON, and SVE.
|
||
[Apache2]</li>
|
||
<li><a href="https://github.com/kthohr/stats">StatsLib</a> - A C++
|
||
header-only library of statistical distribution functions. [Apache2] <a
|
||
href="https://www.kthohr.com/statslib.html">website</a></li>
|
||
<li><a href="https://github.com/symengine/symengine">SymEngine</a> -
|
||
Fast symbolic manipulation library, a rewriting of SymPy’s core in C++.
|
||
[MIT]</li>
|
||
<li><a href="https://github.com/codeplea/tinyexpr">TinyExpr</a> - A C
|
||
library for parsing and evaluating math expressions from strings.
|
||
[zlib]</li>
|
||
<li><a href="https://github.com/VcDevel/Vc">Vc</a> - SIMD Vector Classes
|
||
for C++. [BSD]</li>
|
||
<li><a href="http://versor.mat.ucsb.edu/">Versor</a> - A (fast) Generic
|
||
C++ library for Geometric Algebras, including Euclidean, Projective,
|
||
Conformal, Spacetime (etc).</li>
|
||
<li><a href="https://github.com/mapbox/wagyu">Wagyu</a> - A general
|
||
library for geometry operations of union, intersections, difference, and
|
||
xor. [mapbox-wagyu original]</li>
|
||
<li><a href="https://www.wykobi.com">Wykobi</a> - A C++ library of
|
||
efficient, robust and simple to use C++ 2D/3D oriented computational
|
||
geometry routines. [MIT]</li>
|
||
<li><a href="https://github.com/xtensor-stack/xtensor">xtensor</a> - A
|
||
C++14 library for numerical analysis with multi-dimensional array
|
||
expressions, inspired by NumPy syntax. [BSD 3-clause] <a
|
||
href="https://xtensor-stack.github.io/xtensor">website</a></li>
|
||
<li><a href="https://github.com/stillwater-sc/universal">universal</a> -
|
||
A C++14 header-only library implementing arbitrary posit arithmetic. The
|
||
posit number system is a tapered floating point that is more efficient
|
||
than IEEE floating point. Posits enable reproducible computational
|
||
science. [MIT license]</li>
|
||
</ul>
|
||
<h2 id="memory-allocation">Memory Allocation</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/ivmai/bdwgc">Boehm GC</a> - Conservative
|
||
garbage collector for C and C++. [similar to X11] <a
|
||
href="http://www.hboehm.info/gc/">website</a></li>
|
||
<li><a href="https://github.com/Snaipe/libcsptr">C Smart Pointers</a> -
|
||
Smart pointers for the (GNU) C programming language. [MIT]</li>
|
||
<li><a href="https://github.com/emeryberger/Hoard">Hoard</a> - Fast,
|
||
Scalable, and Memory-efficient Malloc for Linux, Windows, and Mac.
|
||
[Apache-2.0] <a href="http://hoard.org/">website</a></li>
|
||
<li><a href="https://github.com/jemalloc/jemalloc">jemalloc</a> -
|
||
General purpose malloc(3) implementation that emphasizes fragmentation
|
||
avoidance and scalable concurrency support. [BSD] <a
|
||
href="http://jemalloc.net/">website</a></li>
|
||
<li><a href="https://github.com/foonathan/memory">memory</a> - STL
|
||
compatible C++ memory allocator library. [ZLib]</li>
|
||
<li><a
|
||
href="https://github.com/mtrebi/memory-allocators">memory-allocators</a>
|
||
- Custom memory allocators to improve the performance of dynamic memory
|
||
allocation. [MIT]</li>
|
||
<li><a href="https://github.com/microsoft/mimalloc">mimalloc</a> - A
|
||
compact general purpose allocator with excellent performance. [MIT]</li>
|
||
<li><a href="https://github.com/mjansson/rpmalloc">rpmalloc</a> - Cross
|
||
platform lock free thread caching 16-byte aligned memory allocator
|
||
implemented in C. [PublicDomain]</li>
|
||
<li><a href="https://github.com/microsoft/snmalloc">snmalloc</a> -
|
||
Message passing based high-performance allocator. [MIT]</li>
|
||
<li><a href="https://github.com/google/tcmalloc">TCMalloc</a> - Google’s
|
||
fast, multi-threaded malloc implementation. [Apache-2.0] <a
|
||
href="https://google.github.io/tcmalloc/">website</a></li>
|
||
<li><a href="https://github.com/spaskalev/buddy_alloc">buddy_alloc</a> -
|
||
A single header buddy memory allocator for C with bounded allocation
|
||
costs. [0BSD]</li>
|
||
<li><a href="https://github.com/orangeduck/tgc">tgc</a> - A tiny garbage
|
||
collector for C written in ~500 LOC. [BSD]</li>
|
||
</ul>
|
||
<h2 id="multimedia">Multimedia</h2>
|
||
<ul>
|
||
<li><a href="http://gstreamer.freedesktop.org/">GStreamer</a> - A
|
||
library for constructing graphs of media-handling components.
|
||
[LGPL]</li>
|
||
<li><a href="https://github.com/libass/libass">libass</a> - Portable
|
||
subtitle renderer for the ASS/SSA subtitle format. [ISC]</li>
|
||
<li><a href="https://github.com/libav/libav">libav</a> - A collection of
|
||
libraries and tools to process multimedia content such as audio, video,
|
||
subtitles and related metadata. [LGPL v2.1+ and others] <a
|
||
href="https://www.libav.org/">website</a></li>
|
||
<li><a href="http://www.live555.com/liveMedia/">LIVE555 Streaming
|
||
Media</a> - Multimedia streaming library using open standard protocols
|
||
(RTP/RTCP, RTSP, SIP). [LGPL]</li>
|
||
<li><a href="https://wiki.videolan.org/LibVLC">libVLC</a> - libVLC (VLC
|
||
SDK) media framework. [GPL]</li>
|
||
<li><a href="https://github.com/MediaArea/MediaInfoLib">MediaInfoLib</a>
|
||
- Convenient unified display of the most relevant technical and tag data
|
||
for video and audio files. [BSD]</li>
|
||
<li><a href="https://github.com/wang-bin/QtAV">QtAv</a> - A multimedia
|
||
playback framework based on Qt and FFmpeg to write a player easily.
|
||
[LGPL] <a href="http://wang-bin.github.io/QtAV/">website</a></li>
|
||
<li><a href="https://github.com/libsdl-org/SDL">SDL</a> :zap: - Simple
|
||
DirectMedia Layer. [zlib] <a href="https://libsdl.org">website</a></li>
|
||
<li><a href="https://github.com/SFML/SFML">SFML</a> :zap: - Simple and
|
||
Fast Multimedia Library. [zlib] <a
|
||
href="http://www.sfml-dev.org/">website</a></li>
|
||
<li><a href="https://github.com/taglib/taglib">TagLib</a> - A library
|
||
for reading and editing the metadata of several popular audio formats.
|
||
[LGPL/MPL] <a href="https://taglib.org/">website</a></li>
|
||
</ul>
|
||
<h2 id="networking">Networking</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/ada-url/ada">ada</a> - WHATWG-compliant
|
||
and fast URL parser written in modern C++. [Apache-2.0/MIT]</li>
|
||
<li><a href="http://www.dre.vanderbilt.edu/~schmidt/ACE.html">ACE</a> -
|
||
An OO Network Programming Toolkit in C++. [?MIT?]</li>
|
||
<li><a href="https://github.com/boostorg/asio">Boost.Asio</a> :zap: - A
|
||
cross-platform C++ library for network and low-level I/O programming.
|
||
[Boost] <a href="https://boost.org/libs/asio">website</a></li>
|
||
<li><a href="https://github.com/boostorg/beast">Boost.Beast</a> :zap: -
|
||
HTTP and WebSocket built on Boost.Asio in C++11. [Boost] <a
|
||
href="https://www.boost.org/libs/beast">website</a></li>
|
||
<li><a href="https://github.com/Organic-Code/Breep">Breep</a> - Event
|
||
based, high-level C++14 peer-to-peer library. [EUPL-1.1 (OSI
|
||
approved)]</li>
|
||
<li><a href="https://github.com/Microsoft/cpprestsdk">C++ REST SDK</a> -
|
||
C++ REST SDK (previously named Casablanca). [Apache2]</li>
|
||
<li><a href="https://github.com/corvusoft/restbed">Restbed</a> - C++11
|
||
Asynchronous RESTful framework. [AGPL]</li>
|
||
<li><a href="https://github.com/Stiffstream/restinio">Restinio</a> - A
|
||
header-only C++14 library that gives you an embedded HTTP/Websocket
|
||
server. [BSD]</li>
|
||
<li><a href="https://github.com/c-ares/c-ares">c-ares</a> - A C library
|
||
for asynchronous DNS requests. [MIT]</li>
|
||
<li><a href="https://github.com/yhirose/cpp-httplib">cpp-httplib</a> - A
|
||
single file C++11 header-only HTTP/HTTPS server library. [MIT]</li>
|
||
<li><a href="http://cpp-netlib.org/">cpp-netlib</a> - A collection of
|
||
open-source libraries for high level network programming. [Boost]</li>
|
||
<li><a href="https://github.com/cpp-netlib/uri">cpp-netlib/uri</a> - URI
|
||
parser/builder library for C++, compatible with RFC 3986 and RFC 3987.
|
||
[Boost]</li>
|
||
<li><a href="https://github.com/chronoxor/CppServer">CppServer</a> -
|
||
Ultra fast and low latency asynchronous socket server & client C++
|
||
library with support TCP, SSL, UDP, HTTP, HTTPS, WebSocket protocols and
|
||
10K connections problem solution. [MIT]</li>
|
||
<li><a href="https://github.com/whoshuu/cpr">cpr</a> - A modern C++ HTTP
|
||
requests library with a simple but powerful interface. Modeled after the
|
||
Python Requests module. [MIT] <a
|
||
href="https://docs.libcpr.org">website</a></li>
|
||
<li><a href="https://github.com/JosephP91/curlcpp">curlcpp</a> - An
|
||
object oriented C++ wrapper for CURL(libcurl). [MIT]</li>
|
||
<li><a href="https://github.com/DPDK/dpdk">DPDK</a> - Data Plane
|
||
Development Kit, libraries and drivers for fast packet processing.
|
||
[BSD-3-Clause & GPL-2.0] <a
|
||
href="https://www.dpdk.org/">website</a></li>
|
||
<li><a href="https://github.com/rxi/dyad">Dyad.c</a> - Asynchronous
|
||
networking for C. [MIT]</li>
|
||
<li><a href="https://github.com/lsalzman/enet">ENet</a> - Reliable UDP
|
||
networking library. [MIT] <a
|
||
href="http://enet.bespin.org/">website</a></li>
|
||
<li><a href="https://github.com/Qihoo360/evpp">evpp</a> - C++ high
|
||
performance networking with TCP/UDP/HTTP protocols. [BSD]</li>
|
||
<li><a href="https://github.com/h2o/h2o">H2O</a> - An optimized HTTP
|
||
server with support for HTTP/1.x and HTTP/2. It can also be used as a
|
||
library. [MIT]</li>
|
||
<li><a href="https://github.com/nodejs/http-parser">HTTP Parser</a>
|
||
:zap: - A http request/response parser for C. [MIT]</li>
|
||
<li><a
|
||
href="https://github.com/skywind3000/kcp/blob/master/README.en.md">KCP</a>
|
||
- A fast and reliable ARQ protocol that helps applications to reduce
|
||
network latency. [MIT]</li>
|
||
<li><a href="http://curl.haxx.se/libcurl/">libcurl</a> - Multiprotocol
|
||
file transfer library. [MIT/X derivate license]</li>
|
||
<li><a href="https://github.com/etr/libhttpserver">libhttpserver</a> -
|
||
C++ library for creating an embedded Rest HTTP server (and more).
|
||
[LGPL2.1]</li>
|
||
<li><a
|
||
href="http://www.gnu.org/software/libmicrohttpd/">Libmicrohttpd</a> -
|
||
GNU libmicrohttpd is a small C library that is supposed to make it easy
|
||
to run an HTTP server as part of another application. [LGPL v2.1+]</li>
|
||
<li><a href="https://github.com/the-tcpdump-group/libpcap">libpcap</a> -
|
||
A portable C/C++ library for network traffic capture. [BSD] <a
|
||
href="https://www.tcpdump.org/">website</a></li>
|
||
<li><a href="https://github.com/devsisters/libquic">libquic</a> - A QUIC
|
||
protocol library extracted from Chromium’s QUIC Implementation.
|
||
[BSD]</li>
|
||
<li><a href="https://github.com/edenhill/librdkafka">librdkafka</a> -
|
||
Apache Kafka client library for C and C++. [BSD-2-Clause]</li>
|
||
<li><a href="https://github.com/warmcat/libwebsockets">libwebsockets</a>
|
||
- A lightweight pure C WebSocket implementation that provides both
|
||
client and server libraries. [LGPL2.1 + static link exception] <a
|
||
href="https://libwebsockets.org/">website</a></li>
|
||
<li><a href="https://matt-42.github.io/lithium/">Lithium</a> - Build
|
||
high performance C++ HTTP servers without being a C++ expert. [MIT]</li>
|
||
<li><a href="http://savannah.nongnu.org/projects/lwip/">lwIP</a> - A
|
||
lightweight TCP/IP stack. [Modified BSD]</li>
|
||
<li><a href="https://github.com/karastojko/mailio">mailio</a> - mailio
|
||
is a cross platform C++ library for MIME format and SMTP, POP3 and IMAP
|
||
protocols. [BSD]</li>
|
||
<li><a href="https://github.com/cesanta/mongoose">Mongoose</a> -
|
||
Extremely lightweight webserver. [GPL2]</li>
|
||
<li><a href="https://github.com/LiamBindle/MQTT-C">MQTT-C</a> - A
|
||
portable MQTT C client for embedded systems and PCs alike. [MIT] <a
|
||
href="https://liambindle.ca/MQTT-C">website</a></li>
|
||
<li><a href="https://github.com/mtcp-stack/mtcp">mTCP</a> - Highly
|
||
scalable user-level TCP stack for multicore systems. [Modified BSD]</li>
|
||
<li><a href="https://github.com/chenshuo/muduo">Muduo</a> - A C++
|
||
non-blocking network library for multi-threaded server in Linux.
|
||
[BSD]</li>
|
||
<li><a href="https://github.com/nghttp2/nghttp2">nghttp2</a> - HTTP/2 C
|
||
Library. [MIT] <a href="https://nghttp2.org/">website</a></li>
|
||
<li><a href="https://github.com/ngtcp2/nghttp3">nghttp3</a> - HTTP/3
|
||
library written in C. [MIT] <a
|
||
href="https://nghttp2.org/nghttp3/">website</a></li>
|
||
<li><a href="https://github.com/davidmoreno/onion">Onion</a> - HTTP
|
||
server library in C designed to be lightweight and easy to use.
|
||
[Apache2/GPL2]</li>
|
||
<li><a href="https://github.com/ntop/PF_RING">PF_RING™</a> - High-speed
|
||
packet processing framework. [LGPL-2.1] <a
|
||
href="https://www.ntop.org/products/packet-capture/pf_ring/">website</a></li>
|
||
<li><a href="https://github.com/h2o/picohttpparser">PicoHTTPParser</a> -
|
||
A tiny, primitive, fast HTTP request/response parser. [MIT]</li>
|
||
<li><a href="https://github.com/pocoproject">POCO</a> :zap: - C++ class
|
||
libraries and frameworks for building network- and internet-based
|
||
applications that run on desktop, server, mobile and embedded systems.
|
||
[Boost] <a href="http://pocoproject.org/">website</a></li>
|
||
<li><a href="https://github.com/facebook/proxygen">Proxygen</a> -
|
||
Facebook’s collection of C++ HTTP libraries including an easy to use
|
||
HTTP server. [BSD]</li>
|
||
<li><a href="https://github.com/redpanda-data/redpanda">RedPanda</a> -
|
||
Streaming data platform for developers. Kafka API compatible. 10x
|
||
faster. [BSL]</li>
|
||
<li><a href="https://github.com/OculusVR/RakNet">RakNet</a> - A cross
|
||
platform, open source, C++ networking engine for game programmers.
|
||
[BSD]</li>
|
||
<li><a
|
||
href="https://github.com/mrtazz/restclient-cpp">restclient-cpp</a> -
|
||
Simple REST client for C++. It wraps libcurl for HTTP requests.
|
||
[MIT]</li>
|
||
<li><a href="https://github.com/mattgodbolt/seasocks">Seasocks</a> -
|
||
Simple, small, C++ embeddable webserver with WebSockets support.
|
||
[BSD]</li>
|
||
<li><a href="https://github.com/eduardsui/tlse">tlse</a> - Single C file
|
||
TLS 1.2/1.3 implementation, using tomcrypt as crypto library
|
||
[BSD-2-Clause]</li>
|
||
<li><a href="https://github.com/vinipsmaker/tufao">Tufão</a> - An
|
||
asynchronous web framework for C++ built on top of Qt. [LGPL2]</li>
|
||
<li><a href="https://github.com/uriparser/uriparser">uriparser</a> -
|
||
Strictly RFC 3986 compliant URI parsing and handling library.
|
||
[BSD-3-Clause]</li>
|
||
<li><a href="https://github.com/uNetworking/uWebSockets">uWebSockets</a>
|
||
- µWS is one of the most lightweight, efficient & scalable WebSocket
|
||
& HTTP server implementations available. [Zlib]</li>
|
||
<li><a href="https://github.com/unum-cloud/ucall">UCall</a> - A
|
||
high-performance SIMD-accelerated RPC library on io_uring.
|
||
[Apache2]</li>
|
||
<li><a href="https://github.com/riolet/WAFer">WAFer</a> - A C
|
||
language-based ultra-light software platform for scalable server-side
|
||
and networking applications. Think node.js for C programmers.
|
||
[GPL2]</li>
|
||
<li><a href="https://github.com/facebook/wangle">Wangle</a> - A
|
||
client/server application framework to build asynchronous, event-driven
|
||
modern C++ services. [Apache-2.0]</li>
|
||
<li><a href="https://github.com/facebook/wdt">wdt</a> - 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]</li>
|
||
<li><a href="https://github.com/zaphoyd/websocketpp">WebSocket++</a> -
|
||
C++/Boost Asio based websocket client/server library. [BSD]</li>
|
||
<li><a href="https://github.com/seladb/PcapPlusPlus">PcapPlusPlus</a> -
|
||
a multiplatform C++ network sniffing and packet parsing and crafting
|
||
framework. [Unlicense]</li>
|
||
<li><a href="https://github.com/zeromq/libzmq">ZeroMQ</a> - High-speed,
|
||
modular asynchronous communication library. [LGPL3/MPL2] <a
|
||
href="http://zeromq.org/">website</a></li>
|
||
</ul>
|
||
<h2 id="office-open-xml">Office Open XML</h2>
|
||
<p><em>Libraries for parsing and manipulating xlsx, pptx, docx,
|
||
etc.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/amiremohamadi/DuckX">DuckX</a> - C++
|
||
library for creating and modifying Microsoft Word (.docx) files.
|
||
[MIT]</li>
|
||
<li><a href="https://www.gaia-gis.it/fossil/freexl/index">FreeXL</a> -
|
||
an open source library to extract valid data from within Spreadsheets.
|
||
[MPL/GPL-2/LGPL-2]</li>
|
||
<li><a href="https://github.com/libxls/libxls">libxls</a> - Read binary
|
||
Excel files from C/C++ [BSD-2-Clause]</li>
|
||
<li><a
|
||
href="https://github.com/jmcnamara/libxlsxwriter">libxlsxwriter</a> - A
|
||
C library for creating Excel XLSX files. [BSD-2-Clause] <a
|
||
href="https://libxlsxwriter.github.io/">website</a></li>
|
||
<li><a href="https://github.com/troldal/OpenXLSX">OpenXLSX</a> - A C++
|
||
library for reading, writing, creating and modifying Microsoft Excel®
|
||
(.xlsx) files. [BSD-3-Clause]</li>
|
||
<li><a
|
||
href="https://sourceforge.net/projects/simplexlsx/">SimpleXlsxWriter</a>
|
||
- XLSX files writer for Microsoft Excel 2007 and above. [zlib]</li>
|
||
<li><a href="https://github.com/brechtsanders/xlsxio">XLSX I/O</a> - C
|
||
library for reading and writing .xlsx files. [MIT]</li>
|
||
</ul>
|
||
<h2 id="pdf">PDF</h2>
|
||
<p><em>Libraries for parsing and manipulating PDF documents.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/libharu/libharu">libharu</a> - A free,
|
||
cross platform, open-sourced software library for generating PDF.
|
||
[zlib]</li>
|
||
<li><a href="https://litepdf.sourceforge.io">litePDF</a> - Library to
|
||
create and edit PDF documents that uses GDI functions through a device
|
||
context to draw the page content. [LGPL v3 and zlib]</li>
|
||
<li><a href="https://mupdf.com/">MuPDF</a> - A lightweight PDF, XPS, and
|
||
E-book viewer. [AGPL/Proprietary]</li>
|
||
<li><a href="https://github.com/galkahana/PDF-Writer">PDF-Writer</a> -
|
||
High performance library for creating, modiyfing and parsing PDF files
|
||
in C++ [Apache-2.0] <a
|
||
href="https://www.pdfhummus.com/">website</a></li>
|
||
<li><a href="https://github.com/michaelrsweet/pdfio">pdfio</a> - A
|
||
simple C library for reading and writing PDF files. [Apache-2] <a
|
||
href="https://www.msweet.org/pdfio/">website</a></li>
|
||
<li><a href="https://pdfium.googlesource.com/pdfium/">PDFium</a> - PDF
|
||
generation and rendering library. [BSD-3-Clause]</li>
|
||
<li><a href="http://podofo.sourceforge.net/">PoDoFo</a> - A library to
|
||
work with the PDF file format. [LGPL]</li>
|
||
<li><a href="https://poppler.freedesktop.org/">Poppler</a> - Open-source
|
||
multi-backend PDF rendering library based on the xpdf-3.0 code base.
|
||
[GPLv2/GPLv3]</li>
|
||
<li><a href="https://www.xpdfreader.com/">Xpdf</a> - Xpdf is a free PDF
|
||
viewer and toolkit, including a text extractor, image converter, HTML
|
||
converter, and more. [GPL v2/GPL v3]</li>
|
||
<li><a href="http://www.dynaforms.com/">DynaPDF</a> - An easy-to-use PDF
|
||
generation library. [Commercial]</li>
|
||
</ul>
|
||
<h2 id="physics">Physics</h2>
|
||
<p><em>Dynamics simulation engines</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/erincatto/Box2D">Box2D</a> - A 2D
|
||
physics engine for games. [BSD-like]</li>
|
||
<li><a href="https://github.com/bulletphysics/bullet3">Bullet</a> - A 3D
|
||
physics engine for games. [zlib] <a
|
||
href="http://bulletphysics.org">website</a></li>
|
||
<li><a href="https://github.com/slembcke/Chipmunk2D">Chipmunk</a> - A
|
||
fast and lightweight 2D game physics library. [MIT] <a
|
||
href="https://chipmunk-physics.net/">website</a></li>
|
||
<li><a href="https://github.com/jrouwe/JoltPhysics">Jolt Physics</a> - A
|
||
multi core friendly rigid body physics and collision detection library.
|
||
[MIT]</li>
|
||
<li><a href="https://github.com/KratosMultiphysics/Kratos">Kratos</a> -
|
||
framework for building parallel, multi-disciplinary simulation software,
|
||
aiming at modularity, extensibility, and high performance. [BSD] <a
|
||
href="http://www.cimne.com/kratos/">website</a></li>
|
||
<li><a href="https://github.com/google/liquidfun">LiquidFun</a> - A 2D
|
||
physics engine for games. [BSD-like]</li>
|
||
<li><a href="https://github.com/MADEAPPS/newton-dynamics">Newton
|
||
Dynamics</a> - An integrated solution for real time simulation of
|
||
physics environments. [zlib]</li>
|
||
<li><a href="http://www.ode.org/">ODE</a> - Open Dynamics Engine - An
|
||
open source, high performance library for simulating rigid body
|
||
dynamics. [BSD&LGPL]</li>
|
||
<li><a href="https://github.com/vanderlin/ofxBox2d">ofxBox2d</a> -
|
||
openFrameworks wrapper for Box2D. [BSD-like]</li>
|
||
<li><a href="https://github.com/NVIDIAGameWorks/PhysX-3.4">PhysX</a> -
|
||
An open-source realtime physics engine middleware SDK developed by
|
||
Nvidia as a part of Nvidia GameWorks software suite. [BSD-3-Clause]</li>
|
||
<li><a href="https://github.com/louis-langholtz/PlayRho">PlayRho</a> -
|
||
An interactive physics engine & library. [Zlib]</li>
|
||
<li><a href="https://github.com/projectchrono/chrono">Project Chrono</a>
|
||
- An open source multi-physics simulation engine. [BSD-3-Clause] <a
|
||
href="https://projectchrono.org/">website</a></li>
|
||
<li><a href="https://github.com/vsoftco/qpp">Quantum++</a> - A modern
|
||
C++11 quantum computing library. [MIT]</li>
|
||
<li><a href="https://github.com/simbody/simbody">Simbody</a> -
|
||
High-performance C++ multibody dynamics/physics library for simulating
|
||
articulated biomechanical and mechanical systems like vehicles, robots,
|
||
and the human skeleton. [Apache2]</li>
|
||
<li><a href="https://github.com/sofa-framework/sofa">SOFA</a> - SOFA is
|
||
an open-source framework targeting at real-time simulation, with an
|
||
emphasis on medical simulation. [LGPL] <a
|
||
href="https://www.sofa-framework.org">website</a></li>
|
||
</ul>
|
||
<h2 id="reflection">Reflection</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/netcan/config-loader">config-loader</a>
|
||
- A C++17 static reflection framework, from parse configuration file to
|
||
native data structure. [MIT]</li>
|
||
<li><a href="https://github.com/aantron/better-enums">Better Enums</a> -
|
||
Reflective enums (to string, iteration). Single header. [BSD] <a
|
||
href="http://aantron.github.io/better-enums/">website</a></li>
|
||
<li><a href="https://github.com/Celtoys/clReflect">clReflect</a> - C++
|
||
Reflection using clang. [MIT]</li>
|
||
<li><a href="https://github.com/cpgf/cpgf">CPFG</a> - A C++03 library
|
||
for reflection, callback and script binding. [Apache2]</li>
|
||
<li><a
|
||
href="https://github.com/AustinBrunkhorst/CPP-Reflection">CPP-Reflection</a>
|
||
- C++ Reflection using clang. [MIT]</li>
|
||
<li><a href="https://github.com/chocolacula/easy_reflection_cpp">Easy
|
||
Reflection</a> - Easy and fast reflection + serialization solution like
|
||
in Rust, Java or Go. [Apache]</li>
|
||
<li><a href="https://github.com/Neargye/magic_enum">Magic Enum</a> -
|
||
Header-only C++17 library provides static reflection for enums (to
|
||
string, from string, iteration), work with any enum type without any
|
||
macro or boilerplate code. [MIT]</li>
|
||
<li><a href="https://github.com/apolukhin/magic_get">magic_get</a> -
|
||
std::tuple like methods for user defined types without any macro or
|
||
boilerplate code. [Boost]</li>
|
||
<li><a href="https://github.com/skypjack/meta">meta</a> - Header-only,
|
||
non-intrusive and macro-free runtime reflection system in C++.
|
||
[MIT]</li>
|
||
<li><a href="https://github.com/Neargye/nameof">Nameof</a> - Header-only
|
||
C++17 library provides nameof macros and functions to obtain the simple
|
||
name of variable, type, function, macro, and enum. [MIT]</li>
|
||
<li><a href="https://github.com/billyquith/ponder">Ponder</a> - A C++11
|
||
library for reflection. [MIT]</li>
|
||
<li><a href="https://github.com/getml/reflect-cpp">reflect-cpp</a> -
|
||
Serialization through reflection, including automatic field name
|
||
retrieval from structs. [MIT]</li>
|
||
<li><a href="https://github.com/rttrorg/rttr">RTTR</a> - A C++11 library
|
||
for reflection. [MIT] <a href="http://www.rttr.org">website</a></li>
|
||
<li><a href="https://github.com/fabian-jung/tsmp">TSMP</a> - An
|
||
intrusion and macro-free C++20 library for static reflection. It uses
|
||
libclang to extract reflection data from your source code and makes it
|
||
usable via template specialization. [MIT]</li>
|
||
<li><a href="https://github.com/cbeck88/visit_struct">visit_struct</a> -
|
||
A miniature library for struct-field reflection in C++. [Boost]</li>
|
||
<li><a href="https://github.com/jsoysouvanh/Refureku">Refureku</a> - A
|
||
C++17 runtime reflection and code generation library. [MIT]</li>
|
||
</ul>
|
||
<h2 id="regular-expression">Regular Expression</h2>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/VerbalExpressions/CppVerbalExpressions">CppVerbalExpressions</a>
|
||
- C++ regular expressions made easy. [MIT]</li>
|
||
<li><a
|
||
href="https://github.com/hanickadot/compile-time-regular-expressions">CTRE</a>
|
||
- A Compile time PCRE (almost) compatible regular expression matcher.
|
||
[MIT]</li>
|
||
<li><a href="https://github.com/intel/hyperscan">Hyperscan</a> -
|
||
Hyperscan is a high-performance multiple regex matching library by
|
||
Intel. Provides simultaneous matching of large numbers of regexps (up to
|
||
tens of thousands). Typically used in a DPI library stack. [BSD]</li>
|
||
<li><a href="https://github.com/kkos/oniguruma">Oniguruma</a> - A modern
|
||
and flexible regular expressions library that supports a variety of
|
||
character encodings. [BSD]</li>
|
||
<li><a href="http://pcre.org/">PCRE</a> - A regular expression C library
|
||
inspired by the regular expression capabilities in Perl. [BSD]</li>
|
||
<li><a href="https://github.com/yandex/pire">PIRE</a> - Perl
|
||
Incompatible Regular Expressions library by Yandex. Can be really fast
|
||
(more than 400 MB/s). [LPGL v3.0]</li>
|
||
<li><a href="https://github.com/google/re2">RE2</a> - A software library
|
||
for regular expressions via a finite-state machine using automata
|
||
theory. [BSD-3-Clause]</li>
|
||
<li><a href="https://github.com/cesanta/slre">SLRE</a> - Super Light
|
||
Regexp engine for C/C++. [GPLv2/Proprietary]</li>
|
||
<li><a href="https://github.com/openresty/sregex">sregex</a> - A
|
||
non-backtracking NFA/DFA-based Perl-compatible regex engine library for
|
||
matching on large data streams. [BSD]</li>
|
||
<li><a href="https://www.akenotsuki.com/misc/srell/en/">SRELL</a> -
|
||
Unicode-aware regular expression template library for C++. [BSD]</li>
|
||
</ul>
|
||
<h2 id="robotics">Robotics</h2>
|
||
<ul>
|
||
<li><a href="http://moos-ivp.org">MOOS-IvP</a> - A set of open source
|
||
C++ modules for providing autonomy on robotic platforms, in particular
|
||
autonomous marine vehicles.</li>
|
||
<li><a href="http://www.mrpt.org/">MRPT</a> - Mobile Robot Programming
|
||
Toolkit. [BSD]</li>
|
||
<li><a href="https://github.com/PointCloudLibrary/pcl">PCL</a> - Point
|
||
Cloud Library is a standalone, large scale, open project for 2D/3D image
|
||
and point cloud processing. [BSD] <a
|
||
href="http://www.pointclouds.org/">website</a></li>
|
||
<li><a href="http://www.roboticslibrary.org/">Robotics Library (RL)</a>
|
||
- A self-contained C++ library for robot kinematics, motion planning and
|
||
control. [BSD]</li>
|
||
<li><a href="https://gitlab.com/sdurobotics/RobWork">RobWork</a> - A
|
||
collection of C++ libraries for simulation and control of robot systems.
|
||
[Apache2] <a href="http://www.robwork.dk/">website</a></li>
|
||
<li><a href="http://wiki.ros.org/">ROS</a> - Robot Operating System
|
||
provides libraries and tools to help software developers create robot
|
||
applications. [BSD]</li>
|
||
<li><a href="https://github.com/pantor/ruckig">Ruckig</a> - Real-time
|
||
motion generation for robots and machines. [MIT] <a
|
||
href="https://ruckig.com">website</a></li>
|
||
<li><a href="https://github.com/robotology/yarp">YARP (Yet Another Robot
|
||
Platform)</a> - Library and toolkit for communication and device
|
||
interfaces. [BSD-3-Clause] <a
|
||
href="http://www.yarp.it/">website</a></li>
|
||
<li><a href="https://github.com/arturania/cspice">SPICE Toolkit</a> -
|
||
Library and toolkit for computing geometric information used in planning
|
||
and analyzing science observations obtained from robotic spacecraft.
|
||
[MIT] <a
|
||
href="https://naif.jpl.nasa.gov/naif/toolkit.html">website</a></li>
|
||
</ul>
|
||
<h2 id="scientific-computing">Scientific Computing</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/ddemidov/amgcl">AMGCL</a> - a
|
||
header-only C++ library for solving large sparse linear systems with
|
||
algebraic multigrid. [MIT]</li>
|
||
<li><a href="http://www.fftw.org/">FFTW</a> - A C library for computing
|
||
the DFT in one or more dimensions. [GPL]</li>
|
||
<li><a href="http://www.gnu.org/software/gsl/">GSL</a> - GNU scientific
|
||
library. [GPL]</li>
|
||
<li><a href="https://github.com/precice/precice">preCICE</a> - Coupling
|
||
library for partitioned multi-physics simulations (FSI, CHT, and more).
|
||
[LGPL] <a href="https://precice.org/">website</a></li>
|
||
<li><a href="https://github.com/TileDB-Inc/TileDB">TileDB</a> - Fast
|
||
Dense and Sparse Multidimensional Array DBMS. [MIT] <a
|
||
href="https://tiledb.io/">website</a></li>
|
||
<li><a href="https://github.com/trilinos/Trilinos">Trilinos</a> - High
|
||
performance PDE solvers. [BSD]</li>
|
||
<li><a href="https://github.com/torch/torch7">Torch</a> - A scientific
|
||
computing framework with wide support for machine learning algorithms
|
||
that puts GPUs first. [BSD-3-Clause] <a
|
||
href="http://torch.ch/">website</a></li>
|
||
</ul>
|
||
<h2 id="scripting">Scripting</h2>
|
||
<ul>
|
||
<li><a href="https://www.angelcode.com/angelscript/">AngelScript</a> -
|
||
AngelScript is a game-oriented interpreted/compiled scripting language.
|
||
[zlib]</li>
|
||
<li><a href="https://github.com/boostorg/python">Boost.Python</a> - A
|
||
C++ library which enables seamless interoperability between C++ and the
|
||
Python programming language. [Boost] <a
|
||
href="https://boost.org/libs/python">website</a></li>
|
||
<li><a href="https://github.com/tbenthompson/cppimport">cppimport</a> -
|
||
Import C++ files directly from Python! [MIT]</li>
|
||
<li><a href="https://github.com/mono/CppSharp">CppSharp</a> - Tools and
|
||
libraries to glue C/C++ APIs to high-level languages. [MIT]</li>
|
||
<li><a href="https://github.com/ChaiScript/ChaiScript/">ChaiScript</a> -
|
||
An easy to use embedded scripting language for C++. [BSD] <a
|
||
href="http://chaiscript.com/">website</a></li>
|
||
<li><a href="https://github.com/taviso/ctypes.sh">ctypes.sh</a> - A
|
||
foreign function interface for bash. [MIT]</li>
|
||
<li><a href="https://github.com/cython/cython">Cython</a> - 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] <a
|
||
href="http://cython.org/">website</a></li>
|
||
<li><a href="https://djinni.xlcpp.dev">djinni</a> - A tool for
|
||
generating cross-language type declarations and interface bindings.
|
||
[Apache2]</li>
|
||
<li><a href="https://github.com/svaarala/duktape">Duktape</a> - An
|
||
embeddable Javascript engine with compact footprint. [MIT] <a
|
||
href="http://duktape.org">website</a></li>
|
||
<li><a href="https://github.com/bytedeco/javacpp">JavaCpp</a> - The
|
||
missing bridge between Java and native C++. [Apache2]</li>
|
||
<li><a href="https://github.com/libffi/libffi">libffi</a> - A portable
|
||
foreign-function interface library. [MIT] <a
|
||
href="https://sourceware.org/libffi/">website</a></li>
|
||
<li><a href="http://www.lua.org/">Lua</a> - A minimal and fast scripting
|
||
engine for configuration files and basic application scripting.
|
||
[MIT]</li>
|
||
<li><a href="https://github.com/vinniefalco/LuaBridge">LuaBridge</a> - A
|
||
lightweight, dependency-free library for binding Lua to C++. [MIT]</li>
|
||
<li><a href="https://github.com/kunitoki/LuaBridge3">LuaBridge3</a> - A
|
||
lightweight, dependency-free library for binding Lua, LuaJIT, Luau and
|
||
Ravi to C++. [MIT]</li>
|
||
<li><a href="https://github.com/dafrito/luacxx">luacxx</a> - C++11 API
|
||
for creating Lua bindings. [MIT]</li>
|
||
<li><a href="https://miniscript.org/">MiniScript</a> - scripting
|
||
language modern, elegant, easy to learn, and easy to embed in your own
|
||
C# or C++ projects. [MIT]</li>
|
||
<li><a href="https://github.com/charto/nbind">nbind</a> - Magical
|
||
headers that make your C++ library accessible from JavaScript.
|
||
[MIT]</li>
|
||
<li><a
|
||
href="https://github.com/CopernicaMarketingSoftware/PHP-CPP">PHP-CPP</a>
|
||
- A library to build PHP extensions with C++. [Apache2] <a
|
||
href="http://www.php-cpp.com/">website</a></li>
|
||
<li><a href="https://github.com/blueloveTH/pocketpy">pocketpy</a> -
|
||
C++17 header-only Python interpreter for game scripting. [MIT] <a
|
||
href="https://pocketpy.dev/">website</a></li>
|
||
<li><a href="https://github.com/pybind/pybind11">pybind11</a> - Seamless
|
||
operability between C++11 and Python. [BSD]</li>
|
||
<li><a href="https://bellard.org/quickjs/">QuickJS</a> - a small and
|
||
embeddable Javascript engine. [MIT]</li>
|
||
<li><a href="https://riverbankcomputing.com/software/sip/intro">SIP</a>
|
||
- C or C++ Bindings Generator for Python v2 and v3. [GPL]</li>
|
||
<li><a href="https://github.com/ThePhD/sol2">sol2</a> - A C++ <->
|
||
Lua API wrapper with advanced features and top notch performance.
|
||
[MIT]</li>
|
||
<li><a href="https://github.com/swig/swig">SWIG</a> - A
|
||
wrapper/interface Generator that let you link your c++ code to
|
||
Javascript, Perl, PHP, Python, Tcl and Ruby. [GPL/Output not licensed]
|
||
<a href="http://www.swig.org/">website</a></li>
|
||
<li><a href="https://github.com/cesanta/v7">V7</a> - An embedded
|
||
JavaScript engine. [GPL2]</li>
|
||
<li><a href="https://v8.dev">V8</a> - A fast JavaScript engine by Google
|
||
that can be embedded into any C++ application. [BSD]</li>
|
||
<li><a href="https://github.com/pmed/v8pp">v8pp</a> - Header-only
|
||
library to expose C++ classes and functions into V8 to use them in
|
||
JavaScript code. [BOOST] <a
|
||
href="https://pmed.github.io/v8pp/">website</a></li>
|
||
<li><a href="https://github.com/Microsoft/ChakraCore">ChakraCore</a> -A
|
||
JavaScript engine by Microsoft that can be embedded into nodejs.
|
||
[MIT]</li>
|
||
</ul>
|
||
<h2 id="serialization">Serialization</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/fraillt/bitsery">Bitsery</a> - Header
|
||
only C++ binary serialization library. [MIT]</li>
|
||
<li><a href="https://github.com/Microsoft/bond">Bond</a> - An open
|
||
source, cross-platform framework for working with schematized data.
|
||
[MIT]</li>
|
||
<li><a
|
||
href="https://github.com/boostorg/serialization">Boost.Serialization</a>
|
||
- Boost Serialization Library. [Boost] <a
|
||
href="https://boost.org/libs/serialization">website</a></li>
|
||
<li><a href="https://github.com/capnproto/capnproto">Cap’n Proto</a> -
|
||
Fast data interchange format and capability-based RPC system. [MIT] <a
|
||
href="https://capnproto.org/">website</a></li>
|
||
<li><a href="https://github.com/USCiLab/cereal">cereal</a> - A C++11
|
||
library for serialization. [BSD]</li>
|
||
<li><a href="https://github.com/felixguendling/cista">cista</a> - A
|
||
C++17 library for zero-copy high-performance (de-)serialization.
|
||
[MIT]</li>
|
||
<li><a href="https://github.com/tplgy/cppcodec">cppcodec</a> -
|
||
Header-only C++11 library to encode/decode base64, base32 and hex with
|
||
consistent, flexible API. [MIT]</li>
|
||
<li><a
|
||
href="https://github.com/chronoxor/FastBinaryEncoding">FastBinaryEncoding</a>
|
||
- Fast Binary Encoding is ultra fast and universal serialization
|
||
solution for C++, C#, Go, Java, JavaScript, Kotlin, Python, Ruby, Swift.
|
||
[MIT]</li>
|
||
<li><a href="https://github.com/google/flatbuffers">FlatBuffers</a> - A
|
||
Memory efficient serialization library. [Apache2]</li>
|
||
<li><a href="http://kaitai.io">Kaitai Struct</a> - A declarative
|
||
language to describe various binary data structures and a compiler to
|
||
generate C++ parser code. [GPLv3+][MIT][Apache2]</li>
|
||
<li><a href="https://github.com/qicosmos/iguana">iguana</a> - a modern,
|
||
universal and easy-to-use serialization engine developed in C++20 and
|
||
C++17. [Apache2]</li>
|
||
<li><a href="https://github.com/msgpack/msgpack-c">MessagePack</a> -
|
||
Efficient binary serialization format “like JSON” for C and C++.
|
||
[Apache2] <a href="http://msgpack.org/">website</a></li>
|
||
<li><a href="https://github.com/mrpt/mrpt/">mrpt-serialization</a> -
|
||
Versioned serialization to binary or text formats. [BSD] <a
|
||
href="https://docs.mrpt.org/reference/latest/group_mrpt_serialization_grp.html">website</a></li>
|
||
<li><a href="https://github.com/nanopb/nanopb">nanopb</a> - Small
|
||
code-size Protocol Buffers implementation in ANSI C. [Zlib]</li>
|
||
<li><a href="https://github.com/protocolbuffers/protobuf">protobuf</a> -
|
||
Protocol Buffers - Google’s data interchange format. [BSD]</li>
|
||
<li><a href="https://github.com/protobuf-c/protobuf-c">protobuf-c</a> -
|
||
Protocol Buffers implementation in C. [BSD]</li>
|
||
<li><a
|
||
href="https://github.com/real-logic/simple-binary-encoding">SimpleBinaryEncoding</a>
|
||
- encoding and decoding application messages in binary format for
|
||
low-latency applications. [Apache2]</li>
|
||
<li><a href="https://github.com/protocolbuffers/upb">upb</a> - A small
|
||
protobuf implementation in C. [BSD]</li>
|
||
<li><a href="https://github.com/niXman/yas">YAS</a> - Very fast
|
||
<strong>Y</strong>et <strong>A</strong>nother
|
||
<strong>S</strong>erialization library supports the binary/text/json
|
||
formats. [Boost]</li>
|
||
<li><a href="https://github.com/eyalz800/zpp_bits">zpp_bits</a> -
|
||
Actually, the fastest modern <strong>S</strong>erialization library.
|
||
Just check <a
|
||
href="https://www.youtube.com/watch?v=G7-GQhCw8eE&ab_channel=CppCon">this
|
||
video</a>.</li>
|
||
</ul>
|
||
<h2 id="serial-port">Serial Port</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/chriskohlhoff/asio/">Asio</a> - Asio
|
||
includes classes for creating and manipulating serial ports in a
|
||
portable manner. [Boost] <a
|
||
href="http://think-async.com/">website</a></li>
|
||
<li><a href="https://github.com/boostorg/asio">Boost.Asio</a> -
|
||
Boost.Asio includes classes for creating and manipulating serial ports
|
||
in a portable manner. [Boost] <a
|
||
href="https://boost.org/libs/asio">website</a></li>
|
||
<li><a href="https://github.com/itas109/CSerialPort">CSerialPort</a> -
|
||
lightweight cross-platform serial port library. [LGPL3]</li>
|
||
<li><a href="https://github.com/crayzeewulf/libserial">Libserial</a> -
|
||
Serial Port Programming in C++. [BSD-3-Clause]</li>
|
||
<li><a href="https://github.com/wjwwood/serial">Serial Communication
|
||
Library</a> - Cross-platform, Serial Port library written in C++. [MIT]
|
||
<a href="http://wjwwood.io/serial/">website</a></li>
|
||
</ul>
|
||
<h2 id="sorting">Sorting</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/Morwenn/cpp-sort">cpp-sort</a> - Sorting
|
||
algorithms & related tools for C++14. [MIT]</li>
|
||
<li><a href="https://github.com/orlp/pdqsort">pdqsort</a> -
|
||
Pattern-defeating quicksort. [zlib]</li>
|
||
<li><a href="https://github.com/gfx/cpp-TimSort">Timsort</a> - A
|
||
templated stable sorting function which outperforms quicksort-based
|
||
algorithms including std::sort, for reversed or semi-sorted data.
|
||
[MIT]</li>
|
||
<li><a
|
||
href="https://github.com/mattreecebentley/plf_indiesort">Indiesort</a> -
|
||
A sort wrapper which enables the use of std::sort (& other
|
||
random-access sort functions) with non-random-access containers, and
|
||
also improves sort performance for large/non-trivially-copyable types in
|
||
random-access containers and arrays. [zLib] <a
|
||
href="https://plflib.org/indiesort.htm">website</a></li>
|
||
</ul>
|
||
<h2 id="video">Video</h2>
|
||
<ul>
|
||
<li><a href="http://www.webmproject.org/code/">libvpx</a> - VP8/VP9
|
||
Codec SDK. [BSD]</li>
|
||
<li><a href="https://www.ffmpeg.org/">FFmpeg</a> - A complete,
|
||
cross-platform solution to record, convert and stream audio and video.
|
||
[LGPL2/GPL2]</li>
|
||
<li><a href="https://github.com/strukturag/libde265">libde265</a> - Open
|
||
h.265 video codec implementation. [LGPL] <a
|
||
href="http://www.libde265.org/">website</a></li>
|
||
<li><a href="https://bitbucket.org/multicoreware/x265_git/src">x265</a>
|
||
- Open h.265 video codec implementation. [GPL2] <a
|
||
href="https://x265.readthedocs.io/en/master/">website</a></li>
|
||
<li><a href="https://github.com/cisco/openh264">OpenH264</a> - Open
|
||
Source H.264 Codec. [BSD] <a
|
||
href="http://www.openh264.org/">website</a></li>
|
||
<li><a href="http://www.theora.org/">Theora</a> - A free and open video
|
||
compression format. [BSD]</li>
|
||
<li><a href="https://github.com/twitter/vireo/">Vireo</a> - A
|
||
lightweight and versatile video processing library by Twitter.
|
||
[MIT]</li>
|
||
</ul>
|
||
<h2 id="virtual-machines">Virtual Machines</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/tekknolagi/carp">CarpVM</a> -
|
||
“interesting” VM in C. Let’s see how this goes. [GPLv3]</li>
|
||
<li><a href="https://github.com/micropython/micropython">MicroPython</a>
|
||
- Aims to put an implementation of Python 3.x on a microcontroller.
|
||
[MIT]</li>
|
||
<li><a href="https://github.com/jakogut/tinyvm">TinyVM</a> - A small,
|
||
fast, lightweight virtual machine written in pure ANSI C. [MIT]</li>
|
||
</ul>
|
||
<h2 id="web-application-framework">Web Application Framework</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/civetweb/civetweb">Civetweb</a> -
|
||
Provides easy to use, powerful, C/C++ embeddable web server with
|
||
optional CGI, SSL and Lua support. [MIT]</li>
|
||
<li><a href="https://github.com/Microsoft/cpprestsdk">C++ REST SDK</a> -
|
||
Microsoft project for cloud-based client-server communication in native
|
||
code using a modern asynchronous C++ API design. [MIT]</li>
|
||
<li><a href="http://cppcms.com/">CppCMS</a> - A Free High Performance
|
||
Web Development Framework (not a CMS). [LGPLv3]</li>
|
||
<li><a href="https://github.com/CrowCpp/Crow">Crow</a> - Crow is a C++
|
||
microframework for running web services. It uses routing similar to
|
||
Python’s Flask. [BSD] <a href="https://crowcpp.org">website</a></li>
|
||
<li><a href="https://github.com/cutelyst/cutelyst">Cutelyst</a> - A C++
|
||
Web Framework built on top of Qt, using the simple approach of Catalyst
|
||
(Perl) framework. [LGPLv2.1+] <a
|
||
href="https://cutelyst.org/">website</a></li>
|
||
<li><a href="https://github.com/an-tao/drogon">Drogon</a> - A C++14/17
|
||
based, high-performance HTTP application framework. [MIT]</li>
|
||
<li><a href="https://github.com/wfrest/wfrest">C++ wfrest</a> - C++ Web
|
||
Framework REST API. [Apache2]</li>
|
||
<li><a href="https://github.com/boazsegev/facil.io">facil.io</a> -
|
||
Evented, high performance C web framework supporting HTTP, WebSockets,
|
||
SSE and more. [MIT] <a href="http://facil.io">website</a></li>
|
||
<li><a href="https://kore.io/">Kore</a> - ultra fast and flexible web
|
||
server / framework for web applications developed in C. [ISC]</li>
|
||
<li><a href="http://www.coralbits.com/libonion/">libOnion</a> -
|
||
lightweight library to help you create webservers in C programming
|
||
language. [LGPLv3]</li>
|
||
<li><a href="https://github.com/lpereira/lwan">lwan</a> - Experimental,
|
||
scalable, high performance HTTP server. [GPL2]</li>
|
||
<li><a href="https://github.com/oatpp/oatpp">oat++</a> - Light,
|
||
zero-dependency framework to create high-performance web-services.
|
||
[Apache-2.0] <a href="https://oatpp.io/">website</a></li>
|
||
<li><a href="http://pistache.io/">Pistache</a> - Pistache is a C++ REST
|
||
framework written in pure C++11 with no external dependency.
|
||
[Apache2]</li>
|
||
<li><a href="https://github.com/jlaine/qdjango/">QDjango</a> - 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]</li>
|
||
<li><a
|
||
href="https://github.com/treefrogframework/treefrog-framework">TreeFrog
|
||
Framework</a> - High-speed and full-stack web application framework
|
||
based on C++ and Qt, which supports HTTP and WebSocket protocol (with
|
||
O/R mapping). [BSD] <a
|
||
href="http://www.treefrogframework.org/">website</a></li>
|
||
<li><a href="https://github.com/userver-framework/userver">userver</a> -
|
||
Asynchronous C++17 framework with a rich set of abstractions and
|
||
database drivers for fast and comfortable creation of efficient
|
||
microservices, services and utilities. [Apache-2.0] <a
|
||
href="https://userver.tech/">website</a></li>
|
||
<li><a href="http://www.webtoolkit.eu/wt">Wt</a> - A C++ library for
|
||
developing web applications. [GPL/Proprietary]</li>
|
||
</ul>
|
||
<h2 id="xml">XML</h2>
|
||
<p><em>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</em></p>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/boostorg/property_tree">Boost.PropertyTree</a>
|
||
- A property tree parser/generator that can be used to parse
|
||
XML/JSON/INI/Info files. [Boost] <a
|
||
href="https://boost.org/libs/property_tree">website</a></li>
|
||
<li><a href="http://www.libexpat.org/">Expat</a> - An XML parser library
|
||
written in C. [MIT]</li>
|
||
<li><a href="http://xmlsoft.org/">Libxml2</a> - The XML C parser and
|
||
toolkit of Gnome. [MIT]</li>
|
||
<li><a href="http://libxmlplusplus.sourceforge.net/">libxml++</a> - An
|
||
XML Parser for C++. [LGPL2]</li>
|
||
<li><a href="https://github.com/michaelrsweet/mxml">Mini-XML</a> - A
|
||
small XML parsing library written in ANSI C. [LGPL2 with
|
||
exceptions]</li>
|
||
<li><a href="http://pugixml.org/">PugiXML</a> - A light-weight, simple
|
||
and fast XML parser for C++ with XPath support. [MIT]</li>
|
||
<li><a href="http://rapidxml.sourceforge.net/">RapidXml</a> - An attempt
|
||
to create the fastest XML parser possible, while retaining useability,
|
||
portability and reasonable W3C compatibility. [Boost]</li>
|
||
<li><a href="http://sourceforge.net/projects/tinyxml/">TinyXML</a> - A
|
||
simple, small, minimal, C++ XML parser that can be easily integrating
|
||
into other programs. [zlib]</li>
|
||
<li><a href="https://github.com/leethomason/tinyxml2">TinyXML2</a> - A
|
||
simple, small, efficient, C++ XML parser that can be easily integrating
|
||
into other programs. [zlib]</li>
|
||
<li><a href="https://github.com/rjpcomputing/ticpp">TinyXML++</a> - A
|
||
completely new interface to TinyXML that uses MANY of the C++ strengths.
|
||
Templates, exceptions, and much better error handling. [MIT]</li>
|
||
<li><a href="https://github.com/apache/xalan-c">Xalan C</a> - A library
|
||
and a command line program to transform XML documents using a stylesheet
|
||
that conforms to XSLT 1.0 standards. [Apache-2.0] <a
|
||
href="https://xalan.apache.org/">website</a></li>
|
||
<li><a href="http://xerces.apache.org/xerces-c/">Xerces-C++</a> - A
|
||
validating XML parser written in a portable subset of C++.
|
||
[Apache2]</li>
|
||
</ul>
|
||
<h2 id="yaml">Yaml</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/jimmiebergmann/mini-yaml">mini-yaml</a>
|
||
- Single header YAML 1.0 C++11 serializer/deserializer. [MIT]</li>
|
||
<li><a href="https://github.com/jbeder/yaml-cpp">yaml-cpp</a> - A YAML
|
||
parser and emitter in C++. [MIT]</li>
|
||
<li><a href="https://github.com/biojppm/rapidyaml">rapidyaml</a> - Rapid
|
||
YAML is a C++ library to parse and emit YAML. [MIT]</li>
|
||
</ul>
|
||
<h2 id="miscellaneous">Miscellaneous</h2>
|
||
<p><em>Useful libraries or tools that don’t fit in the categories above
|
||
or maybe just not categorised yet</em></p>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/arvidn/access_profiler">access_profiler</a> - A
|
||
tool to count accesses to member variables in c++ programs. [GPL3]</li>
|
||
<li><a href="http://lcamtuf.coredump.cx/afl/">American fuzzy lop</a>
|
||
a.k.a. afl-fuzz - Crazy fuzzing tool that automatically discovers bugs
|
||
given time and minimal example input. [Apache2]</li>
|
||
<li><a href="https://github.com/P-H-C/phc-winner-argon2">Argon2</a> -
|
||
The password hash Argon2, winner of PHC. [CC0/Apache2]</li>
|
||
<li><a href="http://bstring.sourceforge.net">Better String</a> - 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]</li>
|
||
<li><a href="https://github.com/boostorg/signals2">Boost.Signals2</a> -
|
||
An implementation of a managed signals and slots system. [Boost] <a
|
||
href="https://boost.org/libs/signals2">website</a></li>
|
||
<li><a href="https://code.google.com/p/casacore/">casacore</a> - A set
|
||
of c++ core libraries derived from aips++. [LGPL]</li>
|
||
<li><a href="https://github.com/google/cctz">CCTZ</a> - a C++ library
|
||
for translating between absolute and civil times using the rules of a
|
||
time zone. [Apache-2.0]</li>
|
||
<li><a href="https://hackingcpp.com/cpp/cheat_sheets.html">Cheat Sheets
|
||
of HackingCPP</a> - Cool cheat sheets and infographics for algorithms,
|
||
views, containers, randomness, etc.</li>
|
||
<li><a href="https://github.com/Cogmasters/concord">Concord</a> - A
|
||
Discord API wrapper library written in C. [MIT] <a
|
||
href="https://cogmasters.github.io/concord">website</a></li>
|
||
<li><a
|
||
href="https://github.com/ryanhaining/cppitertools">CPPItertools</a> -
|
||
Range-based for loop add-ons inspired by the Python builtins and
|
||
itertools library. [BSD-2-Clause]</li>
|
||
<li><a href="https://github.com/MarcDirven/cpp-lazy">cpp-lazy</a> - a
|
||
fast and easy lazy evaluation library for C++11/14/17/20. [MIT]</li>
|
||
<li><a href="https://github.com/d-bahr/CRCpp">CRCpp</a> - Easy to use
|
||
and fast C++ CRC library. [BSD-3-Clause]</li>
|
||
<li><a
|
||
href="https://github.com/louisdx/cxx-prettyprint">cxx-prettyprint</a> -
|
||
A pretty printing library for C++ containers. [Boost]</li>
|
||
<li><a href="https://github.com/HowardHinnant/date">date</a> - A date
|
||
and time library based on the C++11/14/17 <chrono> header. [MIT] <a
|
||
href="https://howardhinnant.github.io/date/date.html">website</a></li>
|
||
<li><a href="https://github.com/brainboxdotcc/DPP">D++ (DPP)</a> - A
|
||
lightweight, high performance and scalable C++ library for creating
|
||
Discord Bots. [Apache2] <a href="https://dpp.dev">website</a></li>
|
||
<li><a href="https://github.com/iboB/dynamix">DynaMix</a> - A library
|
||
which allows you to compose and modify objects at run time. [MIT]</li>
|
||
<li><a href="https://github.com/Viatorus/emio">emio</a> - A safe and
|
||
fast high-level and low-level character input/output library. [MIT]</li>
|
||
<li><a href="https://github.com/cieslarmichal/faker-cxx">faker-cxx</a> -
|
||
C++20 Faker library for generating fake (but realistic) data for testing
|
||
and development. [MIT]</li>
|
||
<li><a href="http://www.fastformat.org">FastFormat</a> - Fast, Safe C++
|
||
Formatting inspired by log4j and Pantheios. [Simplified BSD]</li>
|
||
<li><a href="https://github.com/cppfastio/fast_io">fast_io</a> -
|
||
Significantly faster input/output for C++20. [MIT]</li>
|
||
<li><a href="https://github.com/p-ranav/fccf">fccf</a> - A command-line
|
||
tool that recursively searches a directory to find C/C++ source code
|
||
matching a search string. [MIT]</li>
|
||
<li><a href="https://github.com/fmtlib/fmt">{fmt}</a> :zap: - Small,
|
||
safe and fast formatting library for C++. [Simplified BSD] <a
|
||
href="https://fmt.dev">website</a></li>
|
||
<li><a href="https://github.com/leafsr/gcc-poison">gcc-poison</a> - A
|
||
simple header file for developers to ban unsafe C/C++ functions from
|
||
applications.</li>
|
||
<li><a href="https://github.com/nemequ/hedley">hedley</a> - A C/C++
|
||
header file designed to smooth over some platform-specific annoyances.
|
||
<a href="https://nemequ.github.io/hedley/">website</a></li>
|
||
<li><a
|
||
href="https://github.com/renatoGarcia/icecream-cpp">icecream-cpp</a> - A
|
||
small printing library for debugging purposes. [MIT]</li>
|
||
<li><a href="https://github.com/pantor/inja">inja</a> - A Template
|
||
Engine for Modern C++. [MIT]</li>
|
||
<li><a href="https://github.com/jinja2cpp/Jinja2Cpp">Jinja2С++</a> -
|
||
almost full-conformance template engine implementation. <a
|
||
href="https://jinja2cpp.github.io/">website</a></li>
|
||
<li><a href="https://github.com/Thalhammer/jwt-cpp">jwt-cpp</a> - A
|
||
header only library for creating and validating JSON web tokens in C++.
|
||
[MIT]</li>
|
||
<li><a href="https://github.com/gracicot/kangaru">Kangaru</a> - A
|
||
dependency injection container for C++11 and C++14. [MIT]</li>
|
||
<li><a href="https://github.com/attractivechaos/klib">Klib</a> - Small
|
||
and lightweight implementations of common algorithms and data
|
||
structures. [MIT]</li>
|
||
<li><a href="https://github.com/anrieff/libcpuid">libcpuid</a> - A small
|
||
C library for x86 CPU detection and feature extraction. [BSD]</li>
|
||
<li><a href="https://github.com/ph3at/libenvpp">libenvpp</a> - A modern
|
||
C++ library for type-safe environment variable parsing.
|
||
[Apache-2.0]</li>
|
||
<li><a href="https://github.com/avati/libevil">libevil</a> - The Evil
|
||
License Manager. [GPLv3]</li>
|
||
<li><a href="https://github.com/keybuk/libnih">libnih</a> - A
|
||
lightweight library of C functions and structures. [GPL2.1]</li>
|
||
<li><a
|
||
href="https://github.com/libsigcplusplus/libsigcplusplus">libsigc++</a>
|
||
- A typesafe callback system for standard C++. [LGPL] <a
|
||
href="https://libsigcplusplus.github.io/libsigcplusplus">website</a></li>
|
||
<li><a href="https://libusb.info/">libusb</a> - A universal USB library
|
||
which allows for portable access to USB devices. [LGPL2]</li>
|
||
<li><a href="https://github.com/solodon4/Mach7">Mach7</a> - A
|
||
Pattern-matching library for C++. [BSD]</li>
|
||
<li><a href="https://github.com/mandreyel/mio">mio</a> - Cross-platform
|
||
C++11 header-only library for memory mapped file IO. [MIT]</li>
|
||
<li><a href="https://github.com/taocpp/PEGTL">PEGTL</a> - The Parsing
|
||
Expression Grammar Template Library. [MIT]</li>
|
||
<li><a href="https://github.com/p-ranav/pprint">pprint</a> - Pretty
|
||
Printer for Modern C++. [MIT]</li>
|
||
<li><a href="https://github.com/pspdev/pspsdk">pspsdk</a> - An
|
||
open-source SDK for PSP homebrew development. [BSD/GNU GPL3]</li>
|
||
<li><a
|
||
href="https://github.com/VerbalExpressions/QtVerbalExpressions">QtVerbalExpressions</a>
|
||
- This Qt lib is based off of the C++ VerbalExpressions library.
|
||
[MIT]</li>
|
||
<li><a href="https://github.com/rapidfuzz/rapidfuzz-cpp">RapidFuzz</a> -
|
||
Rapid fuzzy string matching in C++ using the Levenshtein Distance. [MIT]
|
||
<a href="https://rapidfuzz.github.io/rapidfuzz-cpp/">website</a></li>
|
||
<li><a href="http://www.deltavsoft.com/">Remote Call Framework</a> -
|
||
Inter-process communication framework for C++. [GPL2/Proprietary]</li>
|
||
<li><a href="https://github.com/eliaskosunen/scnlib">scnlib</a> - scanf
|
||
for modern C++. [Apache-2.0] <a
|
||
href="https://v1.scnlib.dev/">website</a></li>
|
||
<li><a href="http://scintilla.org/">Scintilla</a> - A free source code
|
||
editing component. [MIT]</li>
|
||
<li><a href="https://github.com/antirez/sds">SDS</a> - Simple Dynamic
|
||
Strings library for C. [BSD]</li>
|
||
<li><a href="https://github.com/h2non/semver.c">semver.c</a> - A semver
|
||
parser and render in ANSI C. [MIT]</li>
|
||
<li><a href="http://sigslot.sourceforge.net/">sigslot</a> - C++
|
||
Signal/Slot Library. [PublicDomain]</li>
|
||
<li><a
|
||
href="https://github.com/larspensjo/SimpleSignal">SimpleSignal</a> -
|
||
High performance C++11 signals. [PublicDomain]</li>
|
||
<li><a href="https://github.com/rtv/Stage">Stage</a> - Mobile robot
|
||
simulator. [GPL2]</li>
|
||
<li><a href="https://github.com/nothings/stb">stb</a> :zap: - A range of
|
||
single-file libraries for C/C++. [PublicDomain]</li>
|
||
<li><a href="https://github.com/jeaye/stdman">stdman</a> - A tool that
|
||
parses archived HTML files from <a
|
||
href="https://cppreference.com">cppreference</a> and generates
|
||
groff-formatted manual pages for Unix-based systems. [MIT]</li>
|
||
<li><a
|
||
href="https://github.com/ashvardanian/StringZilla">StringZilla</a> - the
|
||
Godzilla of string libraries, splitting, sorting, and shuffling large
|
||
textual datasets faster than you can say “Tokyo Tower”.
|
||
[Apache-2.0]</li>
|
||
<li><a
|
||
href="https://www.partow.net/programming/strtk/index.html">StrTk</a> - A
|
||
C++ library consisting of high performance string processing routines.
|
||
[MIT]</li>
|
||
<li><a href="https://github.com/baderouaich/tgbotxx">tgbotxx</a> -
|
||
Telegram Bot C++ Library. [MIT]</li>
|
||
<li><a href="https://tulipindicators.org">Tulip Indicators</a> - A C
|
||
library of over 100 financial technical analysis indicators. [LGPL]</li>
|
||
<li><a href="https://github.com/regehr/ub-canaries">ub-canaries</a> - A
|
||
collection of C/C++ programs that try to get compilers to exploit
|
||
undefined behavior.</li>
|
||
<li><a
|
||
href="https://github.com/jeaye/value-category-cheatsheet">value-category-cheatsheet</a>
|
||
A PDF cheatsheet for lvalues, rvalues, and the like. [Jank
|
||
copyleft]</li>
|
||
<li><a href="https://github.com/szi/vartypes">VarTypes</a> - A
|
||
feature-rich, object-oriented framework for managing variables in C++ /
|
||
Qt4. [LGPL]</li>
|
||
<li><a href="https://github.com/zemasoft/wildcards/">Wildcards</a> - A
|
||
simple C++ header-only template library implementing matching using
|
||
wildcards. [BSL-1.0]</li>
|
||
<li><a href="http://zbar.sourceforge.net/">ZBar</a> - A barcode scanner
|
||
library, which allows to scan photos/images/video streams for barcodes
|
||
and return their value. [LGPL2]</li>
|
||
<li><a href="https://github.com/zxing/zxing/">ZXing</a> - An
|
||
open-source, multi-format 1D/2D barcode image processing library
|
||
implemented in Java, with ports to other languages. [Apache]</li>
|
||
</ul>
|
||
<h1 id="software">Software</h1>
|
||
<p><em>Software for creating a development environment.</em></p>
|
||
<h2 id="compiler">Compiler</h2>
|
||
<p><em>List of C or C++ compilers</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/rui314/8cc">8cc</a> - A Small C
|
||
Compiler.</li>
|
||
<li><a href="https://github.com/ryanmjacobs/c">c</a> - Compile and
|
||
execute C “scripts” in one go! [MIT]</li>
|
||
<li><a href="http://clang.llvm.org/">Clang</a> - A C compiler for LLVM.
|
||
Supports C++11/14/1z C11. Developed by LLVM Team. [NCSA]</li>
|
||
<li><a href="https://gcc.gnu.org/">GCC</a> - GNU Compiler Collection.
|
||
Supports C++11/14/1z C11 and OpenMP. [GNU GPL3]</li>
|
||
<li><a href="http://pcc.ludd.ltu.se/">PCC</a> - A very old C compiler.
|
||
Supports C99.</li>
|
||
<li><a href="https://software.intel.com/en-us/c-compilers">Intel C++
|
||
Compiler</a> - Developed by Intel.</li>
|
||
<li><a href="http://llvm.org/">LLVM</a> - Collection of modular and
|
||
reusable compiler and toolchain technologies.</li>
|
||
<li><a
|
||
href="https://docs.microsoft.com/en-us/cpp/dotnet/dotnet-programming-with-cpp-cli-visual-cpp?view=msvc-160">Microsoft
|
||
Visual C++</a> - MSVC, developed by Microsoft.</li>
|
||
<li><a href="https://github.com/open-watcom">Open WatCom</a> - Watcom C,
|
||
C++, and Fortran cross compilers and tools. [Sybase Open Watcom Public
|
||
License]</li>
|
||
<li><a
|
||
href="http://www.oracle.com/technetwork/server-storage/solarisstudio/overview/index.html">Oracle
|
||
Solaris Studio</a> - C, C++ and Fortran compiler for SPARC and x86.
|
||
Supports C++11. Available on Linux and Solaris. [OTN Developer
|
||
License]</li>
|
||
<li><a href="http://bellard.org/tcc/">TCC</a> - Tiny C Compiler.
|
||
[LGPL]</li>
|
||
</ul>
|
||
<h2 id="online-compiler">Online Compiler</h2>
|
||
<p><em>List of online C or C++ compilers</em></p>
|
||
<ul>
|
||
<li><a href="https://www.codechef.com/ide">codechef</a> - A simple
|
||
online compiler CodeChef.</li>
|
||
<li><a href="http://codepad.org/">codepad</a> - An online
|
||
compiler/interpreter, and a simple collaboration tool.</li>
|
||
<li><a href="http://coliru.stacked-crooked.com/">coliru</a> - Online
|
||
compiler/shell with support for various C++ compilers.</li>
|
||
<li><a href="http://gcc.godbolt.org/">Compiler Explorer</a> - An
|
||
interactive compiler with assembly output available.</li>
|
||
<li><a
|
||
href="http://www.tutorialspoint.com/codingground.htm">CompileOnline</a>
|
||
- Compile and Execute C++ online on Linux.</li>
|
||
<li><a href="http://ideone.com/">Ideone</a> - An online compiler and
|
||
debugging tool which allows you to compile source code and execute it
|
||
online in more than 60 programming languages.</li>
|
||
<li><a
|
||
href="https://www.programiz.com/cpp-programming/online-compiler">Programiz</a>
|
||
- An online compiler for learners and developers.</li>
|
||
<li><a href="https://repl.it">repl.it</a> - A powerful yet simple tools
|
||
and platforms for educators, learners, and developers.</li>
|
||
<li><a href="http://rextester.com/runcode">Rextester</a> - Online
|
||
compiler which provides several compilers(Clang, GCC, MSVC) and several
|
||
editors.</li>
|
||
<li><a href="https://tio.run/">Try It Online</a> - TIO is a family of
|
||
online interpreters for an evergrowing list of practical and
|
||
recreational programming languages.</li>
|
||
<li><a href="https://wandbox.org">Wandbox</a> - An online Clang/GCC
|
||
compiler with Boost available.</li>
|
||
<li><a href="https://paiza.io/en">paiza.io</a> - An online C/C++
|
||
compiler with multiple files supporting feature, Github(gist)
|
||
integration and collaborative editing.</li>
|
||
<li><a
|
||
href="https://www.interviewbit.com/online-cpp-compiler/">InterviewBit</a>
|
||
- A simple and easy to use online C++ compiler.</li>
|
||
</ul>
|
||
<h2 id="debugger">Debugger</h2>
|
||
<p><em>List of C or C++ debuggers</em></p>
|
||
<ul>
|
||
<li><a
|
||
href="https://en.wikipedia.org/wiki/Comparison_of_debuggers">Comparison
|
||
of debuggers</a> - A list of Debuggers from Wikipedia.</li>
|
||
<li><a href="https://www.gnu.org/software/gdb/">GDB</a> - GNU
|
||
Debugger.</li>
|
||
<li><a href="http://lldb.llvm.org/">LLDB</a> - The LLDB Debugger.</li>
|
||
<li><a href="https://metashell.readthedocs.org">Metashell</a> - An
|
||
interactive template metaprogramming shell which includes the MDB
|
||
metadebugger.</li>
|
||
<li><a href="http://valgrind.org/">Valgrind</a> - A tool for memory
|
||
debugging, memory leak detection, and profiling.</li>
|
||
<li><a href="http://x64dbg.com/">x64dbg</a> - An open-source x64/x32
|
||
debugger for windows.</li>
|
||
</ul>
|
||
<h2 id="integrated-development-environment">Integrated Development
|
||
Environment</h2>
|
||
<p><em>List of C or C++ nominal IDEs.</em></p>
|
||
<ul>
|
||
<li><a href="https://sourceforge.net/projects/anjuta/">Anjuta
|
||
DevStudio</a> - The GNOME IDE. [GPL3]</li>
|
||
<li><a href="http://www.jetbrains.com/objc/">AppCode</a> - an IDE for
|
||
Objective-C, C, C++, and JavaScript development built on JetBrains’
|
||
IntelliJ IDEA platform.</li>
|
||
<li><a href="https://www.cevelop.com">Cevelop</a> - Cross-platform C and
|
||
C++ IDE based on Eclipse CDT with additional plug-ins.</li>
|
||
<li><a href="http://www.jetbrains.com/clion/">CLion</a> - Cross-platform
|
||
C and C++ IDE from JetBrains.</li>
|
||
<li><a href="http://www.codeblocks.org/">Code::Blocks</a> - A free C,
|
||
C++ and Fortran IDE.</li>
|
||
<li><a href="http://codelite.org/">CodeLite</a> - Another cross-plaform,
|
||
free C and C++ IDE. [GPL2 with an exception for plugins]</li>
|
||
<li><a href="https://github.com/jeaye/color_coded">color_coded</a> - A
|
||
vim plugin for libclang-based highlighting. [MIT]</li>
|
||
<li><a href="http://sourceforge.net/projects/orwelldevcpp/">Dev-C++</a>
|
||
- A portable C/C++/C++11 IDE.</li>
|
||
<li><a href="http://www.eclipse.org/cdt/">Eclipse CDT</a> - A fully
|
||
functional C and C++ IDE based on the Eclipse platform.</li>
|
||
<li><a href="https://github.com/Embarcadero/Dev-Cpp">Embarcadero
|
||
Dev-CPP</a> - A fork of Dev-C++ that comes preinstalled with new themes
|
||
and modern compilers. [GPLv2] <a
|
||
href="https://www.embarcadero.com/free-tools/dev-cpp">website</a></li>
|
||
<li><a href="http://www.geany.org/">Geany</a> - Small, fast,
|
||
cross-platform IDE. [GPL]</li>
|
||
<li><a href="http://www-03.ibm.com/software/products/en/visgen">IBM
|
||
VisualAge</a> - A family of computer integrated development environments
|
||
from IBM.</li>
|
||
<li><a href="https://github.com/Sarcasm/irony-mode">Irony-mode</a> - A
|
||
C/C++ minor mode for Emacs powered by libclang.</li>
|
||
<li><a href="https://gitlab.com/cppit/jucipp">juCi++</a> -
|
||
Cross-platform, lightweight C++ IDE with libclang integration.
|
||
[MIT]</li>
|
||
<li><a href="https://www.kdevelop.org/">KDevelop</a> - A free, open
|
||
source IDE.</li>
|
||
<li><a href="https://www.visualstudio.com/">Microsoft Visual Studio</a>
|
||
- An IDE from Microsoft.</li>
|
||
<li><a href="https://github.com/microsoft/vscode">Microsoft Visual
|
||
Studio Code</a> :zap: - An open-source IDE from Microsoft. [MIT] <a
|
||
href="https://code.visualstudio.com">website</a></li>
|
||
<li><a href="https://netbeans.org/">NetBeans</a> - An IDE for developing
|
||
primarily with Java, but also with other languages, in particular PHP,
|
||
C/C++, and HTML5.</li>
|
||
<li><a href="https://github.com/qt-creator/qt-creator">Qt Creator</a>
|
||
:zap: - A cross-platform C++, JavaScript and QML IDE which is part of
|
||
the SDK for Qt. [GPL3 with exceptions] <a
|
||
href="https://www.qt.io/product/development-tools">website</a></li>
|
||
<li><a href="https://github.com/Andersbakken/rtags">rtags</a> - A c/c++
|
||
client/server indexer with for integration with emacs based on
|
||
clang.</li>
|
||
<li><a href="https://developer.apple.com/xcode/">Xcode</a> - Developed
|
||
by Apple.</li>
|
||
<li><a
|
||
href="https://github.com/ycm-core/YouCompleteMe">YouCompleteMe</a> -
|
||
YouCompleteMe is a fast, as-you-type, fuzzy-search code completion
|
||
engine for Vim.</li>
|
||
<li><a href="https://github.com/cquery-project/cquery/">cquery</a> - A
|
||
C++ code completion engine for vscode, emacs, vim, etc.</li>
|
||
</ul>
|
||
<h2 id="build-systems">Build Systems</h2>
|
||
<ul>
|
||
<li><a href="https://bazel.build">Bazel</a> - A multi-language, fast and
|
||
scalable build system from Google. [Apache]</li>
|
||
<li><a href="https://github.com/rizsotto/Bear">Bear</a> - A tool to
|
||
generate compilation database for clang tooling. [GPLv3]</li>
|
||
<li><a href="https://github.com/facebook/buck">Buck</a> - A fast build
|
||
system that encourages the creation of small, reusable modules over a
|
||
variety of platforms and languages including C++ developed and used at
|
||
Facebook. Written in Java. [Apache]</li>
|
||
<li><a href="https://build2.org/">build2</a> - cross-platform build,
|
||
packaging and dependency management toolchain for developing and
|
||
packaging C/C++ projects. [MIT]</li>
|
||
<li><a href="https://ccache.dev/">Ccache</a> - A fast C/C++ compiler
|
||
cache. [GPLv3]</li>
|
||
<li><a href="https://github.com/clibs/clib">clib</a> - Package manager
|
||
for the C programming language. [MIT]</li>
|
||
<li><a href="https://cmake.org/">CMake</a> - Cross-platform free and
|
||
open-source software for managing the build process of software using a
|
||
compiler-independent method. [BSD]</li>
|
||
<li><a href="https://github.com/pfultz2/cget">Cget</a> - Cmake package
|
||
retrieval. [Boost] <a href="http://cget.readthedocs.io">website</a></li>
|
||
<li><a href="https://conan.io/">Conan</a> - C/C++ Package Manager, open
|
||
sourced. [MIT]</li>
|
||
<li><a href="https://github.com/iauns/cpm">CPM</a> - A C++ Package
|
||
Manager based on CMake and Git.</li>
|
||
<li><a href="http://www.fastbuild.org/docs/home.html">FASTBuild</a> -
|
||
High performance, open-source build system supporting highly scalable
|
||
compilation, caching and network distribution.</li>
|
||
<li><a href="https://www.github.com/ruslo/hunter">Hunter</a> - CMake
|
||
driven cross-platform package manager for C++. [BSD-2]</li>
|
||
<li><a href="http://mesonbuild.com">MesonBuild</a> - An open source
|
||
build system meant to be both extremely fast, and, even more
|
||
importantly, as user friendly as possible.</li>
|
||
<li><a href="https://ninja-build.org/">Ninja</a> - A small build system
|
||
with a focus on speed.</li>
|
||
<li><a href="https://github.com/mozilla/sccache">Sccache</a> - A fast
|
||
compiler cache for C/C++, with cross-platform support and cloud backed
|
||
storage options.</li>
|
||
<li><a href="http://www.scons.org/">Scons</a> - A software construction
|
||
tool configured with a Python script.</li>
|
||
<li><a href="http://www.sconsolidator.com/">Sconsolidator</a> - Scons
|
||
build system integration for Eclipse CDT.</li>
|
||
<li><a href="https://spack.io/">Spack</a> - A flexible package manager
|
||
that supports multiple versions, configurations, platforms, and
|
||
compilers. [Apache-2.0/MIT]</li>
|
||
<li><a href="https://software-network.org/">SW</a> - Cross-platform C++
|
||
(and other langs) Build System and Package Manager with a lot of
|
||
packages available. [GPLv3]</li>
|
||
<li><a href="https://github.com/deplinenoise/tundra">tundra</a> -
|
||
High-performance code build system designed to give the best possible
|
||
incremental build times even for very large software projects.</li>
|
||
<li><a href="http://gittup.org/tup/">tup</a> - File-based build system
|
||
that monitors in the background for changed files.</li>
|
||
<li><a href="http://premake.github.io">Premake</a> - 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.</li>
|
||
<li><a href="https://github.com/microsoft/vcpkg">Vcpkg</a> - C++ library
|
||
manager for Windows, Linux, and MacOS. [MIT]</li>
|
||
<li><a href="https://gitlab.com/ita1024/waf">waf</a> - Python-based
|
||
framework for configuring, compiling and installing applications. [BSD]
|
||
<a href="https://waf.io/">website</a></li>
|
||
<li><a href="https://xmake.io/">XMake</a> - A C/C++ cross-platform build
|
||
utility based on Lua. [Apache]</li>
|
||
</ul>
|
||
<h2 id="static-code-analysis">Static Code Analysis</h2>
|
||
<p><em>List of tools for improving quality and reducing defects by code
|
||
analysis</em></p>
|
||
<ul>
|
||
<li><a href="http://cppcheck.sourceforge.net/">Cppcheck</a> - A tool for
|
||
static C/C++ code analysis. - <a
|
||
href="https://github.com/danmar/cppcheck">source</a></li>
|
||
<li><a href="https://www.cppdepend.com/">CppDepend</a> - Simplifies
|
||
managing a complex C/C++ code base by analyzing and visualizing code
|
||
dependencies, by defining design rules, by doing impact analysis, and
|
||
comparing different versions of the code.</li>
|
||
<li><a href="https://github.com/cpplint/cpplint">cpplint</a> - A C++
|
||
style checker following Google’s C++ style guide.</li>
|
||
<li><a href="http://www.viva64.com/en/pvs-studio/">PVS-Studio</a> - A
|
||
tool for bug detection in the source code of programs, written in C, C++
|
||
and C#.</li>
|
||
<li><a
|
||
href="https://github.com/tomtom-international/cpp-dependencies">cpp-dependencies</a>
|
||
- Tool to check C++ #include dependencies (dependency graphs created in
|
||
.dot format). [Apache]</li>
|
||
<li><a
|
||
href="https://github.com/include-what-you-use/include-what-you-use">include-what-you-use</a>
|
||
- A tool for use with clang to analyze includes in C and C++ source
|
||
files. <a href="https://include-what-you-use.org/">website</a></li>
|
||
<li><a href="https://github.com/facebook/infer">Infer</a> - A static
|
||
analyzer for Java, C and Objective-C. [BSD]</li>
|
||
<li><a href="http://oclint.org/">OCLint</a> - A static source code
|
||
analysis tool to improve quality and reduce defects for C, C++ and
|
||
Objective-C. - <a
|
||
href="https://github.com/oclint/oclint">source</a></li>
|
||
<li><a href="http://clang-analyzer.llvm.org/index.html">Clang Static
|
||
Analyzer</a> - A source code analysis tool that finds bugs in C, C++,
|
||
and Objective-C programs.</li>
|
||
<li><a href="http://linticator.com">Linticator</a> - Eclipse CDT
|
||
integration of Pc-/FlexeLint.</li>
|
||
<li><a href="https://github.com/NASA-SW-VnV/ikos">IKOS</a> - Static
|
||
analyzer for C/C++ based on the theory of Abstract Interpretation. [NOSA
|
||
1.3]</li>
|
||
<li><a
|
||
href="https://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis#C.2FC.2B.2B">List
|
||
of tools for static code analysis</a> - A list of tools for static code
|
||
analysis from Wikipedia.</li>
|
||
<li><a href="https://github.com/OfekShilon/optview2">OptView2</a> -
|
||
Inspect missed Clang optimizations.</li>
|
||
<li><a href="https://trunk.io">Trunk</a> - Toolkit to check, test,
|
||
merge, and monitor code.</li>
|
||
</ul>
|
||
<h2 id="coding-style-tools">Coding Style Tools</h2>
|
||
<ul>
|
||
<li><a href="http://astyle.sourceforge.net/">Artistic Style</a> - A tool
|
||
to format C/C++/C#/Obj-C/Java code. Also known as astyle.</li>
|
||
<li><a
|
||
href="http://clang.llvm.org/docs/ClangFormat.html">ClangFormat</a> - A
|
||
tool to format C/C++/Obj-C code.</li>
|
||
<li><a href="http://clang.llvm.org/extra/clang-tidy.html">Clang-Tidy</a>
|
||
- Clang-based C++ linter tool.</li>
|
||
<li><a href="https://editorconfig.org/">EditorConfig</a> - EditorConfig
|
||
helps maintain consistent coding styles across different editors and
|
||
IDEs.</li>
|
||
<li><a href="https://github.com/uncrustify/uncrustify">Uncrustify</a> -
|
||
Code beautifier.</li>
|
||
</ul>
|
||
<h1 id="resources">Resources</h1>
|
||
<p><em>Various resources, such as books, websites, and articles for
|
||
improving your C++ development skills and knowledge.</em></p>
|
||
<h2 id="api-design">API Design</h2>
|
||
<ul>
|
||
<li><a
|
||
href="http://lucumr.pocoo.org/2013/8/18/beautiful-native-libraries/">Beautiful
|
||
Native Libraries</a></li>
|
||
<li><a href="https://doc.qt.io/archives/qq/qq13-apis.html">Designing
|
||
Qt-Style C++ APIs</a></li>
|
||
</ul>
|
||
<h2 id="articles">Articles</h2>
|
||
<p><em>Fantastic C++ related articles.</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/CppCon/CppCon2023">CppCon 2023
|
||
Presentation Materials</a> - CppCon 2023 Presentation Materials.</li>
|
||
<li><a href="https://github.com/CppCon/CppCon2022">CppCon 2022
|
||
Presentation Materials</a> - CppCon 2022 Presentation Materials.</li>
|
||
<li><a href="https://github.com/CppCon/CppCon2021">CppCon 2021
|
||
Presentation Materials</a> - CppCon 2021 Presentation Materials.</li>
|
||
<li><a href="https://github.com/CppCon/CppCon2020">CppCon 2020
|
||
Presentation Materials</a> - CppCon 2020 Presentation Materials.</li>
|
||
<li><a href="https://github.com/CppCon/CppCon2019">CppCon 2019
|
||
Presentation Materials</a> - CppCon 2019 Presentation Materials.</li>
|
||
<li><a href="https://github.com/CppCon/CppCon2018">CppCon 2018
|
||
Presentation Materials</a> - CppCon 2018 Presentation Materials.</li>
|
||
<li><a href="https://github.com/CppCon/CppCon2017">CppCon 2017
|
||
Presentation Materials</a> - CppCon 2017 Presentation Materials.</li>
|
||
<li><a href="https://github.com/CppCon/CppCon2016">CppCon 2016
|
||
Presentation Materials</a> - CppCon 2016 Presentation Materials.</li>
|
||
<li><a href="https://github.com/CppCon/CppCon2015">CppCon 2015
|
||
Presentation Materials</a> - CppCon 2015 Presentation Materials.</li>
|
||
<li><a href="https://github.com/CppCon/CppCon2014">CppCon 2014
|
||
Presentation Materials</a> - CppCon 2014 Presentation Materials.</li>
|
||
<li><a
|
||
href="https://github.com/boostcon/cppnow_presentations_2023">C++Now 2023
|
||
Presentations</a> - Presentation materials presented at C++Now
|
||
2023.</li>
|
||
<li><a
|
||
href="https://github.com/boostcon/cppnow_presentations_2022">C++Now 2022
|
||
Presentations</a> - Presentation materials presented at C++Now
|
||
2022.</li>
|
||
<li><a
|
||
href="https://github.com/boostcon/cppnow_presentations_2021">C++Now 2021
|
||
Presentations</a> - Presentation materials presented at C++Now
|
||
2021.</li>
|
||
<li><a
|
||
href="https://github.com/boostcon/cppnow_presentations_2019">C++Now 2019
|
||
Presentations</a> - Presentation materials presented at C++Now
|
||
2019.</li>
|
||
<li><a
|
||
href="https://github.com/boostcon/cppnow_presentations_2018">C++Now 2018
|
||
Presentations</a> - Presentation materials presented at C++Now
|
||
2018.</li>
|
||
<li><a
|
||
href="https://github.com/boostcon/cppnow_presentations_2017">C++Now 2017
|
||
Presentations</a> - Presentation materials presented at C++Now
|
||
2017.</li>
|
||
<li><a
|
||
href="https://github.com/boostcon/cppnow_presentations_2016">C++Now 2016
|
||
Presentations</a> - Presentation materials presented at C++Now
|
||
2016.</li>
|
||
<li><a
|
||
href="https://github.com/boostcon/cppnow_presentations_2015">C++Now 2015
|
||
Presentations</a> - Presentation materials presented at C++Now
|
||
2015.</li>
|
||
<li><a
|
||
href="https://github.com/boostcon/cppnow_presentations_2014">C++Now 2014
|
||
Presentations</a> - Presentation materials presented at C++Now
|
||
2014.</li>
|
||
<li><a
|
||
href="https://github.com/boostcon/cppnow_presentations_2013">C++Now 2013
|
||
Presentations</a> - Presentation materials presented at C++Now
|
||
2013.</li>
|
||
<li><a
|
||
href="https://github.com/boostcon/cppnow_presentations_2012">C++Now 2012
|
||
Presentations</a> - Presentation materials presented at C++Now
|
||
2012.</li>
|
||
</ul>
|
||
<h2 id="books">Books</h2>
|
||
<p><em>Fantastic C or C++ related books.</em></p>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/fffaraz/awesome-cpp/blob/master/books.md">List
|
||
of Free C or C++ Books</a></li>
|
||
<li><a
|
||
href="https://github.com/EbookFoundation/free-programming-books/blob/main/books/free-programming-books-langs.md#c">Free
|
||
C Books</a> - vhf/free-programming-books/C.</li>
|
||
<li><a
|
||
href="https://github.com/EbookFoundation/free-programming-books/blob/main/books/free-programming-books-langs.md#cpp">Free
|
||
C++ Books</a> - vhf/free-programming-books/C++.</li>
|
||
<li><a
|
||
href="https://github.com/lefticus/cppbestpractices">cppbestpractices</a>
|
||
- Collaborative Collection of C++ Best Practices.</li>
|
||
</ul>
|
||
<h2 id="coding-standards">Coding Standards</h2>
|
||
<ul>
|
||
<li><a
|
||
href="https://resources.sei.cmu.edu/downloads/secure-coding/assets/sei-cert-cpp-coding-standard-2016-v01.pdf">Cert
|
||
C++</a></li>
|
||
<li><a href="https://www.cppdepend.com/misra-cpp">Misra C++
|
||
2008</a></li>
|
||
<li><a
|
||
href="https://www.autosar.org/fileadmin/standards/adaptive/21-11/AUTOSAR_RS_CPP14Guidelines.pdf">Autosar
|
||
C++ 2014</a></li>
|
||
</ul>
|
||
<h2 id="coding-style">Coding Style</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/isocpp/CppCoreGuidelines">C++ Core
|
||
Guidelines</a> - “Official” set of C++ guidelines, reviewed by the
|
||
author of C++.</li>
|
||
<li><a
|
||
href="http://www.chromium.org/developers/coding-style/cpp-dos-and-donts">C++
|
||
Dos and Don’ts</a> - The Chromium Projects > For Developers >
|
||
Coding Style > C++ Dos and Don’ts.</li>
|
||
<li><a href="https://github.com/google/styleguide">google-styleguide</a>
|
||
- Style guides for Google-originated open-source projects.</li>
|
||
<li><a href="https://google.github.io/styleguide/cppguide.html">Google
|
||
C++ Style Guide</a></li>
|
||
<li><a href="http://www.gnu.org/prep/standards/standards.html">GNU
|
||
Coding Standard</a></li>
|
||
<li><a
|
||
href="https://www.kernel.org/doc/Documentation/process/coding-style.rst">Linux
|
||
kernel coding style</a></li>
|
||
<li><a href="http://llvm.org/docs/CodingStandards.html">LLVM Coding
|
||
Standards</a></li>
|
||
</ul>
|
||
<h2 id="podcasts">Podcasts</h2>
|
||
<ul>
|
||
<li><a href="http://cppcast.com">CppCast</a> - The first podcast by C++
|
||
developers for C++ developers.</li>
|
||
<li><a href="http://cpp.chat">CppChat</a> - A (sometimes) weekly look at
|
||
what’s going on in the world of C++ chatting with a guest from the
|
||
community.</li>
|
||
</ul>
|
||
<h2 id="talks">Talks</h2>
|
||
<ul>
|
||
<li><a href="https://github.com/eoan-ermine/cpp-conferences">C++
|
||
Conferences</a> - Catalog of C++ conferences</li>
|
||
<li><a href="https://www.youtube.com/user/CppCon/videos">CppCon
|
||
Talks</a> :zap: - The C++ conference.</li>
|
||
<li><a href="https://github.com/SuperV1234/cppcon2014">Quick game
|
||
development with C++11/C++14</a> - CppCon 2014 talk by Vittorio
|
||
Romeo.</li>
|
||
<li><a href="https://github.com/ldionne/hana-cppnow-2015">Presentation
|
||
on Hana for C++Now 2015</a></li>
|
||
<li><a href="https://www.youtube.com/user/MeetingCPP/videos">Meeting
|
||
Cpp</a> - Meeting C++ Youtube Channel</li>
|
||
</ul>
|
||
<h2 id="videos">Videos</h2>
|
||
<p><em>Fantastic C or C++ related videos.</em></p>
|
||
<ul>
|
||
<li><a
|
||
href="https://github.com/fffaraz/awesome-cpp/blob/master/videos.md">List
|
||
of C or C++ YouTube Videos</a></li>
|
||
<li><a
|
||
href="https://www.youtube.com/playlist?list=PLCB9F975ECF01953C">Awesome
|
||
C Programming Tutorials in Hi Def [HD]</a> - A collection of detailed C
|
||
Programming Language Tutorials for Beginners and New Programmers.</li>
|
||
<li><a
|
||
href="https://www.youtube.com/playlist?list=PL2F919ADECA5E39A6">C++</a>
|
||
- by VoidRealms.</li>
|
||
<li><a
|
||
href="https://www.youtube.com/playlist?list=PL2D1942A4688E9D63">C++ Qt
|
||
Programming</a> - by VoidRealms.</li>
|
||
<li><a
|
||
href="https://www.youtube.com/playlist?list=PLAE85DE8440AA6B83">C++
|
||
Programming Tutorials Playlist</a> - TheNewBoston Official Buckys C++
|
||
Programming Tutorials Playlist.</li>
|
||
<li><a
|
||
href="https://www.youtube.com/playlist?list=PLF541C2C1F671AEF6">C++
|
||
Programming Tutorials from thenewboston</a> - These are all of
|
||
thenewboston’s C++ programming tutorials.</li>
|
||
<li><a
|
||
href="https://www.youtube.com/playlist?list=PLD0D54219E5F2544D">C++ GUI
|
||
with Qt Playlist</a> - Official Playlist for thenewboston C++ GUI with
|
||
Qt tutorials.</li>
|
||
<li><a
|
||
href="https://www.youtube.com/playlist?list=PL_c9BZzLwBRKKqOc9TJz1pP0ASrxLMtp2">Caleb
|
||
Curry’s C Programming Tutorials</a> - An all-in-one playlist of
|
||
tutorials for C programming.</li>
|
||
<li><a href="https://www.youtube.com/playlist?list=PL78280D6BE6F05D34">C
|
||
Programming Tutorials</a> - All of TheNewBoston’s C programming
|
||
tutorials are right here.</li>
|
||
<li><a
|
||
href="https://www.youtube.com/user/BoQianTheProgrammer/playlists">Bo
|
||
Qian’s playlist</a> - Boost Library, C++ Standard Library, Modern C++,
|
||
Advanced C++, Advanced STL, …</li>
|
||
<li><a
|
||
href="https://www.youtube.com/playlist?list=PLlrATfBNZ98dudnM48yfGUldqGD0S4FFb">The
|
||
Cherno’s C++ Playlist</a> - Extensive C++ tutorial series by The
|
||
Cherno.</li>
|
||
</ul>
|
||
<h2 id="websites">Websites</h2>
|
||
<p><em>Useful C or C++ related websites.</em></p>
|
||
<ul>
|
||
<li><a href="https://isocpp.org/">Standard C++</a> :zap: - News, Status
|
||
& Discussion about Standard C++.</li>
|
||
<li><a href="https://build-bench.com/">Build Bench</a> - Compare C++
|
||
Builds.</li>
|
||
<li><a href="https://quick-bench.com/">Quick Bench</a> - Quick C++
|
||
Benchmarks.</li>
|
||
<li><a href="http://cppcon.org/">CppCon</a> - The C++ Conference.</li>
|
||
<li><a href="https://cppreference.com">C++ reference</a> - A complete
|
||
online reference for the C and C++ languages and standard
|
||
libraries.</li>
|
||
<li><a href="http://www.cbyexample.com/">C++ by Example</a> - Learn C++
|
||
by Example.</li>
|
||
<li><a href="http://www.cplusplus.com/">cplusplus.com</a> - The C++
|
||
Resources Network.</li>
|
||
<li><a href="http://c-faq.com/">C FAQ</a> - C frequently asked
|
||
questions.</li>
|
||
<li><a href="http://www.parashift.com/c++-faq/">C++ FAQ</a> - C++
|
||
frequently asked questions.</li>
|
||
<li><a href="http://yosefk.com/c++fqa/">C++ FQA Lite</a> - C++
|
||
frequently questioned answers.</li>
|
||
<li><a href="https://cppquiz.org">C++ Quiz</a> - A simple online quiz
|
||
that you can use to test your knowledge of the C++ programming
|
||
language.</li>
|
||
<li><a href="http://www.gotw.ca/gotw/">Guru of the Week</a> - A regular
|
||
series of C++ programming problems created and written by Herb
|
||
Sutter.</li>
|
||
<li><a href="http://meetingcpp.com/">Meeting C++</a></li>
|
||
<li><a href="https://quiz.pvs-studio.com">PVS-Studio’s challenge</a> -
|
||
PVS-Studio’s C++ quiz in which you’re asked to find errors in code
|
||
fragments of open source projects.</li>
|
||
<li><a href="https://www.udemy.com/topic/C-plus-plus-tutorials/">Udemy
|
||
C++ Courses and Tutorials</a></li>
|
||
<li><a href="http://cpphints.com/">C++ Hints</a> - Every business day
|
||
hints about most often C++ mistakes and ways to solve them from
|
||
PVS-Studio Team.</li>
|
||
<li><a href="https://hackr.io/tutorials/learn-c-plus-plus">C++
|
||
tutorial</a> - A user ranked online tutorial bank site displaying
|
||
multiple courses to learn C++ from.</li>
|
||
<li><a href="https://www.scaler.com/topics/cpp">C++ Tutorial for
|
||
Beginners</a> - A comprenhensive tutorial on C++ curated by trained
|
||
experts.</li>
|
||
<li><a href="https://cppexpert.online">cppexpert.online</a> - Learn the
|
||
best C++ practices by improving code snippets with some problems or with
|
||
bad practices.</li>
|
||
</ul>
|
||
<h2 id="weblogs">Weblogs</h2>
|
||
<p><em>Useful C or C++ related weblogs.</em></p>
|
||
<ul>
|
||
<li><a href="https://codingforspeed.com/">Coding For Speed</a> - Coding
|
||
For Speed DOT COM, Less Execution Time.</li>
|
||
<li><a href="http://ericniebler.com/">Eric Niebler</a></li>
|
||
<li><a href="https://blog.feabhas.com/">Sticky Bits</a></li>
|
||
<li><a href="http://pfultz2.com/blog/">Paul Fultz II’s Blog</a></li>
|
||
<li><a
|
||
href="http://ridiculousfish.com/blog/posts/will-it-optimize.html">ridiculousfish</a>
|
||
- Will It Optimize?</li>
|
||
<li><a href="http://blog.regehr.org/">Embedded in Academia</a></li>
|
||
<li><a href="https://arne-mertz.de/">Simplify C++</a></li>
|
||
<li><a href="https://www.fluentcpp.com/">Fluent C++</a></li>
|
||
<li><a href="https://www.bfilipek.com/?m=1">Bartek’s Coding
|
||
Blog</a></li>
|
||
<li><a href="https://kennykerr.ca/articles/">Kenny Kerr</a></li>
|
||
<li><a href="https://herbsutter.com/gotw/">Sutter’s Mill</a></li>
|
||
<li><a href="https://vorbrodt.blog/">Vorbrodt’s C++ Blog</a></li>
|
||
<li><a
|
||
href="https://foonathan.net/index.html">foonathan::blog()</a></li>
|
||
<li><a href="https://devblogs.microsoft.com/cppblog/">C++ Team Blog</a>
|
||
- Dev blog from the Microsoft Visual C++ team</li>
|
||
</ul>
|
||
<h2 id="other-awesome-projects">Other Awesome Projects</h2>
|
||
<p><em>Collection of useful codes, snippets, …</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/xtaci/algorithms">algorithms</a> -
|
||
Algorithms & Data Structures in C++.</li>
|
||
<li><a href="https://github.com/fragglet/c-algorithms">c-algorithms</a>
|
||
- C algorithms library.</li>
|
||
<li><a href="https://github.com/Bhupesh-V/30-seconds-of-cpp">30 Seconds
|
||
of C++</a></li>
|
||
</ul>
|
||
<h1 id="other-awesome-lists">Other Awesome Lists</h1>
|
||
<p><em>Other amazingly awesome lists</em></p>
|
||
<ul>
|
||
<li><a href="https://github.com/jnv/lists">lists</a> - List of (awesome)
|
||
lists curated on GitHub.</li>
|
||
<li><a
|
||
href="https://github.com/bayandin/awesome-awesomeness">awesome-awesomeness</a>
|
||
- A curated list of awesome awesomeness.</li>
|
||
<li><a href="https://github.com/sindresorhus/awesome">awesome</a> :zap:
|
||
- A curated list of awesome lists.</li>
|
||
<li><a href="https://github.com/MattPD/cpplinks">C++ links</a> - A
|
||
categorized list of C++ resources.</li>
|
||
<li><a href="https://cpp.libhunt.com/">Awesome C++</a> - LibHunt’s
|
||
mirror.</li>
|
||
<li><a href="https://notabug.org/koz.ross/awesome-c">Awesome C</a>
|
||
1</li>
|
||
<li><a href="https://github.com/aleksandar-todorovic/awesome-c">Awesome
|
||
C</a> 2</li>
|
||
<li><a href="https://github.com/rigtorp/awesome-modern-cpp">Awesome
|
||
Modern C++</a> - A collection of resources on modern C++.</li>
|
||
<li><a href="https://github.com/fenbf/AwesomePerfCpp">AwesomePerfCpp</a>
|
||
- A curated list of awesome C/C++ performance optimization
|
||
resources.</li>
|
||
<li><a
|
||
href="https://github.com/vhf/free-programming-books">free-programming-books</a>
|
||
- List of Freely Available Programming Books.</li>
|
||
<li><a href="http://inqlude.org/">Inqlude</a> - The Qt library
|
||
archive.</li>
|
||
<li><a
|
||
href="https://github.com/papers-we-love/papers-we-love">papers-we-love</a>
|
||
- Papers from the computer science community to read and discuss.</li>
|
||
<li><a
|
||
href="https://github.com/tayllan/awesome-algorithms">awesome-algorithms</a>
|
||
- A curated list of awesome places to learn and/or practice
|
||
algorithms.</li>
|
||
<li><a href="https://github.com/p-ranav/awesome-hpp">awesome-hpp</a> - A
|
||
curated list of awesome header-only C++ libraries.</li>
|
||
<li><a
|
||
href="https://github.com/JanVanRyswyck/awesome-talks">awesome-talks</a>
|
||
- A lot of screencasts, recordings of user group gatherings and
|
||
conference talks.</li>
|
||
<li><a href="https://github.com/karan/Projects">Projects</a> - A list of
|
||
practical projects that anyone can solve in any programming
|
||
language.</li>
|
||
<li><a
|
||
href="https://github.com/MaximAbramchuck/awesome-interviews">Awesome
|
||
interview questions</a> - A list of lists of interview questions for the
|
||
most popular technologies, including C and C++.</li>
|
||
<li><a
|
||
href="https://github.com/nothings/single_file_libs">nothings/single_file_libs</a>
|
||
:zap: - List of single-file C/C++ libraries.</li>
|
||
</ul>
|
||
<h1 id="jobs">Jobs</h1>
|
||
<ul>
|
||
<li>This list is currently empty, but you can add to it by opening a
|
||
merge request.</li>
|
||
</ul>
|
||
<h1 id="sponsors">Sponsors</h1>
|
||
<ul>
|
||
<li>Please reach out if you are interested in sponsoring this repo. Your
|
||
company’s name and logo will be prominently displayed here.</li>
|
||
</ul>
|
||
<h1 id="contributing">Contributing</h1>
|
||
<p>Please take a quick gander at the <a
|
||
href="https://github.com/fffaraz/awesome-cpp/blob/master/CONTRIBUTING.md">contribution
|
||
guidelines</a> for details. Thanks to all <a
|
||
href="https://github.com/fffaraz/awesome-cpp/graphs/contributors">contributors</a>;
|
||
you rock!</p>
|
||
<h4
|
||
id="if-you-see-a-project-or-link-here-that-is-no-longer-maintained-or-is-not-a-good-fit-please-submit-a-pull-request-to-improve-this-document.-thank-you"><em>If
|
||
you see a project or link here that is no longer maintained or is not a
|
||
good fit, please submit a pull request to improve this document. Thank
|
||
you!</em></h4>
|