awesome-cpp
A curated list of awesome C++ (or C) frameworks, libraries, resources, and shiny things. Inspired by awesome-... stuff.
https://github.com/fffaraz/awesome-cpp
Last synced: 14 days ago
JSON representation
-
Robotics
- ROS - Robot Operating System provides libraries and tools to help software developers create robot applications. [BSD]
-
Scientific Computing
- FFTW - A C library for computing the DFT in one or more dimensions. [GPL]
- GSL - GNU scientific library. [GPL]
- AMGCL - a header-only C++ library for solving large sparse linear systems with algebraic multigrid. [MIT]
- Au - A C++14-compatible physical units library with no dependencies and a single-file delivery option. Emphasis on safety, accessibility, performance, and developer experience. [Apache 2.0] [website](https://aurora-opensource.github.io/au/main/)
- preCICE - Coupling library for partitioned multi-physics simulations (FSI, CHT, and more). [LGPL] [website](https://precice.org/)
- Trilinos - High performance PDE solvers. [BSD]
- Torch - A scientific computing framework with wide support for machine learning algorithms that puts GPUs first. [BSD-3-Clause] [website](http://torch.ch/)
- volesti - High dimensional sampling from truncated distributions, convex optimization and volume computation.
-
Scripting
- AngelScript - AngelScript is a game-oriented interpreted/compiled scripting language. [zlib]
- djinni - A tool for generating cross-language type declarations and interface bindings. [Apache2]
- Lua - A minimal and fast scripting engine for configuration files and basic application scripting. [MIT]
- QuickJS - a small and embeddable Javascript engine. [MIT]
- V8 - A fast JavaScript engine by Google that can be embedded into any C++ application. [BSD]
- MiniScript - scripting language modern, elegant, easy to learn, and easy to embed in your own C# or C++ projects. [MIT]
- SIP - C or C++ Bindings Generator for Python v2 and v3. [GPL]
- Boost.Python - A C++ library which enables seamless interoperability between C++ and the Python programming language. [Boost] [website](https://boost.org/libs/python)
- cppimport - Import C++ files directly from Python! [MIT]
- CppSharp - Tools and libraries to glue C/C++ APIs to high-level languages. [MIT]
- ctypes.sh - A foreign function interface for bash. [MIT]
- Cython - Cython is an optimising static compiler for both the Python programming language and the extended Cython programming language (based on Pyrex). It makes writing C extensions for Python as easy as Python itself. [Apache] [website](http://cython.org/)
- Duktape - An embeddable JavaScript engine with compact footprint. [MIT] [website](http://duktape.org)
- JavaCpp - The missing bridge between Java and native C++. [Apache2]
- JerryScript - Ultra-lightweight JavaScript engine for the Internet of Things. [Apache-2.0] [website](https://jerryscript.net/)
- libffi - A portable foreign-function interface library. [MIT] [website](https://sourceware.org/libffi/)
- LuaBridge - A lightweight, dependency-free library for binding Lua to C++. [MIT]
- LuaBridge3 - A lightweight, dependency-free library for binding Lua, LuaJIT, Luau and Ravi to C++. [MIT]
- luacxx - C++11 API for creating Lua bindings. [MIT]
- Luau - A fast, small, safe, gradually typed embeddable scripting language derived from Lua. [MIT] [website](https://luau.org/)
- nanobind - tiny and efficient C++/Python bindings. [BSD-3-Clause]
- nbind - Magical headers that make your C++ library accessible from JavaScript. [MIT]
- PHP-CPP - A library to build PHP extensions with C++. [Apache2] [website](http://www.php-cpp.com/)
- pybind11 - Seamless operability between C++11 and Python. [BSD]
- sol2 - A C++ <-> Lua API wrapper with advanced features and top notch performance. [MIT]
- SWIG - A wrapper/interface Generator that let you link your c++ code to JavaScript, Perl, PHP, Python, Tcl and Ruby. [GPL/Output not licensed] [website](http://www.swig.org/)
- txiki.js - A tiny JavaScript runtime. [MIT]
- V7 - An embedded JavaScript engine. [GPL2]
- v8pp - Header-only library to expose C++ classes and functions into V8 to use them in JavaScript code. [BOOST] [website](https://pmed.github.io/v8pp/)
- ChakraCore - A JavaScript engine by Microsoft that can be embedded into nodejs. [MIT]
- MicroQuickJS - MicroQuickJS (aka. MQuickJS) is a JavaScript engine targeted at embedded systems. [MIT]
- ChaiScript - An easy to use embedded scripting language for C++. [BSD] [website](http://chaiscript.com/)
- MuJS - An embeddable Javascript interpreter in C. [ISC] [website](http://mujs.com)
- hobbes - A language and an embedded JIT compiler from Morgan Stanley. [Apache-2.0]
-
Serialization
- BitSerializer - Multi-format serialization library (JSON, XML, YAML, CSV, MsgPack) [MIT]
- Bitsery - Header only C++ binary serialization library. [MIT]
- Bond - An open source, cross-platform framework for working with schematized data. [MIT]
- Boost.Serialization - Boost Serialization Library. [Boost] [website](https://boost.org/libs/serialization)
- cereal - A C++11 library for serialization. [BSD]
- cista - A C++17 library for zero-copy high-performance (de-)serialization. [MIT]
- cppcodec - Header-only C++11 library to encode/decode base64, base32 and hex with consistent, flexible API. [MIT]
- FastBinaryEncoding - Fast Binary Encoding is ultra fast and universal serialization solution for C++, C#, Go, Java, JavaScript, Kotlin, Python, Ruby, Swift. [MIT]
- FlatBuffers - A Memory efficient serialization library. [Apache2]
- iguana - a modern, universal and easy-to-use serialization engine developed in C++20 and C++17. [Apache2]
- MessagePack - Efficient binary serialization format "like JSON" for C and C++. [Apache2] [website](http://msgpack.org/)
- nanopb - Small code-size Protocol Buffers implementation in ANSI C. [Zlib]
- protobuf - Protocol Buffers - Google's data interchange format. [BSD]
- protobuf-c - Protocol Buffers implementation in C. [BSD]
- Protocol Puffers - A little, highly templated, and protobuf-compatible serialization/deserialization header-only library written in C++20. [Apache-2.0]
- upb - A small protobuf implementation in C. [BSD]
- Wirehair - O(N) Fountain Code for Large Data. [BSD-3-Clause]
- YAS - Very fast **Y**et **A**nother **S**erialization library supports the binary/text/json formats. [Boost]
- zpp_bits - Actually, the fastest modern **S**erialization library. Just check [this video](https://www.youtube.com/watch?v=G7-GQhCw8eE&ab_channel=CppCon).
- SimpleBinaryEncoding - encoding and decoding application messages in binary format for low-latency applications. [Apache2]
- fbthrift - Facebook's branch of Apache Thrift, including a serialization library and RPC framework. [Apache-2.0]
-
Serial Port
- CSerialPort - lightweight cross-platform serial port library. [LGPL3]
- Libserial - Serial Port Programming in C++. [BSD-3-Clause]
- Serial Communication Library - Cross-platform, Serial Port library written in C++. [MIT] [website](http://wjwwood.io/serial/)
-
Sorting
- cpp-sort - Sorting algorithms & related tools for C++14. [MIT]
- pdqsort - Pattern-defeating quicksort. [zlib]
- Indiesort - 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] [website](https://plflib.org/indiesort.htm)
- x86-simd-sort - C++ template library for high performance SIMD based sorting algorithms. [BSD-3-Clause]
-
Standard Libraries
- C++ Standard Library - A collection of classes and functions, which are written in the core language and part of the C++ ISO Standard itself.
- Standard Template Library - The Standard Template Library (STL).
- C POSIX library - A specification of a C standard library for POSIX systems.
- ISO C++ Standards Committee - ISO/IEC JTC1/SC22/WG21 - The C++ Standards Committee. [website](http://www.open-std.org/JTC1/SC22/WG21/)
- The GNU C Library - The purpose of this manual is to tell you how to use the facilities of the GNU C Library.
- The GNU C Library - The purpose of this manual is to tell you how to use the facilities of the GNU C Library.
-
Static Code Analysis
- Cppcheck - A tool for static C/C++ code analysis. - [source](https://github.com/danmar/cppcheck)
- CppDepend - 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.
- Infer - A static analyzer for Java, C and Objective-C. [BSD]
- OCLint - A static source code analysis tool to improve quality and reduce defects for C, C++ and Objective-C. - [source](https://github.com/oclint/oclint)
- Clang Static Analyzer - A source code analysis tool that finds bugs in C, C++, and Objective-C programs.
- Linticator - Eclipse CDT integration of Pc-/FlexeLint.
- List of tools for static code analysis - A list of tools for static code analysis from Wikipedia.
- Trunk - Toolkit to check, test, merge, and monitor code.
- cpplint - A C++ style checker following Google's C++ style guide.
- cpp-dependencies - Tool to check C++ #include dependencies (dependency graphs created in .dot format). [Apache]
- include-what-you-use - A tool for use with clang to analyze includes in C and C++ source files. [website](https://include-what-you-use.org/)
- IKOS - Static analyzer for C/C++ based on the theory of Abstract Interpretation. [NOSA 1.3]
- OptView2 - Inspect missed Clang optimizations.
- Cppcheck - A tool for static C/C++ code analysis. - [source](https://github.com/danmar/cppcheck)
- CodeCompass - An open-source code comprehension tool for large C/C++ projects. [GPL-3.0]
- CodeChecker - An analyzer tooling, defect database and viewer extension for the Clang Static Analyzer and Clang-Tidy. [Apache-2.0]
-
Talks
- CppCon Talks - The C++ conference.
- Meeting Cpp - Meeting C++ Youtube Channel
- C++ Conferences - Catalog of C++ conferences
- Quick game development with C++11/C++14 - CppCon 2014 talk by Vittorio Romeo.
-
Video
- libvpx - VP8/VP9 Codec SDK. [BSD]
- FFmpeg - A complete, cross-platform solution to record, convert and stream audio and video. [LGPL2/GPL2]
- x265 - Open h.265 video codec implementation. [GPL2] [website](https://x265.readthedocs.io/en/master/)
- Theora - A free and open video compression format. [BSD]
- avcpp - Modern C++ wrapper around FFmpeg. [MIT]
- libde265 - Open h.265 video codec implementation. [LGPL] [website](http://www.libde265.org/)
- OpenH264 - Open Source H.264 Codec. [BSD] [website](http://www.openh264.org/)
- libuvc - A cross-platform library for USB video devices. [BSD]
- Theora - A free and open video compression format. [BSD]
-
Videos
- Awesome C Programming Tutorials in Hi Def [HD - A collection of detailed C Programming Language Tutorials for Beginners and New Programmers.
- C++ - by VoidRealms.
- C++ Qt Programming - by VoidRealms.
- C++ Programming Tutorials Playlist - TheNewBoston Official Buckys C++ Programming Tutorials Playlist.
- C++ Programming Tutorials from thenewboston - These are all of thenewboston's C++ programming tutorials.
- C++ GUI with Qt Playlist - Official Playlist for thenewboston C++ GUI with Qt tutorials.
- Caleb Curry's C Programming Tutorials - An all-in-one playlist of tutorials for C programming.
- C Programming Tutorials - All of TheNewBoston's C programming tutorials are right here.
- Bo Qian's playlist - Boost Library, C++ Standard Library, Modern C++, Advanced C++, Advanced STL, ...
- The Cherno's C++ Playlist - Extensive C++ tutorial series by The Cherno.
- Caleb Curry's C Programming Tutorials - An all-in-one playlist of tutorials for C programming.
- Code for Yourself C++ Playlist - A complete C++ course covering everything from fundamentals to software design.
- C++ Qt Programming - by VoidRealms.
-
Virtual Machines
- CarpVM - "interesting" VM in C. Let's see how this goes. [GPLv3]
- MicroPython - Aims to put an implementation of Python 3.x on a microcontroller. [MIT]
- TinyVM - A small, fast, lightweight virtual machine written in pure ANSI C. [MIT]
-
Web Application Framework
- CppCMS - A Free High Performance Web Development Framework (not a CMS). [LGPLv3]
- Kore - ultra fast and flexible web server / framework for web applications developed in C. [ISC]
- Pistache - Pistache is a C++ REST framework written in pure C++11 with no external dependency. [Apache2]
- Wt - A C++ library for developing web applications. [GPL/Proprietary]
- Pistache - Pistache is a C++ REST framework written in pure C++11 with no external dependency. [Apache2]
- Civetweb - Provides easy to use, powerful, C/C++ embeddable web server with optional CGI, SSL and Lua support. [MIT]
- Crow - Crow is a C++ microframework for running web services. It uses routing similar to Python's Flask. [BSD] [website](https://crowcpp.org)
- Cutelyst - A C++ Web Framework built on top of Qt, using the simple approach of Catalyst (Perl) framework. [BSD-3-Clause] [website](https://cutelyst.org/)
- C++ wfrest - C++ Web Framework REST API. [Apache2]
- facil.io - Evented, high performance C web framework supporting HTTP, WebSockets, SSE and more. [MIT] [website](http://facil.io)
- lwan - Experimental, scalable, high performance HTTP server. [GPL2]
- oat++ - Light, zero-dependency framework to create high-performance web-services. [Apache-2.0] [website](https://oatpp.io/)
- Pistache - Pistache is a C++ REST framework written in pure C++11 with no external dependency. [Apache2]
- QDjango - A web framework written in C++ and built on top of the Qt library. Where possible it tries to follow django's API, hence its name. [LGPL]
- TreeFrog Framework - High-speed and full-stack web application framework based on C++ and Qt, which supports HTTP and WebSocket protocol (with O/R mapping). [BSD] [website](http://www.treefrogframework.org/)
- userver - 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] [website](https://userver.tech/)
- Drogon - A C++17/20 based, high-performance HTTP application framework. [MIT]
- aeronet - High-performance, modular C++ HTTP/1.1, HTTP/2 and WebSocket microservices framework focused on performance and scalability. [MIT]
- httpserver.h - A single-header HTTP server library for C. [MIT]
- libhttp - A cross-platform HTTP and HTTPS library in C/C++. [MIT]
-
Weblogs
- Coding For Speed - Coding For Speed DOT COM, Less Execution Time.
- Eric Niebler
- Sticky Bits
- Paul Fultz II's Blog
- ridiculousfish - Will It Optimize?
- Embedded in Academia
- Simplify C++
- Fluent C++
- Bartek's Coding Blog
- Sutter’s Mill
- Vorbrodt's C++ Blog
- foonathan::blog()
- C++ Team Blog - Dev blog from the Microsoft Visual C++ team
-
Websites
- Standard C++ - News, Status & Discussion about Standard C++.
- Build Bench - Compare C++ Builds.
- Quick Bench - Quick C++ Benchmarks.
- CppCon - The C++ Conference.
- C++ by Example - Learn C++ by Example.
- cplusplus.com - The C++ Resources Network.
- C FAQ - C frequently asked questions.
- C++ FAQ - C++ frequently asked questions.
- C++ FQA Lite - C++ frequently questioned answers.
- C++ Quiz - A simple online quiz that you can use to test your knowledge of the C++ programming language.
- Guru of the Week - A regular series of C++ programming problems created and written by Herb Sutter.
- Meeting C++
- PVS-Studio’s challenge - PVS-Studio’s C++ quiz in which you're asked to find errors in code fragments of open source projects.
- Udemy C++ Courses and Tutorials
- C++ Hints - Every business day hints about most often C++ mistakes and ways to solve them from PVS-Studio Team.
- C++ tutorial - A user ranked online tutorial bank site displaying multiple courses to learn C++ from.
- C++ Tutorial for Beginners - A comprenhensive tutorial on C++ curated by trained experts.
- cppexpert.online - Learn the best C++ practices by improving code snippets with some problems or with bad practices.
- C++ Quiz - A simple online quiz that you can use to test your knowledge of the C++ programming language.
- C++ Quiz - A simple online quiz that you can use to test your knowledge of the C++ programming language.
- C++ Quiz - A simple online quiz that you can use to test your knowledge of the C++ programming language.
- C++ Quiz - A simple online quiz that you can use to test your knowledge of the C++ programming language.
- C++ Quiz - A simple online quiz that you can use to test your knowledge of the C++ programming language.
- C++ Quiz - A simple online quiz that you can use to test your knowledge of the C++ programming language.
- C++ Quiz - A simple online quiz that you can use to test your knowledge of the C++ programming language.
- C++ Quiz - A simple online quiz that you can use to test your knowledge of the C++ programming language.
- C++ Quiz - A simple online quiz that you can use to test your knowledge of the C++ programming language.
- C++ Quiz - A simple online quiz that you can use to test your knowledge of the C++ programming language.
- C++ Quiz - A simple online quiz that you can use to test your knowledge of the C++ programming language.
- C++ Quiz - A simple online quiz that you can use to test your knowledge of the C++ programming language.
- C++ Quiz - A simple online quiz that you can use to test your knowledge of the C++ programming language.
- C++ Quiz - A simple online quiz that you can use to test your knowledge of the C++ programming language.
- C++ Quiz - A simple online quiz that you can use to test your knowledge of the C++ programming language.
- C++ Quiz - A simple online quiz that you can use to test your knowledge of the C++ programming language.
- C++ Quiz - A simple online quiz that you can use to test your knowledge of the C++ programming language.
- C++ Quiz - A simple online quiz that you can use to test your knowledge of the C++ programming language.
- C++ Quiz - A simple online quiz that you can use to test your knowledge of the C++ programming language.
- C++ Quiz - A simple online quiz that you can use to test your knowledge of the C++ programming language.
- C++ for yourself - A comprehensive tutorial on modern C++ covering everything from fundamentals to software design.
- cppstat - A site that lists C++ features and their support by compilers and standard library implementations in an accessible way.
- C++ FAQ - C++ frequently asked questions.
- C++ Quiz - A simple online quiz that you can use to test your knowledge of the C++ programming language.
- Guru of the Week - A regular series of C++ programming problems created and written by Herb Sutter.
- Udemy C++ Courses and Tutorials
- C++ Hints - Every business day hints about most often C++ mistakes and ways to solve them from PVS-Studio Team.
Programming Languages
Categories
Miscellaneous
107
Networking
70
Math
59
Websites
58
Frameworks
53
Debug
50
Concurrency
47
Database
44
JSON
43
Image Processing
41
Compression
35
GUI
35
CLI
35
Scripting
34
Graphics
32
Cryptography
31
Articles
31
Containers
28
Game Engine
28
Build Systems
27
Audio
27
Machine Learning
25
Other Awesome Projects
24
Logging
22
Serialization
21
Integrated Development Environment
20
Web Application Framework
20
Inter-process communication
19
Reflection
19
Artificial Intelligence
18
Physics
17
Online Compiler
17
Static Code Analysis
16
Memory Allocation
15
XML
15
Regular Expression
14
Compiler
14
Weblogs
13
Videos
13
PDF
12
Configuration
12
Multimedia
12
CSV
10
Asynchronous Event Loop
10
Robotics
10
Video
9
Biology
8
Scientific Computing
8
Chemistry
7
Internationalization
7
Yaml
7
Office Open XML
7
Coding Style
7
Font
6
DSP
6
Standard Libraries
6
Coding Style Tools
6
Documentation
6
Coding Standards
5
Debugger
5
Data visualization
5
Sorting
4
Talks
4
BitTorrent
4
Serial Port
3
Virtual Machines
3
Books
3
API Design
2
Graph
2
Podcasts
2
Sub Categories
Keywords
cpp
193
c-plus-plus
109
c
89
cpp17
64
header-only
62
cross-platform
42
cpp11
38
json
37
cplusplus
36
cpp20
35
library
34
python
31
cpp14
30
linux
24
windows
23
machine-learning
22
serialization
22
simd
21
opengl
20
cmake
20
http
18
game-engine
18
cpp-library
18
parser
17
modern-cpp
17
gamedev
17
game-development
17
reflection
16
deep-learning
14
embedded
14
http-server
14
graphics
13
audio
13
javascript
12
java
12
clang
12
logging
11
database
11
performance
11
cuda
11
c-plus-plus-11
11
no-dependencies
11
scientific-computing
11
high-performance
11
data-structures
11
csv
10
networking
10
compression
10
neon
10
gui
10