fffaraz/awesome-cpp
Awesome Cpp
This project is a comprehensive, curated directory of high-quality libraries, tools, and educational resources for C and C++ development. It serves as an ecosystem discovery index, helping developers navigate the vast landscape of third-party components, frameworks, and technical documentation available for the language.
The collection is distinguished by its focus on high-performance systems programming and technical mastery. It provides deep coverage of specialized domains including SIMD-accelerated data processing, compile-time template metaprogramming, and asynchronous event-driven architectures. The repository also acts as a developer knowledge base, offering access to industry-standard coding guidelines, conference materials, and academic papers that support professional software engineering.
Beyond core language features, the directory catalogs a wide array of practical tools for the entire development lifecycle. This includes build systems, static analysis tooling, debuggers, and integrated development environments. It also covers a broad surface of application-level capabilities, ranging from scientific computing and embedded systems development to graphics, networking, and cross-platform library integration.
Features
- Integrated Development Environments - *List of C or C++ nominal IDEs.* * Anjuta DevStudio - The GNOME IDE. [GPL3] * AppCode - an IDE for Objective-C, C, C++, and JavaScript development built on JetBrains’ IntelliJ IDEA platform. * Cevelop - Cross-platform C
- Curated Resource Collections - A comprehensive directory of high-quality libraries, tools, and educational materials for software development in a specific programming language.
- Awesome Lists - A structured catalog that helps developers navigate and evaluate the vast landscape of available third-party components and frameworks.
- High-Performance Systems Programming - Building resource-efficient applications that require direct hardware access, low-latency execution, and fine-grained control over system memory.
- SIMD-Accelerated Processing - Performance-critical libraries utilize processor-level vector instructions to perform parallel operations on multiple data points within a single CPU cycle.
- Compile-Time Metaprogramming - The language compiler executes complex logic during the build process to generate optimized code or perform static analysis before execution.
- Template Metaprogramming - Executes complex logic during the build process to generate optimized code or perform static analysis before execution.
- Asynchronous Event Loops - * Asio - A cross-platform C++ library for network and low-level I/O programming that provides developers with a consistent asynchronous model using a modern C++ approach. [Boost] website * Boost.Asio - A cross-platform C
- Embedded Systems Development - Writing optimized code for resource-constrained hardware environments where binary size and execution speed are critical constraints.
- Scientific Computing and Simulation - Developing complex mathematical models and data analysis tools that require high-speed computation and efficient handling of large datasets.
- Scientific Computing Libraries - * 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. Emphasi
- Standard Library Implementations - *C++ Standard Library - including STL Containers, STL Algorithm, STL Functional, etc.* * C++ Standard Library - A collection of classes and functions, which are written in the core language and part of the C++ ISO Standa
- Cross-Platform Abstraction Layers - Hardware-specific or operating-system-specific functionality is hidden behind unified interfaces to ensure consistent behavior across different target environments.
- Compilers - *List of C or C++ compilers* * 8cc - A Small C Compiler. * c - Compile and execute C "scripts" in one go! [MIT] * Clang - A C compiler for LLVM. Supports C++11/14/1z C11. Developed by LLVM Team. [NCSA] * Fil-C - a fanati
- Build Systems - * awesome-cmake - A curated list of awesome CMake scripts, modules, and resources. * Bazel - A multi-language, fast and scalable build system from Google. [Apache] * Bear - A tool to generate compilation database for cla
- Debuggers - *List of C or C++ debuggers* * Comparison of debuggers - A list of Debuggers from Wikipedia. * GDB - GNU Debugger. * LLDB - The LLDB Debugger. * Metashell - An interactive template metaprogramming shell which includes th
- Foreign Function Interfaces - Provides language-specific wrappers that allow seamless communication between native code and other programming environments for cross-language interoperability.
- Static Code Analysis Tools - *List of tools for improving quality and reducing defects by code analysis* * Cppcheck - A tool for static C/C++ code analysis. - source * CppDepend - Simplifies managing a complex C/C++ code base by analyzing and visual
- Inter-process Communication Libraries - * Apache Thrift - Efficient cross-language IPC/RPC, works between C++, Java, Python, PHP, C#, and many more other languages. Originally developed by Facebook. [Apache2] * Boost.Interprocess - Header-only Boost library th
- JSON Libraries - * Boost.PropertyTree - A property tree parser/generator that can be used to parse XML/JSON/INI/Info files. [Boost] website * cJSON - Ultralightweight JSON parser in ANSI C. [MIT] * DAW JSON Link - Fast, convenient JSON s
- Data Visualization Libraries - *Data visualization Libraries* * gplot++ - Cross-platform header-only C++ plotting library that interfaces with Gnuplot. [MIT] * matplotplusplus - C++ Graphics Library for Data Visualization. [MIT] website * mathplot - C
- Database Drivers and Engines - *Database Libraries, SQL Servers, ODBC Drivers, and Tools* * ClickHouse - C++ client for ClickHouse DBMS. [Apache2] * CrossDB - Ultra High-performance Lightweight Embedded and Server OLTP RDBMS. [MPL-2.0] website * DuckD
- Debugging and Testing Frameworks - *Debugging Libraries, Memory Leak and Resource Leak Detection, Unit Testing* * Attest - Cross-platform, heap-free C test framework with parameterized and lifecycle-aware tests and assertions with ad-hoc formatted message
- Command Line Interfaces - *Console/Terminal User Interface, Command Line Interface* * Argh! - A minimalist, frustration-free, header-only argument handler. [BSD] * argparse - Argument Parser for Modern C++. [MIT] * args - A simple header-only C++
- Cross-Platform Development - Standardizing development across multiple operating systems by leveraging portable frameworks for networking, file I/O, and system services.
- Static Analysis Tools - External tools inspect source code without execution to identify potential bugs, enforce coding standards, and ensure memory safety at build time.
- Documentation Generators - * Doxide - Modern documentation for modern C++, configure with YAML, output Markdown. [Apache 2.0] website * doxygen :zap: - The de facto standard tool for generating documentation from annotated C++ sources. [GPL2] webs
- Game Engines - * Acid - A high speed C++17 Vulkan game engine. [MIT] * Allegro - A cross-platform library mainly aimed for video games and multimedia programming. [zlib] * Axmol Engine - A cross-platform game engine for desktop, mobile
- Graph Libraries - * CXXGraph - free C++(17) graph header-only library for representation and algorithms execution. [AGPL-3.0] * Graaf - A general-purpose lightweight C++20 graph library. [MIT] website
- Graphics and Rendering Libraries - * assimp - 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] website * bgfx - A cross-platform rendering
- Image Processing Libraries - * avir - High-quality Pro HDR image resizer and fast SIMD Lanczos resizer. [MIT] * Boost.GIL - Generic Image Library. [Boost] website * BitmapPlusPLus - Simple and Fast header only Bitmap C++ library. [MIT] * CImg - A sm
- Internationalization Libraries - * gettext - GNU 'gettext'. [GPL2] * IBM ICU - A set of C/C++ and Java libraries providing Unicode and Globalization support. [ICU] * libiconv - An encoding conversion library between different character encodings. [GPL]
- Developer Knowledge Bases - A centralized repository of best practices, coding standards, and community-driven learning resources for professional software engineers.
- Logging Frameworks - * Abseil Logging - The Abseil Logging library provides facilities for writing log messages to stderr, files, or other sinks. [Apache-2.0] * Blackhole - Attribute-based logging framework, which is designed to be fast, mod
- Machine Learning Frameworks - * Caffe - A fast framework for neural networks. [BSD] * catboost - A fast, scalable, high performance Gradient Boosting on Decision Trees library. [Apache2] * CCV - C-based/Cached/Core Computer Vision Library, A Modern C
- Mathematical Libraries - * Apophenia - A C library for statistical and scientific computing. [GPL2] * Armadillo - Fast C++ library for linear algebra & scientific computing. [Apache2] website * autodiff - A modern, fast and expressive C++ librar
- Memory Allocation Libraries - * Boehm GC - Conservative garbage collector for C and C++. [similar to X11] website * C Smart Pointers - Smart pointers for the (GNU) C programming language. [MIT] * Hoard - Fast, Scalable, and Memory-efficient Malloc fo
- Cryptography - *Cryptography and Encryption Libraries* * Bcrypt - A cross platform file encryption utility. Encrypted files are portable across all supported operating systems and processors. [BSD] * BeeCrypt - A portable and fast cryp
- Digital Signal Processing Libraries - *Digital signal processing.* * DSPFilters - A collection of useful C++ classes for digital signal processing. [MIT] * fCWT - The fast Continuous Wavelet Transform (fCWT) is a library for fast calculation of CWT. [Apache-
- General Purpose Frameworks - *C++ generic frameworks and libraries.* * abseil-cpp - Abseil C++ Common Libraries. [Apache2] * Apache C++ Standard Library - STDCXX, A collection of algorithms, containers, iterators, and other fundamental components. [
- Font Libraries - *Libraries for parsing and manipulating font files.* * Fontconfig - Font configuration and customization library. [MIT] website * FreeType - FreeType is a freely available software library to render fonts. [FTL & GPLv2]
- GUI Frameworks - *Graphic User Interface* * Boden - Native, mobile, cross-platform GUI Framework. [GPL/LGPL/Proprietary] website * Brisk - Cross-platform C++20 GUI framework. MVVM, reactive capabilities. Scalable, accelerated GPU renderi
- Web Application Frameworks - * aeronet - High-performance, modular C++ HTTP/1.1, HTTP/2 and WebSocket microservices framework focused on performance and scalability. [MIT] * Civetweb - Provides easy to use, powerful, C/C++ embeddable web server with