awesome-cpp
A curated list of awesome C++ (or C) frameworks, libraries, resources, and shiny things.
https://github.com/DanylovskyiAM/awesome-cpp
Last synced: about 9 hours ago
JSON representation
-
Scientific Computing
- AMGCL - a header-only C++ library for solving large sparse linear systems with algebraic multigrid. [MIT]
- 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/)
-
Scripting
- V8 - A fast JavaScript engine by Google that can be embedded into any C++ application. [BSD]
- SIP - C or C++ Bindings Generator for Python v2 and v3. [GPL]
- 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/)
- djinni - A tool for generating cross-language type declarations and interface bindings. [Apache2]
- Duktape - An embeddable Javascript engine with compact footprint. [MIT] [website](http://duktape.org)
- JavaCpp - The missing bridge between Java and native C++. [Apache2]
- 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]
- luacxx - C++11 API for creating Lua bindings. [MIT]
- nbind - Magical headers that make your C++ library accessible from JavaScript. [MIT]
- pybind11 - Seamless operability between C++11 and Python. [BSD]
- 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/)
- V7 - An embedded JavaScript engine. [GPL2]
- ChakraCore - A JavaScript engine by Microsoft that can be embedded into nodejs. [MIT]
- V8 - A fast JavaScript engine by Google that can be embedded into any C++ application. [BSD]
- ChaiScript - An easy to use embedded scripting language for C++. [BSD] [website](http://chaiscript.com/)
- Lua - A minimal and fast scripting engine for configuration files and basic application scripting. [MIT]
-
Serialization
- Bond - An open source, cross-platform framework for working with schematized data. [MIT]
- cereal - A C++11 library for serialization. [BSD]
- cppcodec - Header-only C++11 library to encode/decode base64, base32 and hex with consistent, flexible API. [MIT]
- FlatBuffers - A Memory efficient serialization library. [Apache2]
- MessagePack - Efficient binary serialization format "like JSON" for C and C++. [Apache2] [website](http://msgpack.org/)
- protobuf - Protocol Buffers - Google's data interchange format. [BSD]
- protobuf-c - Protocol Buffers implementation in C. [BSD]
- YAS - Very fast **Y**et **A**nother **S**erialization library supports the binary/text/json formats. [Boost]
- SimpleBinaryEncoding - encoding and decoding application messages in binary format for low-latency applications. [Apache2]
- upb - A small protobuf implementation in C. [BSD]
-
Sorting
- pdqsort - Pattern-defeating quicksort. [zlib]
-
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.
-
Static Code Analysis
- 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]
- 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/)
- Cppcheck - A tool for static C/C++ code analysis. - [source](https://github.com/danmar/cppcheck)
- 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.
- List of tools for static code analysis - A list of tools for static code analysis from Wikipedia.
-
Talks
- Quick game development with C++11/C++14 - CppCon 2014 talk by Vittorio Romeo.
-
Video
- 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/default/)
- 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/)
- Theora - A free and open video compression format. [BSD]
-
Videos
- List of C or C++ YouTube 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++ 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.
- C Programming Tutorials - All of TheNewBoston's C programming tutorials are right here.
- C++ Qt Programming - by VoidRealms.
- 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++ 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.
- 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, ...
-
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
- 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]
- Civetweb - Provides easy to use, powerful, C/C++ embeddable web server with optional CGI, SSL and Lua support. [MIT]
- Crow - Crow is C++ micro web framework (inspired by Python Flask). [BSD]
- Cutelyst - A C++ Web Framework built on top of Qt, using the simple approach of Catalyst (Perl) framework. [LGPLv2.1+] [website](https://cutelyst.org/)
- 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/)
- 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/)
- Pistache - Pistache is a C++ REST framework written in pure C++11 with no external dependency. [Apache2]
-
Weblogs
- Coding For Speed - Coding For Speed DOT COM, Less Execution Time.
- Eric Niebler
- Sticky Bits
- Paul Fultz II's Blog
-
Websites
- Standard C++ - News, Status & Discussion about Standard C++.
- C++ FAQ - C++ frequently asked questions.
- C++ FQA Lite - C++ frequently questioned answers.
- Guru of the Week - A regular series of C++ programming problems created and written by Herb Sutter.
- C++ Quiz - C++ quiz in which you propose to find errors in code fragments of open source projects.
- Udemy C++ Courses and Tutorials
- C++ Hints - Every business day hints about most often C++ 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++ reference - C++98, C++03, C++11, C++14 reference.
- C++ FAQ - C++ frequently asked questions.
- Guru of the Week - A regular series of C++ programming problems created and written by Herb Sutter.
- C++ Hints - Every business day hints about most often C++ mistakes and ways to solve them from PVS-Studio Team.
- C++ reference - C++98, C++03, C++11, C++14 reference.
- CppCon - The C++ Conference.
- C++ FQA Lite - C++ frequently questioned answers.
- Meeting C++
-
XML
- Expat - An XML parser library written in C. [MIT]
- Expat - An XML parser library written in C. [MIT]
- Mini-XML - A small XML parsing library written in ANSI C. [LGPL2 with exceptions]
- TinyXML2 - A simple, small, efficient, C++ XML parser that can be easily integrating into other programs. [zlib]
- TinyXML++ - A completely new interface to TinyXML that uses MANY of the C++ strengths. Templates, exceptions, and much better error handling. [MIT]
- Libxml2 - The XML C parser and toolkit of Gnome. [MIT]
- libxml++ - An XML Parser for C++. [LGPL2]
- RapidXml - An attempt to create the fastest XML parser possible, while retaining useability, portability and reasonable W3C compatibility. [Boost]
- TinyXML++ - A completely new interface to TinyXML that uses MANY of the C++ strengths. Templates, exceptions, and much better error handling. [MIT]
- Libxml2 - The XML C parser and toolkit of Gnome. [MIT]
Categories
Miscellaneous
41
Build Systems
40
Networking
33
Frameworks
31
Math
27
Debug
26
Concurrency
24
JSON
24
GUI
24
Graphics
21
Cryptography
21
Scripting
21
Database
20
Other Awesome Projects
20
Compression
20
Game Engine
17
Image Processing
16
Websites
16
Videos
15
Logging
14
Inter-process communication
13
Integrated Development Environment
13
CLI
13
Machine Learning
13
Articles
12
Web Application Framework
11
Artificial Intelligence
11
Physics
10
Serialization
10
XML
10
Audio
10
Containers
9
Multimedia
9
Static Code Analysis
9
Compiler
8
Online Compiler
7
PDF
6
Coding Style
6
Biology
5
Scientific Computing
5
Video
5
Standard Libraries
5
Regular Expression
5
Robotics
4
BitTorrent
4
Weblogs
4
Asynchronous Event Loop
4
Internationalization
4
Coding Style Tools
3
Books
3
Debugger
3
Virtual Machines
3
Memory Allocation
2
API Design
2
Talks
1
Sorting
1
Sub Categories
Keywords
c-plus-plus
55
cpp
55
c
41
cross-platform
16
header-only
14
opengl
13
python
13
cplusplus
13
machine-learning
12
library
12
json
11
gamedev
10
game-development
10
game-engine
9
cpp17
9
graphics
9
cpp11
9
cpp14
8
vulkan
8
windows
7
modern-cpp
7
deep-learning
7
cryptography
7
engine
6
clang
6
http
6
neural-network
6
java
6
cuda
6
audio
6
rpc
5
c-plus-plus-11
5
linux
5
android
5
scientific-computing
5
performance
5
webserver
5
logging
5
embedded
5
crypto
5
awesome
5
ios
5
directx
5
websockets
5
d3d11
5
javascript
5
cmake
5
gpgpu
4
opencl
4
framework
4