An open API service indexing awesome lists of open source software.

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: 13 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

  • 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

  • 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

  • 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.
Sub Categories