精选的优秀 C++(或 C)框架、库、资源和实用工具列表。灵感源自各种精彩内容。
标准库
C++ 标准库 – 包括 STL 容器、STL 算法、STL 函数式编程等。
- C++ 标准库– 一组用核心语言编写的类和函数,是 C++ ISO 标准本身的一部分。
- 标准模板库– 标准模板库 (STL)。
- C POSIX 库– POSIX 系统 C 标准库的规范。
- ISO C++ 标准委员会– ISO/IEC JTC1/SC22/WG21 – C++ 标准委员会网站
- GNU C 库– 本手册的目的是告诉你如何使用 GNU C 库的功能。
框架
C++通用框架和库。
- abseil-cpp – Abseil C++ 通用库。[Apache2]
- Apache C++ 标准库(STDCXX),包含算法、容器、迭代器和其他基本组件的集合。[已弃用] [Apache2]
- APR – Apache Portable Runtime。另一个跨平台实用函数库。[Apache2]
- ASL(Adobe Source Libraries)提供经过同行评审且可移植的 C++ 源代码库。[MIT 许可证]
- AUI – 适用于 C++20 的声明式 UI 工具包。[MPL2]
- Boost ⚡ – 一个庞大的通用 C++ 库集合。[Boost]网站
- BDE——彭博实验室的BDE开发环境。[Apache2]
- C++ 工作流⚡ – C++ 并行计算和异步网络引擎。[Apache2]
- CGraph——一个基于C++的跨平台DAG框架,无需任何第三方库。[MIT许可证]
- Cinder——一个由社区开发的免费开源库,用于编写专业级的创意代码。[BSD]
- Coost——一个用 C++11 编写的小型 Boost 库。[MIT 许可证]
- Cxxomfort——一个小型、仅包含头文件的库,它将较新 C++ 标准中的各种功能移植到 C++03 及更高版本。[MIT 许可证]
- Dlib ⚡ – 一个用于在 C++ 中构建实际机器学习和数据分析应用程序的工具包。[Boost]网站
- EASTL – Electronic Arts 标准模板库。[BSD]
- ETL – 嵌入式模板库。[MIT许可证]
- ffead-cpp – 企业应用开发框架。[Apache2]
- Folly ——Facebook 开发和使用的开源 C++ 库。[Apache2]
- FunctionalPlus – C++ 函数式编程库。编写简洁易读的 C++ 代码。[MIT 许可证]
- GLib – GLib 为用 C 语言编写的库和应用程序提供核心应用程序构建模块。[LGPL]
- itlib – 一系列类似 std 的单头 C++ 库 [MIT 许可证]
- JUCE——一个功能全面的C++类库,用于开发跨平台软件。[核心模块:ISC,其余部分:GPL2/GPL3/专有]网站
- Kigs框架——一个免费开源的C++模块化多用途跨平台快速应用开发(RAD)框架。[MIT]网站
- libPhenom – libPhenom 是一个用于构建高性能、高可扩展系统的 C 语言事件框架。[Apache2]
- LibSourcey – 用于实时视频流和高性能网络应用的 C++11 事件驱动型 I/O。[LGPL]
- LibU – 一个用 C 语言编写的多平台实用程序库。[BSD]
- libxutils——一个简单而强大的跨平台 C 库,提供数据结构、算法等诸多功能。[MIT 许可证]
- Loki——一个C++设计库,包含常用设计模式和惯用法的灵活实现。[MIT许可证]
- MiLi – 仅包含头文件的极简 C++ 库。[Boost]
- OpenFrameworks——一个用于C++创意编程的跨平台开源工具包。[MIT]网站
- PhotonLibOS是一个功能全面的 C++ 框架,具备高效的用户空间线程(协程支持工作窃取)、I/O、网络、RPC、HTTP 等特性,并在阿里巴巴集团广泛应用。它兼容 C++ 14/17/20/23、Linux、MacOS、x86-64、ARM64、gcc 和 clang 编译器。[Apache2]网站
- Qt ⚡ – 一个跨平台应用程序和用户界面框架。[GPL/LGPL/专有]网站
- Reason——一个跨平台框架,旨在为需要 C++ 的性能和强大功能的开发人员提供 Java、.Net 或 Python 的易用性。[GPL2]
- ROOT——一套面向对象框架,具备高效处理和分析海量数据所需的所有功能。已在欧洲核子研究中心 (CERN) 使用。[LGPL]
- rpp – 一个极简的、受 Rust 启发的 C++20 STL 替代方案。[MIT 许可证]
- SaneCppLibraries——一套适用于 macOS、Windows 和 Linux 的 C++ 平台抽象库。[MIT 许可证]网站
- Seastar——一个先进的开源 C++ 框架,专为在现代硬件上运行的高性能服务器应用程序而设计。[Apache-2.0 许可证] seastar.io
- sfl 库——一个仅包含头文件的 C++11 库,提供了一些新的或不太常用的容器,其中一些可以在 C++20 常量表达式中使用。[zlib]
- Siv3D – Siv3D (OpenSiv3D) 是一个用于创意编程(2D/3D 游戏、媒体艺术、可视化工具和模拟器)的 C++20 框架。[MIT 许可证]网站
- STLport ——STL 的一个示例版本。[免费]
- STXXL – 超大型数据集标准模板库。[Boost]
- tbox – 一个类似 glib 的多平台 C 库。[Apache2]网站
- Ultimate++ ——一个C++跨平台快速应用程序开发框架。[BSD]
- Windows模板库– 一个用于开发Windows应用程序和用户界面组件的C++库。[公开]
- WUI – WUI(窗口用户界面库)是一个用于在 C++17+ [Boost] 中创建图形用户界面的跨平台库。
- xtd是一个现代化的 C++20 框架,用于在 Windows、macOS、Linux、iOS、Android、FreeBSD 和 Haiku 上创建控制台 (CLI)、表单 (GUI) 和单元测试 (xUnit) 应用程序。[MIT 许可证]
- Yomm2 – 快速、正交、开放的多方法算法。取代Yomm11 [Boost]
人工智能
- ANNetGPGPU——一个基于GPU(CUDA)的人工神经网络库。[LGPL]
- btsk – 游戏行为树入门套件。[zlib]
- cpp-mcp – 轻量级 C++ MCP(模型上下文协议)SDK。[MIT 许可证]
- Evolving Objects——一个基于模板的 ANSI-C++ 进化计算库,可帮助您以惊人的速度编写自己的随机优化算法。[LGPL]
- frugally-deep – 用于在 C++ 中使用 Keras 模型的仅包含头文件的库。[MIT 许可证]
- Genann – 一个简单的 C 语言神经网络库。[zlib]
- MXNet——轻量级、可移植、灵活的分布式/移动深度学习框架,配备动态、感知变异的数据流依赖调度器;支持 Python、R、Julia、Scala、Go、JavaScript 等多种语言。网站
- PyTorch – 基于 Python 的张量和动态神经网络,并具有强大的 GPU 加速功能。网站
- flashlight – Flashlight 是一个快速、灵活的机器学习库,完全用 C++ 编写。[BSD]
- Recast/Detour – (3D) 导航网格生成器和寻路器,主要用于游戏。[zlib]
- TensorFlow——一个使用数据流图进行数值计算的开源软件库。[Apache]
- Txeo – TensorFlow 的现代 C++ 包装器。 [阿帕奇]
- oneDNN——一个用于深度学习应用的开源跨平台性能库。[Apache]网站
- CNTK – Microsoft Cognitive Toolkit (CNTK),一个开源的深度学习工具包。[Boost]
- tiny-dnn – 一个仅包含头文件、无依赖项的 C++11 深度学习框架。[BSD]
- Veles——用于快速深度学习应用开发的分布式平台。[Apache]
- Kaldi – 语音识别工具包。[Apache]
异步事件循环
- Asio是一个跨平台的 C++ 库,用于网络和底层 I/O 编程,它使用现代 C++ 方法为开发人员提供一致的异步模型。[Boost]网站
- Boost.Asio——一个用于网络和底层 I/O 编程的跨平台 C++ 库。[Boost]网站
- C++ Actor Framework – 一个用 C++ 实现的开源 Actor 模型。[BSD-3-Clause]网站
- Ichor——一个专注于线程安全并提供依赖注入的事件队列。[MIT]
- libev——一个功能齐全、高性能的事件循环库,其设计大致基于 libevent,但没有 libevent 的局限性和缺陷。[BSD 和 GPL 许可]
- libevent – 事件通知库。[BSD]
- libhv – 跨平台事件循环库。[BSD]
- libuv – 跨平台异步 I/O。[BSD]
- promise-cpp – 仅包含头文件的库,实现了 Promise/A+ 标准。[Anti-996]
- uvw – libuv 的 C++ 封装库。[MIT 许可证]
- uv-cpp – 一个基于 C++11 的简单接口、高性能网络库。[MIT 许可证]
声音的
音频、声音、音乐、数字化语音库
- Amplitude Audio SDK – 一款专为游戏需求而设计的跨平台音频引擎。[Apache-2.0]网站
- Aubio – 一个用于音频和音乐分析的库。[GPL-3.0]网站
- AudioFile – 一个简单的 C++ 音频文件读写库。[MIT 许可证]
- audioFlux – 用于音频和音乐分析、特征提取的 AC 库。[MIT 许可证]
- dr_libs – 用于 C 和 C++ 的单文件音频解码库。[无许可]
- FMOD——一款易于使用的跨平台游戏音频引擎和音频内容创作工具。[免费用于非商业用途/商业用途]
- KFR – 快速、现代的 C++ DSP 框架,支持 FFT、FIR/IIR 滤波器和采样率转换。[GPL/专有]
- LAME ——LAME 是一款高质量的 MPEG Audio Layer III (MP3) 编码器。[LGPL]
- libsndfile – 一个 C 库,带有 C++ 封装,用于通过一个标准库接口读取和写入包含采样声音的文件。[LGPL-2.1]网站
- libsoundio – 用于跨平台实时音频输入输出的 C 语言库。[MIT 许可证]网站
- Maximilian – C++ 音频和音乐 DSP 库。[MIT 许可证]
- OpenAL – 开放音频库 – 一个跨平台的音频API。[BSD/LGPL/专有]
- miniaudio – 单文件音频播放和录制库。[无许可]网站
- ni-media – 用于读写音频文件的 C++ 库。[MIT 许可证]
- Opus——一款完全开放、免版税、功能强大的音频编解码器。[BSD]
- PortAudio ——PortAudio是一个免费、跨平台、开源的音频I/O库。[MIT许可证]
- rnnoise – 用于音频降噪的循环神经网络。[BSD-3-Clause]
- SELA – 简单无损音频。 [麻省理工学院]
- SoLoud——一款简单易用、便于携带的游戏音频引擎。[zlib]
- Speex——一款用于言论自由的免费编解码器。已被 Opus 取代。[BSD]
- Tonic – 一款简单高效的 C++ 音频合成软件。[无许可]
- Vorbis – Ogg Vorbis 是一种完全开放、非专有、免专利费和免版税的通用压缩音频格式。[BSD]
- minimp3 – 一个公共领域的、仅包含文件头的 MP3 解码器,采用洁净室实现。[CC0]
- Verovio ——Verovio 是一款快速轻量级的乐谱雕刻库。[LGPL]网站
- Wav2Letter++ – 公共领域,一个完全用 C++ 编写的快速开源语音处理工具包,它使用 ArrayFire 张量库和 flashlight 机器学习库以实现最高效率。[BSD]
- PocketSphinx——一款轻量级的语音识别引擎。[BSD-2-Clause]网站
生物学
生物信息学、基因组学、生物技术
- BioC++ – 用于生物信息学的 C++ 计算库。[BSD]
- Chaste——一个开源的C++库,用于计算模拟生理学和生物学领域的数学模型。[BSD]
- libsequence——一个用于表示和分析群体遗传数据的C++库。[GPL]
- SeqAn – 用于分析序列的算法和数据结构,重点关注生物数据。[BSD/3-clause]
- Vcflib – 一个用于解析和操作 VCF 文件的 C++ 库。[MIT 许可证]
- Wham——通过直接对BAM文件应用关联检验来检测基因组中的结构变异(SVs)。[MIT]
- htslib – 用于读写高通量测序数据的 AC 库。[MIT/BSD]网站
比特流
- jech/dht – C 语言编写的 BitTorrent DHT 库。[MIT 许可证]
- libtorrent(又名 libtorrent-rasterbar)——一个功能齐全、高效的 C++ BitTorrent 实现。[BSD]
- LibTorrent(又名 libtorrent-rakshasa)- BitTorrent 库。[GPL]
- libutp – uTorrent 传输协议库。[MIT 许可证]
化学
化学、量子化学、固态化学/物理、地球化学、生物化学
- d-SEAMS是一个基于 Nix 的 C++ 和 Lua 编写的分子动力学轨迹分析引擎。它是 Deferred Structural Elucidation Analysis for Molecular Simulations(用于分子模拟的延迟结构解析分析)的缩写。[GPL]网站
- gromacs——一种基于消息传递的并行分子动力学实现。[GPL]网站
- Reaktoro——一个用 C++ 和 Python 编写的计算框架,用于模拟化学反应系统。[LGPL]网站
- LAMMPS——一款专注于材料建模的经典分子动力学代码。它是“大规模原子/分子并行模拟器”(Large-scale Atomic/Molecular Massively Parallel Simulator)的缩写。[GPL]网站
- MADNESS – 用于科学模拟的多分辨率自适应数值环境。[GPL]网站
- MPQC——大规模并行量子化学程序,利用与时间无关的薛定谔方程,从第一性原理计算原子和分子的性质。[GPL]网站
- Psi——一款从头算计算化学软件包。[GPL]网站
命令行界面
控制台/终端用户界面,命令行界面
- Argh! – 一个极简、无挫败感、仅需头文件的参数处理程序。[BSD]
- argparse – 现代 C++ 的参数解析器。[MIT 许可证]
- args – 一个简单的仅包含头文件的 C++ 参数解析器库。[MIT 许可证]
- Argy – 现代 C++ 命令行参数解析库 — 简单、直观、仅包含头文件且无任何依赖项 [MIT]
- barkeep – 一个用于显示异步动画、计数器和进度条的小型 C++ 头文件。[Apache-2.0]网站
- Boost.Program_options – 一个用于通过命令行和配置文件等传统方法获取程序选项的库。[Boost]网站
- cli – 一个跨平台的仅包含头文件的 C++14 库,用于交互式命令行界面(Cisco 风格)。[Boost]
- CLI11 – 仅包含头文件的单文件或多文件 C++11 库,用于简单和高级命令行解析。[BSD]
- clipp是一个易于使用、功能强大且表达力丰富的 C++11/14/17 命令行参数处理库,所有功能都包含在一个头文件中。[MIT]
- cpp-terminal – 一个仅包含头文件的 C++ 库,用于编写跨平台终端应用程序。[MIT 许可证]
- Crossline——一款小巧、独立、零配置、采用 MIT 许可证、跨平台的 readline 和 libedit 替代库。[MIT]
- Ctrl+C – 用于在自定义函数中处理 Ctrl+C 事件的跨平台 C++11 库。[MIT 许可证]
- cxxopts – 轻量级 C++ 命令行选项解析器。[MIT 许可证]
- docopt.cpp – 一个用于从文档字符串生成选项解析器的库。[MIT/Boost]
- FINAL CUT – 用于创建带有文本控件的终端应用程序的库。[LGPL]
- FTXUI – C++ 函数式终端用户界面。[MIT]
- gflags – C++ 命令行标志模块。[BSD]
- imtui – 即时模式文本用户界面。[MIT]
- 指标– 现代 C++ 的活动指标。[MIT]
- linenoise——一个小型、独立的readline和libedit替代方案。[BSD-2条款]
- linenoise-ng – 一个适用于 Linux、Windows 和 MacOS 的小型、可移植的 GNU readline 替代函数,能够处理 UTF-8 字符。[BSD]
- Lyra——一个简单易用、可组合的命令行解析器,支持 C++ 11 及更高版本。[Boost]
- Ncurses——一个终端用户界面。[MIT]
- oof – 方便、高性能的 RGB 颜色和位置控制,适用于游戏主机输出。[MIT]
- PDCurses – 一个公共领域的 curses 库,提供源代码和预编译库。[公共领域]
- popl——一个用于 C++ 11 及更高版本的单头模板化命令行参数和 ini 文件解析器。[MIT 许可证]
- replxx – 一个支持 UTF-8 编码、语法高亮和提示的 readline 和 libedit 替代工具,可在 Unix 和 Windows 系统上运行。[BSD]
- tabulate – 现代 C++ 表格生成器。[MIT 许可证]
- TCLAP – A mature, stable and feature-rich library for defining and accessing command line arguments in ANSI C++. [MIT]
- termbox – A C library for writing text-based user interfaces. [MIT]
- TermOx – C++17 Terminal User Interface(TUI) Library. [MIT]
- tuibox – A single-header terminal UI (TUI) library, capable of creating mouse-driven, interactive applications on the command line. [MIT]
- Ginseng – A C++ command-line argument parser. [MIT]
Compression
Compression and Archiving Libraries
- bit7z – A C++ static library offering a clean and simple interface to the 7-zip shared libraries. [MPL2]
- Brotli – Brotli compression format. Developed by Google. [MIT]
- bzip2 – A freely available, patent free, high-quality data compressor. [BSD]
- bzip3 – A better and stronger spiritual successor to BZip2. [LGPL]
- FastLZ – Small & portable byte-aligned LZ77 compression. [MIT]
- FiniteStateEntropy – New generation entropy codecs : Finite State Entropy and Huff0.
- FSST – efficient random-access string compression. [MIT]
- heatshrink – data compression library for embedded/real-time systems [ISC]
- Kanzi – a modern, modular, portable and efficient lossless data compressor implemented in C++. [Apache-2.0]
- KArchive – 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]
- libarchive – Multi-format archive and compression library. [New BSD] website
- LZ4 – Extremely Fast Compression algorithm. [BSD] website
- LZAV – Fast In-Memory Data Compression Algorithm. [MIT]
- LZFSE – LZFSE compression library and command line tool. Developed by Apple.
- LZHAM – Lossless data compression library with a compression ratio similar to LZMA but with much faster decompression. [BSD]
- LZMA ⚡ – The default and general compression method of 7z format. [PublicDomain] website
- LZMAT – An extremely fast real-time lossless data compression library. [GPL]
- miniz – Single C source file Deflate/Inflate compression library with zlib-compatible API, ZIP archive reading/writing, PNG writing. [MIT]
- Minizip – Zlib with latest bug fixes that supports PKWARE disk spanning, AES encryption, and IO buffering. [zlib]
- minizip-ng – Fork of the popular zip manipulation library found in the zlib distribution. [zlib]
- OpenZL – A novel data compression framework. [BSD] website
- PhysicsFS – 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]
- Rapidgzip – Gzip Decompression and Random Access for Modern Multi-Core Machines. [Apache-2/MIT]
- smaz – Small strings compression library. [BSD]
- Snappy – A fast compressor/decompressor. [BSD]
- ZLib – A very compact compression library for data streams. [zlib]
- zlib-ng – zlib for the “next generation” systems. Drop-In replacement with some serious optimizations. [zlib]
- zstd – Zstandard – Fast real-time compression algorithm. Developed by Facebook. [BSD]
- ZXC – High-performance asymmetric lossless compression. [BSD-3-Clause]
- ZZIPlib – Provides read access on ZIP-archives. [MPL/LGPL]
- cmix – A lossless data compression program that aims for the highest compression ratios at the cost of speed. [GPL-3.0]
- LZSSE-SIMDe – A portable SIMD implementation of LZSSE compression. [BSD-2-Clause]
- Zopfli – A compression library that performs very good but slow deflate/zlib compression. [Apache-2.0]
Concurrency
Concurrency and Multithreading
- alpaka – Abstraction library for parallel kernel acceleration. [LGPLv3+]
- ArrayFire – A general purpose GPU library. [BSD]
- Async++ – A lightweight concurrency framework for C++11, inspired by the Microsoft PPL library and the N3428 C++ standard proposal. [MIT]
- atomic_queue – C++14 multiple-producer-multiple-consumer lock-free queues based on circular buffers and std::atomic. [MIT]
- Boost.Compute – A C++ GPU Computing Library for OpenCL. [Boost] website
- Bolt – A C++ template library optimized for GPUs. [Apache2]
- BS::thread_pool – A fast, lightweight, and easy-to-use C++17 thread pool library [MIT]
- Channel – Thread-safe container for sharing data between threads. [MIT]
- ck – Concurrency primitives, safe memory reclamation mechanisms and non-blocking data structures. [BSD]
- concurrentqueue – A fast multi-producer, multi-consumer lock-free concurrent queue for C++11. [BSD,Boost]
- Coros – An easy-to-use and fast library for task-based parallelism, utilizing coroutines. [BSL-1.0]
- CUB – CUB provides state-of-the-art, reusable software components for every layer of the CUDA programming mode. [New BSD]
- cuda-api-wrappers – Lightweight, Modern-C++ wrappers for the CUDA GPU programming runtime API. [BSD]
- cupla – C++ API to run CUDA/C++ on OpenMP, Threads, TBB, … through Alpaka. [LGPLv3+]
- C++React – A reactive programming library for C++11. [Boost]
- dispenso – A high-performance C++ library for parallel programming with thread pools, parallel for loops, futures, task graphs, and concurrent containers. [MIT]
- FiberTaskingLib – Task-based multi-threading library that supports task graphs with arbitrary dependencies. [Apache]
- HPX – A general purpose C++ runtime system for parallel and distributed applications of any scale. [Boost]
- Intel Games Task Scheduler – A task scheduling framework designed for the needs of game developers. [MIT]
- Intel Parallel STL – Intel® implementation of C++17 STL for C++11 and above. [Apache2]
- Intel TBB – Intel® Threading Building Blocks. [Apache2]
- junction – A library of concurrent data structures in C++. [BSD]
- Kokkos – A performance portable programming model for parallel execution and memory abstraction. [BSD]
- libcds – A C++ library of Concurrent Data Structures. [BSD]
- Libclsph – An OpenCL based GPU accelerated SPH fluid simulation library. [MIT]
- libdill – Introduces structured concurrency in C. [MIT]
- libdispatch – 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] website
- libfork – A bleeding-edge, lock-free, wait-free, continuation-stealing tasking library built on C++20’s coroutines. [MPL-2.0] website
- libmill – Introduces Go-style concurrency in C. [MIT]
- marl – Marl is a hybrid thread / fiber task scheduler written in C++ 11. [Apache-2.0]
- moderngpu – 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]
- NCCL – Optimized primitives for collective multi-GPU communication. [BSD]
- Neco – Concurrency library for C (coroutines). [MIT]
- OpenCL – The open standard for parallel programming of heterogeneous systems.
- OpenMP – The OpenMP API.
- rotor – Event loop friendly C++ actor micro framework. [MIT]
- SObjectizer – An implementation of Actor, Publish-Subscribe, and CSP models in one rather small C++ framework. [BSD-3-Clause]
- Quantum – A powerful C++ coroutine dispatcher framework built on top of Boost.Coroutine2.
- RaftLib – The RaftLib C++ library, streaming/dataflow concurrency via C++ iostream-like operators. [Apache2]
- readerwriterqueue – A fast single-producer, single-consumer lock-free queue for C++. [BSD]
- stdgpu – Efficient STL-like Data Structures on the GPU. [Apache2]
- Taskflow – A General-purpose Parallel and Heterogeneous Task Programming System. (renamed from Cpp-Taskflow) [MIT]
- ThreadPool – A simple C++11 Thread Pool implementation [zlib]
- Thrust – A parallel algorithms library which resembles the C++ Standard Template Library (STL). [Apache2]
- TooManyCooks – High-performance C++20 coroutine framework with advanced hardware detection features. [BSL-1.0]
- transwarp – A header-only C++ library for task concurrency. [MIT]
- VexCL – A C++ vector expression template library for OpenCL/CUDA. [MIT]
- STAPL – A C++ parallel programming framework designed to work on both shared and distributed memory parallel computers. [BSD]
- concurrencpp – A general concurrency library containing tasks, executors, timers and C++20 coroutines to rule them all.
- libcu++ – The NVIDIA C++ Standard Library, providing heterogeneous implementation of C++ Standard Library facilities. [Apache-2.0]
- nvthreads – A library for enabling efficient and persistent threading in C/C++. [LGPL-2.1]
Configuration
Configuration files, INI files
- inifile-cpp – A header-only and easy to use Ini file parser for C++. [MIT]
- inih – Simple .INI file parser in C, good for embedded systems. [BSD-3-Clause]
- inih – Single header only C++ version of inih. [BSD-3-Clause]
- ini-cpp – Single header only C++ version, with some handy read/write interface, extend from inih. [BSD-3-Clause] website
- iniparser – INI file parser. [MIT]
- inipp – Simple header-only C++ ini parser and generator. [MIT]
- libconfig – C, C++ library for processing structured configuration files. [LGPL-2.1] website
- libconfuse – Small configuration file parser library for C. [ISC]
- mINI – INI file reader and writer. [MIT]
- simpleini – Cross-platform C++ library providing a simple API to read and write INI-style configuration files. [MIT]
- toml++ – Header-only TOML parser and serializer for C++17 and later. [MIT] website
- toml11 – a C++11 (or later) header-only toml parser/encoder depending only on C++ standard library. [MIT]
Containers
- C++ B-tree – A template library that implements ordered in-memory containers based on a B-tree data structure. [Apache2]
- CRoaring – Roaring bitmaps in C (and C++), with SIMD optimizations. [Apache-2.0]
- dynamic_bitset – Simple Useful Libraries: C++17/20 header-only dynamic bitset. [MIT] website
- fixed-containers – Header-only C++20 library that provides fixed capacity constexpr containers. [MIT]
- flat_hash_map – A very fast flat hashtable with Fibonacci hashing.
- frozen – a header-only, constexpr alternative to gperf for C++14 users. [Apache-2.0]
- Hashmaps – Implementation of open addressing hash table algorithms in C++. [MIT]
- hat-trie – C++ implementation of a fast and memory efficient HAT-trie. [MIT]
- Hopscotch map – A fast header-only hash map which uses hopscotch hashing for collisions resolution. [MIT]
- librb – C implementation of ring (circular) buffer, with full thread awareness that allows for concurrent read/write and can automatically grow in size when needed. [BSD] website
- LSHBOX – A c++ toolbox of locality-sensitive hashing (LSH), provides several popular LSH algorithms, also support Python and MATLAB. [GPL]
- marisa-trie – Matching Algorithm with Recursively Implemented StorAge. [BSD-2-Clause/LGPL-2.1]
- parallel-hashmap – A family of header-only, very fast and memory-friendly hashmap and btree containers [Apache2] website
- PGM-index – 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] website
- plf::colony – 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] website
- plf::list – A std::list implementation which removes range splicing in order to enable cache-friendlier structure, yielding significant performance gains. [zLib] website
- plf::stack – A replacement container for the std::stack container adaptor, with better performance than any std container in a stack context. [zLib] website
- ring_span lite – A simplified implementation of Arthur O’Dwyer’s ring_span implementation ie. a circular buffer view. [MIT]
- robin-hood-hashing – Fast & memory efficient hashtable based on robin hood hashing for C++14. [MIT]
- robin-map – Fast hash map and hash set using robin hood hashing. [MIT]
- sparsepp – A fast, memory efficient hash map for C++. [BSD 3-clause]
- sqlitemap – Persistent map backed by SQLite. [MIT]
- st_tree – A fast and flexible c++ template class for tree data structures. [Apache-2.0]
- svector – Compact SVO optimized vector for C++17 or higher. [MIT]
- tree.hh – An STL-like C++ header-only tree library. [GPL2+]
- unordered_dense – A fast & densely stored hashmap and hashset based on robin-hood backward shift deletion. [MIT]
- fifo_map – A FIFO-ordered associative container for C++. [MIT]
- ordered-map – A C++ hash map and hash set which preserves the order of insertion. [MIT]
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 cryptography library. [LGPLv2.1+]
- Botan – A crypto library for C++. [BSD-2]
- Crypto++ – A free C++ class library of cryptographic schemes. [Boost] website
- digestpp – C++11 header-only message digest (hash) library. [PublicDomain]
- GnuPG – A complete and free implementation of the OpenPGP standard. [GPL]
- GnuTLS – A secure communications library implementing the SSL, TLS and DTLS protocols. [LGPL2.1]
- Libgcrypt – A general purpose cryptographic library originally based on code from GnuPG. [LGPLv2.1+]
- LibreSSL – A free version of the SSL/TLS protocol forked from OpenSSL in 2014. [?]
- libsodium – P(ortable|ackageable) NaCl-based crypto library, opinionated and easy to use. [ISC]
- libhydrogen – A lightweight, secure, easy-to-use crypto library suitable for constrained environments. [ISC]
- LibTomCrypt – A fairly comprehensive, modular and portable cryptographic toolkit. [WTFPL]
- mbedTLS – An open source, portable, easy to use, readable and flexible SSL library, previously known as PolarSSL. [Apache2] website
- Nettle – A low-level cryptographic library. [LGPL]
- OpenSSL – A robust, commercial-grade, full-featured, and Open Source cryptography library. [Apache] website
- retter – A collection of hash functions, ciphers, tools, libraries, and materials related to cryptography.
- s2n – An implementation of the TLS/SSL protocols. [Apache]
- sha1collisiondetection – Library and command line tool to detect SHA-1 collision in a file. [MIT]
- stduuid – A C++17 cross-platform implementation for UUIDs. [MIT]
- Tink – 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]
- Tiny AES in C – Small portable AES128/192/256 in C. [PublicDomain]
- tiny-ECDH-c – Small and portable implementation of the ECDH key agreement protocol in C. [PublicDomain]
- Themis – crypto library for painless data security, providing symmetric and asymmetric encryption, secure sockets with forward secrecy, for mobile and server platforms. [Apache2]
- HEhub – A library for homomorphic encryption and its applications. [Apache2]
- Qt-Secret – Simple encryption library based on Qt for C++ projects. [LGPL]
- micro-ecc – A small and fast ECDH and ECDSA implementation for 8-bit, 32-bit, and 64-bit processors. [BSD-2-Clause]
- crypto-algorithms – Basic implementations of standard cryptography algorithms (AES, SHA, etc.) in C. [PublicDomain]
- aes-stream – A fast AES-based stream cipher for C. [ISC]
CSV
Libraries for parsing Comma Separated Value (CSV) files
- commata – Just another header-only C++17 CSV parser. [Unlicense]
- csv2 – Fast CSV parser for modern C++. [MIT]
- Csv::Parser – Compile-time and runtime CSV parser written in C++17. [Zlib]
- Fast C++ CSV Parser – Small, easy-to-use and fast header-only library for reading CSV files. [BSD-3-Clause]
- Glaze – High performance, header only, CSV library with reflection support. [MIT]
- lazycsv – A fast, lightweight and single-header csv parser for modern C++. [MIT]
- rapidcsv – An easy-to-use, header-only C++ CSV parser library. [BSD-3-Clause]
- ssp – A header only “csv” parser which is fast and versatile with modern C++ api. [MIT]
- Vince’s CSV Parser – A fast, self-contained, streaming C++17 CSV parser with optional type-casting and statistics. [MIT]
- zsv – The world’s fastest (simd) CSV parser, with an extensible CLI. [MIT]
Database
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
- DuckDB – in-process SQL OLAP Database Management System. [MIT] website
- hiberlite – C++ Object-relational mapping for sqlite3. [BSD]
- Hiredis – A minimalistic C client library for the Redis database. [BSD]
- Infinity – The AI-native database built for LLM applications, providing incredibly fast vector and full-text search. [Apache2]
- Kuzu – Embeddable property graph database management system built for query speed and scalability. Implements Cypher. [MIT] website
- Kvrocks – A distributed key value NoSQL database that uses RocksDB as storage engine and is compatible with Redis protocol. [Apache2]
- Ladybug – an embedded graph database built for query speed and scalability. [MIT] website
- LevelDB – A fast key-value storage library written at Google that provides an ordered mapping from string keys to string values. [BSD]
- libpg_query – C library for accessing the PostgreSQL parser outside of the server environment. [BSD-3-Clause]
- libpqxx – The official C++ client API for PostgreSQL. [BSD-3-Clause]
- LMDB – Very fast embedded key/value store with full ACID semantics. [OpenLDAP]
- LMDB++ – C++11 wrapper for the LMDB embedded database library. [PublicDomain]
- mgclient – C/C++ Memgraph Client. [Apache2]
- MongoDB C Driver – MongoDB client library for C. [Apache2]
- MongoDB C++ Driver – C++ driver for MongoDB. [Apache2]
- MongoDB Libbson – A BSON utility library. [Apache2]
- MySQL++ – A C++ wrapper for MySQL’s C API. [LGPL]
- nanodbc – A small C++ wrapper for the native C ODBC API. [MIT]
- ODB – An open-source, cross-platform, and cross-database object-relational mapping (ORM) system for C++. [GPLv2]
- redis3m – Wrapper of hiredis with clean C++ interface, supporting sentinel and ready to use patterns. [Apache2]
- Reindexer – Embeddable, in-memory, document-oriented database with a high-level Query builder interface. [Apache2] website
- RocksDB – Embedded key-value store for fast storage from facebook. [BSD]
- SimDB – High performance, shared memory, lock free, cross platform, single file, minimal dependencies, C++11 key-value store. [Apache2]
- SOCI – A database abstraction layer for C++. [Boost]
- Speedb – Community-led project: A RocksDB compliant high performance scalable embedded key-value store. [Apache2]
- sqlgen – A reflection-based ORM and SQL query generator for C++-20, similar to Python’s SQLAlchemy/SQLModel or Rust’s Diesel. [MIT]
- SQLite – A completely embedded, full-featured relational database in a few 100k that you can include right into your project. [PublicDomain]
- SQLiteC++ – SQLiteC++ (SQLiteCpp) is a smart and easy to use C++ SQLite3 wrapper. [MIT]
- sqlite_modern_cpp – Header only C++14 wrapper around sqlite library. [MIT]
- sqlite_orm – SQLite ORM light header only library for modern C++. [AGPL + paid MIT]
- sqlpp11 – A type safe embedded domain specific language for SQL queries and results in C++. [BSD-2-Clause]
- sqlpp23 – A type safe SQL library for C++. [BSD-2-Clause]
- TidesDB – High-performance, durable, transactional embedded storage engine designed for flash and RAM optimization. [MPL-2.0] website
- TileDB – Fast Dense and Sparse Multidimensional Array DBMS. [MIT] website
- TinyORM – Modern C++ ORM library. [MIT] website
- UnQLite – A self-contained, serverless, zero-configuration, transactional NoSQL engine. [BSD-2-Clause] website
- upscaledb – An embedded “typed” key/value store with a built-in query interface. [GPLv3]
- TigerBeetleDB C++ client (Community) – TigerBeetle is a financial accounting database designed for mission critical safety and performance to power the future of financial services. [BSL-1.0]
- Trilogy – a client library for MySQL-compatible database servers, designed for performance, flexibility, and ease of embedding. [MIT]
- UStore – Multi-Modal database for BLOBs, JSON, and graphs. [Apache2]
- Velox – A C++ vectorized database acceleration library aimed to optimizing query engines and data processing systems. [Apache-2.0] website
- constexpr-sql – A compile-time SQL query parser and executor in C++17. [MIT]
- NuDB – A fast, append-only key/value store for SSD drives. [Boost]
Data visualization
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++ header-only graphing and data visualization with modern OpenGL. [Apache-2.0] website
- Plotly++ – A C++ interface to the Plotly.js figure spec, for creating interactive data visualizations. [MIT]
- matplotlib-cpp – A C++ wrapper around the matplotlib Python plotting library. [MIT]
Debug
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 messages. [MIT]
- backward-cpp – A beautiful stack trace pretty printer for C++. [MIT]
- Bencher – A suite of continuous benchmarking tools designed to catch performance regressions in CI. [MIT]/[Apache2]
- benchmark – Google provided small microbenchmark support library. [Apache2]
- Boost.Test – Boost Test Library. [Boost] website
- check – Check is a unit testing framework for C. [LGPL-2.1] website
- doctest – The lightest feature rich C++ single header testing framework. [MIT]
- Catch2 – A modern, C++-native, test framework for unit-tests, TDD and BDD. [Boost]
- Celero – C++ Benchmarking Framework. [Apache2]
- cpp-dump – A C++ library for debugging purposes that can print any variable, even user-defined types. [MIT]
- CppUTest – Unit testing and mocking framework for C/C++. [BSD-3-clause]
- CUTE – C++ Unit Testing Easier. [LGPL3]
- CMocka – unit testing framework for C with support for mock objects. [Apache2]
- CppBenchmark – Performance benchmark framework for C++ with nanoseconds measure precision. [MIT]
- Cpptrace – A simple, portable, and self-contained C++ stacktrace library supporting C++11 and greater. [MIT]
- CppUnit – C++ port of JUnit. [LGPL2]
- CrashCatch – Single-header crash reporting for C++ that logs stack traces and creates
.dmpand.txtcrash dumps. [MIT] website - CTest – The CMake test driver program. [BSD]
- dbg-macro – A dbg(…) macro for C++. [MIT]
- DebugViewPP – Debug logging viewer. [Boost]
- Deleaker – A tool for resource leak detection, including memory, GDI and handle leaks.
- FakeIt – Simple mocking framework for C++. [MIT]
- fff – A micro-framework for creating fake C functions. [MIT]
- Google Mock – A library for writing and using C++ mock classes. [BSD]
- Google Test – Google C++ Testing Framework. [BSD]
- Hippomocks – Single-header mocking framework. [LGPL-2.1]
- IceCream-Cpp – Never use cout/printf to debug again [MIT]
- ig-debugheap – Multiplatform debug heap useful for tracking down memory errors. [BSD]
- libassert – The most over-engineered C++ assertion library. [MIT]
- libtap – Write tests in C. [GPL2]
- microprofile – Profiler with web-view for multiple platforms. [Unlicense]
- MinUnit – A minimal unit testing framework for C self-contained in a single header file. [MIT]
- nanobench – Simple, fast, accurate single-header microbenchmarking functionality for C++11/14/17/20. [MIT] website
- Nanotimer – A simple low-overhead cross-platform timer class for benchmarking. [zLib] website
- Nonius – A C++ micro-benchmarking framework. [CC]
- Remotery – Single C File Profiler with Web Viewer. [Apache2]
- snitch – Lightweight C++20 testing framework. [Boost]
- Touca – Open-source regression testing system that you can self-host. [Apache2] website
- UnitTest++ – A lightweight unit testing framework for C++. [MIT/X Consortium license]
- Unity – Simple Unit Testing for C. [MIT]
- utest.h – Single header unit testing framework for C and C++. [Unlicense]
- utl::profiler – Singe-header profiler for C++17. [MIT]
- μt – C++20 single header/single module, macro-free μ(micro)/Unit Testing Framework. [Boost]
- VLD – Visual Leak Detector. A free, robust, open-source memory leak detection system for Visual C++.
- MTuner – A C/C++ memory profiler and memory leak finder for Windows, PlayStation, and other platforms. [BSD-2-Clause]
- heaptrack – A heap memory profiler for Linux. [LGPL-2.1]
Documentation
- Doxide – Modern documentation for modern C++, configure with YAML, output Markdown. [Apache 2.0] website
- doxygen ⚡ – The de facto standard tool for generating documentation from annotated C++ sources. [GPL2] website
- doxyrest – A compiler from Doxygen XML to reStructuredText for Sphinx. [MIT]
- hdoc – The modern documentation tool for C++. [AGPL/Proprietary] website
- Natural Docs – Natural Docs is an open source documentation generator for multiple programming languages. [AGPL/Proprietary] website
- Sphinx – Sphinx makes it easy to create intelligent and beautiful documentation. [BSD-2-Clause] website
DSP
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-2.0]
- FFTW – A C library for computing the DFT in one or more dimensions. [GPL]
- iir1 – IIR Realtime C++ filter library. [MIT]
- kissfft – A Fast Fourier Transform (FFT) library that tries to Keep it Simple, Stupid. [BSD-3-Clause]
- pocketfft – FFT implementation based on FFTPack, but with several improvements. [BSD-3-Clause]
- wavelib – C implementation of 1D and 2D wavelet transforms. [BSD-3-Clause]
Font
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]
- otfcc – A C library and utility used for parsing and writing OpenType font files. [Apache-2.0]
- harfbuzz – A text shaping engine. [Old MIT]
- libschrift – A lightweight TrueType font rendering library. [ISC]
- SheenBidi – A sophisticated implementation of Unicode Bidirectional Algorithm. [Apache-2.0]
Game Engine
- 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, and XBOX (UWP), derived from Cocos2d-x-4.0. [MIT] website
- Cocos2d-x – A multi-platform framework for building 2d games, interactive books, demos and other graphical applications. [MIT]
- Corange – A game engine written in pure C, SDL and OpenGL. [BSD]
- crown – 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]
- delta3d – A robust simulation platform. [LGPL2]
- EnTT – Gaming meets modern C++. [MIT]
- GamePlay – A cross-platform native C++ game framework for creating 2D/3D mobile and desktop games. [Apache2]
- Godot – A fully featured, open source, MIT licensed, game engine. [MIT]
- Grit – Community project to build a free game engine for implementing open world 3D games. [MIT]
- Halley – A lightweight game engine written in C++14 with a “true” entity-component system. [Apache 2.0]
- Hazel Game Engine – Hazel is primarily an early-stage interactive application and rendering engine for Windows. [Apache-2.0 license]
- IX-Ray Platform – Fork of X-Ray 1.6 engine that aims to improve gaming experience and simplify development of modifications. [Modified MIT/non-commercial only]
- JNGL – 2D library for Linux, Windows, macOS, Android, iOS, Xbox, the Nintendo Switch and the Web. [zlib] website
- KlayGE – a cross-platform open source game engine with plugin-based architecture. [GPLv2] website
- nCine – A cross-platform 2D game engine with an emphasis on performance, written in C++11 and optionally scriptable in Lua. [MIT] website
- o3de – An open-source, real-time, multi-platform 3D engine based on Amazon Lumberyard. [Apache2] website
- OpenXRay – a community-modified X-Ray engine used in S.T.A.L.K.E.R. game series. [Modified BSD/non-commercial only]
- Oxygine – A cross-platform 2D C++ game engine. [MIT]
- Panda3D – A game engine, a framework for 3D rendering and game development for Python and C++ programs. [Modified BSD] website
- PixelGameEngine – The official distribution of olcPixelGameEngine, a tool used in javidx9’s YouTube videos and projects. [OLC3]
- Polycode – A cross-platform framework for creative code in C++ (with Lua bindings). [MIT] website
- quakeforge – Actively maintained branch of the original Quake engine code with 20+ years of development. [GPL-2.0]
- raylib – A simple and easy-to-use library to enjoy videogames programming. [zlib/libpng] website
- Spring – A powerful free cross-platform RTS game engine. [GPLv2/GPLv3] website
- Torque2D – An open-source and cross-platform C++ engine built for 2D game development. [MIT] website
- Torque3D – An open-source C++ engine built for 3D game development. [MIT] website
- toy engine – 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.
- Urho3D – A free lightweight, cross-platform 2D and 3D game engine implemented in C++. Greatly inspired by OGRE and Horde3D. [MIT]
- ezEngine – 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] website
Graph
- 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
GUI
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 rendering [GPL/Proprietary] website
- CEGUI – Flexible, cross-platform GUI library.
- Elements – Lightweight, fine-grained, resolution independent, modular GUI library. [MIT]
- FLTK – Fast, light, cross-platform C++ GUI toolkit. [LGPL2]
- FOX Toolkit – an open-source, cross-platform widget toolkit. [LGPL]
- GacUI – GPU Accelerated C++ User Interface, with WYSIWYG developing tools, XML supports, built-in data binding and MVVM features. [Ms-PL]
- GTK+ – A multi-platform toolkit for creating graphical user interfaces. [LGPL]
- gtkmm – The official C++ interface for the popular GUI library GTK+. [LGPL]
- imgui – Immediate Mode Graphical User Interface with minimal dependencies. [MIT]
- implot – Immediate Mode Plotting widgets for imgui. [MIT]
- iup – Multi-platform toolkit for building graphical user interfaces. [MIT]
- libui – Simple and portable (but not inflexible) GUI library in C that uses the native GUI technologies of each platform it supports. [MIT]
- MyGUI – Fast, flexible and simple GUI. [MIT]
- nana – Nana is a cross-platform library for GUI programming in modern C++ style. [Boost]
- NanoGui – A minimalistic cross-platform widget library for OpenGL 3.x or higher. [BSD]
- NAppGUI – SDK for building cross-platform desktop apps in ANSI-C. [MIT] website
- nuklear – A single-header ANSI C gui library. [PublicDomain]
- QCustomPlot – Qt plotting widget without further dependencies. [GPLv3]
- Qwt – Qt Widgets for Technical Applications. [Own based on LGPL]
- QwtPlot3D – A feature-rich Qt/OpenGL-based C++ programming library, providing essentially a bunch of 3D-widgets. [zlib]
- RmlUi – The HTML/CSS User Interface library evolved. Fork of libRocket. [MIT]
- Saucer – A modern, cross-platform C++ webview library. [MIT]
- Sciter – Sciter is an embeddable HTML/CSS/scripting engine aimed to be used as an UI layer of modern desktop applications. [Free/Commercial]
- Slint – Lightweight GUI toolkit for desktop and embedded. [GPL/Free/Proprietary] website
- TGUI – Cross-platform modern c++ GUI. [Zlib] website
- WebUI – Use any web browser as GUI, with your preferred language in the backend and HTML5 in the frontend. [MIT] website
- wxCharts – A library to create charts in wxWidgets applications. [MIT] website
- wxWidgets – A C++ library that lets developers create applications for Windows, Mac OS X, Linux and other platforms with a single code base. [Own LGPL]
- Yue – A library for creating native cross-platform GUI apps. [LGPLv2]
- GuiLite – The smallest header-only GUI library (5 KLOC) for all platforms. [Apache-2.0]
- LCUI – A small C library for building user interfaces with C, XML and CSS. [MIT]
Graphics
- 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 library. [BSD]
- Blend2D – 2D vector graphics engine powered by a JIT compiler. [Zlib] website
- Cairo – A 2D graphics library with support for multiple output devices. [LGPL2 or Mozilla MPL]
- C-Turtle – A C++11 header-only turtle graphics library acting as a CImg wrapper. [MIT]
- Diligent Engine – A modern cross-platform low-level 3D graphics library. [Apache2]
- DirectXTK – A collection of helper classes for writing DirectX 11.x code in C++. [MIT]
- GLFW – A simple, cross-platform OpenGL wrangling library. [zlib/libpng]
- GLFWPP – A thin modern C++17 header-only wrapper for GLFW. [MIT]
- Harfang 3D 3D visualization library usable in C++, Python, Lua and Go. Based on BGFX. [GPLv3/LGPLv3/Proprietary] website
- herebedragons – A basic 3D scene implemented with various engines, frameworks or APIs. [MIT] website
- Horde3D – A small 3D rendering and animation engine. [EPL]
- Ion – A small and efficient set of libraries for building cross-platform client or server applications that use 3D graphics. [Apache2] website
- Irrlicht – A high performance realtime 3D engine written in C++. [zlib]
- libigl – Simple C++ geometry processing library. [MPL2]
- LLGL – Low Level Graphics Library (LLGL) is a thin abstraction layer for the modern graphics APIs. [BSD-3-Clause]
- LunaSVG – a standalone SVG rendering library in C++. [MIT]
- magnum – Lightweight and modular C++11/C++14 graphics middleware for games and data visualization. [MIT] website
- micro-gl – Realtime, Embeddable, Headers Only C++11 CPU vector graphics. no STD lib, no FPU and no GPU required. [CUSTOM] website
- NanoVG – Antialiased 2D vector drawing library on top of OpenGL for UI and visualizations. [Zlib]
- Ogre 3D ⚡ – A scene-oriented, real-time, flexible 3D rendering engine (as opposed to a game engine) written in C++. [MIT] website
- OpenSceneGraph – An open source high performance 3D graphics toolkit. [OSGPL]
- OpenSubdiv – Pixar’s library for evaluating and rendering subdivision surfaces on CPU and GPU. [Modified Apache2]
- OpenVDB – Library and tools for storing, editing, and rendering volumetric datasets. [MPL2]
- Panda3D – A framework for 3D rendering and game development for Python and C++. [BSD]
- Partio – Library for wrangling particle data, with support for most common file formats. [Modified BSD]
- Skia – A complete 2D graphic library for drawing Text, Geometries, and Images. [BSD] website
- ThorVG – a platform-independent portable library that allows for drawing vector-based scenes and animations, including SVG and Lottie. [MIT] website
- TinySpline – A small, yet powerful ANSI C library for interpolating, transforming, and querying arbitrary NURBS, B-Splines, and Bézier curves. [MIT]
- urho3d – Cross-platform rendering and game engine. [Many different, mostly MIT]
- Yocto/GL – Tiny C++ Libraries for Data-Driven Physically-based Graphics. [MIT]
- olive.c – Simple 2D Graphics Library. [MIT]
Image Processing
- 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 small, open source, C++ toolkit for image processing. [Own LGPL or GPL]
- CxImage – 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]
- Dlib ⚡ – A modern C++11 machine learning, computer vision, numerical optimization, and deep learning toolkit. [Boost] website
- fpng – Super fast C++ .PNG writer/reader. [Unlicense]
- FreeImage – An open source library that supports popular graphics image formats and others as needed by today’s multimedia applications. [GPL2 or GPL3]
- GD – GD Graphics Library, famously used in PHP for image loading/manipulation & thumbnail generation. [custom permissive license, requires mention in user docs] website
- DCMTK – DICOM Toolkit.
- GDCM – Grassroots DICOM library.
- ITK – An open-source, cross-platform system for image analysis. [Apache2 from ITK 4.0]
- [Jpegli][https://github.com/google/jpegli] – an improved JPEG encoder and decoder implementation. [BSD-3-Clause]
- Leptonica – Leptonica is an open source library containing software that is broadly useful for image processing and image analysis applications. [BSD-2-Clause] website
- libavif – Library for encoding and decoding .avif files. [BSD-2-Clause]
- libfacedetection – Open source library for face detection in images. The face detection speed can reach 1500FPS. [BSD]
- libjpeg-turbo – A JPEG image codec that uses SIMD instructions to accelerate baseline JPEG encoding and decoding. [IJG & BSD-3-Clause & zlib] website
- libjxl – JPEG XL image format reference implementation. [BSD-3-Clause]
- libpng – the reference library for use in applications that read, create, and manipulate PNG (Portable Network Graphics) raster image files. [libpng-2.0] website
- libspng – Simple, modern libpng alternative. [BSD-2] website
- libvips – A fast image processing library with low memory needs. [LGPL] website
- LodePNG – PNG encoder and decoder in C and C++. [Zlib]
- Magick++ – ImageMagick program interfaces for C++. [Apache2]
- MagickWnd – ImageMagick program interfaces for C. [Apache2]
- MozJPEG – Improved JPEG encoder. [BSD/BSD-3-Clause/ZLIB]
- OpenCV ⚡ – Open source computer vision. [Apache2] website
- OpenEXR – Cross-platform library for high dynamic range imaging. [Modified BSDF]
- OpenImageIO – Powerful image and texture wrangling library with support for a wide number of common lossy and RAW formats. [Modified BSD]
- OpenJPEG – an open-source JPEG 2000 codec written in C language. [BSD-2-Clause]
- PlutoFilter – A single-header, zero-allocation image filter library in C. [MIT]
- QOI – The “Quite OK Image Format” for fast, lossless image compression. [MIT]
- SAIL – Easy-to-use cross-platform image decoding library with pluggable image codecs. [MIT]
- Simd – 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]
- stb-image – STB single-header image loading library. [Public Domain]
- tesseract-ocr – An OCR engine. [Apache2]
- TinyDNG – Header-only Tiny DNG/TIFF loader and writer in C++. [MIT]
- TinyEXIF – Tiny ISO-compliant C++ EXIF and XMP parsing library for JPEG. [MIT]
- TinyTIFF – lightweight TIFF reader/writer library. [GPL-3.0]
- Video++ – A C++14 high performance video and image processing library. [MIT]
- VIGRA – A generic C++ computer vision library for image analysis. [MIT X11]
- VTK – Open-source, freely available software system for 3D computer graphics, image processing and visualization. [BSD]
- OpenImageDenoise – High-performance, high-quality denoising library for ray-traced images. [Apache-2.0] website
- bitmap – C++ Bitmap Library for reading, writing, and processing BMP image files. [MIT]
Internationalization
- 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]
- simdutf – Unicode routines (UTF8, UTF16, UTF32): billions of characters per second using SSE2, AVX2, NEON, AVX-512. [Apache-2/MIT]
- uni-algo – Unicode Algorithms Implementation for C/C++. [Unlicense or MIT]
- utf8.h – Single header utf8 string functions for C and C++. [Unlicense]
- utf8proc – A clean C library for processing UTF-8 Unicode data. [MIT]
Inter-process communication
- 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 that supports kernel-level shared memory and memory-mapped files, with in-built synchronization mechanisms (semaphores, mutexes, and more). [Boost] website
- bRPC – 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] website
- Cap’n Proto – Fast data interchange format and capability-based RPC system. [MIT] website
- eCAL – Pub/sub, client/server, C++/Python/C#, various message protocols (protobuf, capnproto ..). [Apache2] website
- gRPC – A high performance, open source, general-purpose RPC framework. [BSD] website
- Ice – Comprehensive RPC framework with support for C++, C#, Java, JavaScript, Python and more. [GPLv2]
- iceoryx – 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] website
- libjson-rpc-cpp – JSON-RPC framework for C++ servers and clients. [MIT]
- nanomsg – A simple high-performance implementation of several “scalability protocols”. [MIT] website
- nng – nanomsg-next-generation, a light-weight brokerless messaging library. [MIT] website
- rpclib – A modern C++ msgpack-RPC server and client library. [MIT]
- simple-rpc-cpp – A simple RPC wrapper generator to C/C++ functions. [BSD]
- SRPC – A lightweight RPC system that supports multiple protocols and OpenTelemetry. [Apache2]
- WAMP – Provides RPC and pub/sub messaging patterns. (various implementations, various languages)
- xmlrpc-c – A lightweight RPC library based on XML and HTTP. [BSD]
JSON
- 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 serialization and parsing in C++. [BSL-1.0]
- frozen – JSON parser and generator for C/C++. [GPL & GPL2]
- Glaze – Extremely fast, in memory, JSON and interface library for modern C++. [MIT]
- Jansson – C library for encoding, decoding and manipulating JSON data. [MIT]
- jbson – jbson is a library for building & iterating BSON data, and JSON documents in C++14. [Boost]
- JeayeSON – A very sane (header only) C++ JSON library. [BSD]
- Jsmn – A minimalistic JSON parser in C. [MIT]
- json ⚡ – JSON for Modern C++. [MIT] website
- JSON++ – A JSON parser in C++. [MIT]
- json.cpp – a baroque JSON parsing / serialization library for C++. [Apache-2.0]
- json.h – A simple one header/one source solution to parsing JSON in C and C++. [Unlicense]
- json-build – C89 tiny zero-allocation JSON serializer. [MIT]
- json-c – A JSON implementation in C. [MIT]
- jsoncons – A C++ header-only library for JSON and JSON-like binary formats with JSONPointer, JSONPatch, JSONPath and JMESPath. [Boost]
- JsonCpp – A C++ library for interacting with JSON. [MIT]
- Jsonifier – A few classes for parsing and serializing objects from/into JSON – very rapidly. [MIT]
- jsonParse – A simple JSON parser in ANSI C. [MIT]
- json-parser – Very low footprint JSON parser written in portable ANSI C. [BSD]
- json11 – A tiny JSON library for C++11. [MIT]
- json-struct – High performance, single header JSON parser parsing to and from C++ structs. [MIT]
- json-voorhees – JSON library for C++. Support for C++11. No dependencies, fast and dev-friendly. [Apache2]
- JSON Toolkit – JSON, JSON Pointer, JSON Schema, and JSONL library for C++20. [AGPL/Commercial]
- jute – Very simple C++ JSON Parser. [PublicDomain]
- libjson – A JSON parser and printer library in C. easy to integrate with any model. [LGPL]
- libjson – Lightweight JSON library. [?]
- LIBUCL ⚡ – Universal configuration library parser. [BSD-2-Clause]
- meojson – Next-gen C++ JSON/JSON5 Serialization Engine | Zero Dependency | Header-Only | Unleash JSON Potential. [MIT]
- parson – Parson is a lighweight json library written in C. [MIT]
- PicoJSON – A header-file-only, JSON parser serializer in C++. [BSD]
- qt-json – A simple class for parsing JSON data into a QVariant hierarchy and vice versa. [GPLv3]
- QJson – A qt-based library that maps JSON data to QVariant objects. [LGPL2]
- RapidJSON ⚡ – A fast JSON parser/generator for C++ with both SAX/DOM style API. [MIT] website
- sajson – Lightweight, extremely high-performance JSON parser for C++11. [MIT]
- simdjson – Extremely fast JSON library that can parse gigabytes of JSON per second. [Apache-2.0]
- Sonic-Cpp – A fast JSON serializing & deserializing library, accelerated by SIMD. [Apache-2.0]
- taoJSON – Zero-dependency C++ header-only JSON library. [MIT]
- ujson – µjson is a a small, C++11, UTF-8, JSON library. [MIT]
- UltraJSON – Ultra fast JSON decoder and encoder written in C. [BSD-3-Clause]
- YAJL – A fast streaming JSON parsing library in C. [ISC]
- yyjson – A high performance JSON library written in ANSI C. [MIT]
- libdart – A high-performance, network-optimized JSON manipulation library. [MIT]
Logging
- 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, modular and highly customizable. [MIT]
- Boost.Log – Designed to be very modular and extensible. [Boost] website
- BqLog – A lightweight, high-performance logging system used in projects such as “Honor of Kings”. [Apache-2.0]
- Easylogging++ – Extremely light-weight high performance logging library for C++11 (or higher) applications. [MIT]
- fmtlog – A performant fmtlib-style logging library with latency in nanoseconds. [MIT]
- G3log – Asynchronous logger with Dynamic Sinks. [PublicDomain]
- glog – C++ implementation of the Google logging module.
- haclog – An extremely fast plain C logging library. [MIT]
- Log4cpp – A library of C++ classes for flexible logging to files, syslog, IDSA and other destinations. [LGPL]
- log4cplus – A simple to use C++ logging API providing thread-safe, flexible, and arbitrarily granular control over log management and configuration. [BSD & Apache2]
- loguru – A lightweight C++ logging library. [PublicDomain]
- lwlog – Very fast synchronous and asynchronous C++17 logging library. [MIT]
- ng-log – C++14 library for application-level logging. [BSD-3-Clause]
- plog – Portable and simple log for C++ in less than 1000 lines of code. [MPL2]
- reckless – Low-latency, high-throughput, asynchronous logging library for C++. [MIT]
- spdlog – Super fast, header only, C++ logging library.
- templog – A very small and lightweight C++ library which you can use to add logging to your C++ applications. [Boost]
- P7Baical – An open source and cross-platform library for high-speed sending telemetry & trace data with minimal usage of CPU and memory. [LGPL]
- Quill – Asynchronous cross platform low latency logging library. [MIT]
- logfault – A simple, elegant and efficient C++ header-only logging library. [MIT]
Machine Learning
- 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 Computer Vision Library. [BSD]
- darknet – Open source neural network framework written in C and CUDA. [PublicDomain] website
- Dlib ⚡ – A modern C++11 machine learning, computer vision, numerical optimization, and deep learning toolkit. [Boost] website
- FAISS – A library for efficient similarity search and clustering of dense vectors. [MIT]
- FANN – Fast Artificial Neural Network library in C. [LGPL]
- Fido – A highly-modular C++ machine learning library for embedded electronics and robotics. [MIT] website
- flashlight – A fast, flexible machine learning library from Facebook AI Research written entirely in C++ and based on the ArrayFire tensor library. [BSD-3-Clause] website
- ggml – Tensor library for machine learning with 16-bit and 4-bit quantization support. [MIT]
- libsvm – A simple, easy-to-use, efficient library for Support Vector Machines. [BSD-3-Clause] website
- m2cgen – A CLI tool to transpile trained classic ML models into a native C code with zero dependencies. [MIT]
- MeTA – A modern C++ data sciences toolkit. [MIT]
- Minerva – A fast and flexible system for deep learning. [Apache2]
- mlpack – A scalable c++ machine learning library. [LGPLv3] website
- ncnn – A high-performance neural network inference computing framework optimized for mobile platforms. [BSD]
- OpenCV ⚡ – Open Source Computer Vision Library. [BSD] website
- oneDAL – A powerful machine learning library that helps speed up big data analysis. [Apache]
- ONNX runtime – 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] website
- Recommender – C library for product recommendations/suggestions using collaborative filtering (CF). [BSD]
- RNNLIB – RNNLIB is a recurrent neural network library for sequence learning problems. [GPLv3]
- SHOGUN – The Shogun Machine Learning Toolbox. [GPLv3]
- sofia-ml – The suite of fast incremental algorithms for machine learning. [Apache2]
- USearch – Fast search and clustering library for vectors and strings. [Apache2]
- VLFeat – The VLFeat open source library implements popular computer vision algorithms specialising in image understanding and local featurexs extraction and matching. [BSD-2-Clause] website
- xgboost – 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]
- TensorComprehensions – A fully-functional C++ library to automatically synthesize high-performance machine learning kernels. [Apache-2.0]
- kann – A lightweight C library for artificial neural networks. [MIT]
Math
- 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++ library for automatic differentiation. [MIT] website
- blaze – high-performance C++ math library for dense and sparse arithmetic. [BSD]
- Boost.Multiprecision – provides higher-range/precision integer, rational and floating-point types in C++, header-only or with GMP/MPFR/LibTomMath backends. [Boost] website
- ceres-solver – C++ library for modeling and solving large complicated nonlinear least squares problems from google. [BSD]
- CGAL – Collection of efficient and reliable geometric algorithms. [LGPL&GPL] website
- cml – The configurable math library. [Boost]
- CNL – A Compositional Numeric Library for C++. [Boost]
- DirectXMath – An all inline SIMD C++ linear algebra library for use in games and graphics apps.
- Dlib ⚡ – A modern C++11 machine learning, computer vision, numerical optimization, and deep learning toolkit. [Boost] website
- Eigen – A high-level C++ library of template headers for linear algebra, matrix and vector operations, numerical solvers and related algorithms. [MPL2]
- ExprTk – 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]
- Fastor – A lightweight high performance tensor algebra framework for modern C++. [MIT]
- geo-utils-cpp – Header-only C++17 library for spherical lat/lng geometry: distance, bearing, area, point-in-polygon. [Apache2]
- Geometric Tools – C++ library for computing in the fields of mathematics, graphics, image analysis and physics. [Boost] website
- GLM – Header-only C++ math library that matches and inter-operates with OpenGL’s GLSL math. [MIT] website
- GMTL – Graphics Math Template Library is a collection of tools implementing Graphics primitives in generalized ways. [GPL2]
- GMP – A C library for arbitrary precision arithmetic, operating on signed integers, rational numbers, and floating-point numbers. [LGPL3 & GPL2]
- Klein – A fast, SIMD-optimized C++17 Geometric Algebra library for point, line, and plane projections, intersections, joins, rigid-body motion, and more. [MIT] website
- libfixmath – Cross Platform Fixed Point Maths Library. [MIT]
- linalg.h – Single header, public domain, short vector math library for C++. [Unlicense]
- MATIO – MATLAB MAT File I/O Library. [BSD-2-Clause] website
- MatX – A GPU-accelerated C++17 numerical computing library with a MATLAB/Python-like syntax. [BSD 3-clause]
- mexce – A single-header, dependency-free JIT compiler for scalar mathematical expressions that generates optimized x87 FPU machine code. [BSD]
- MIRACL – A Multiprecision Integer and Rational Arithmetic Cryptographic Library. [AGPL]
- NumCpp – A templatized header only C++ implementation of the Python Numpy library. [MIT]
- NumKong – SIMD-accelerated distances, dot products, matrix ops, geospatial & geometric kernels for 16 numeric types. [Apache2] (previously named SimSIMD)
- OMath – Cross-platform modern general purpose math library written in C++23 that suitable for cheat/game development. [ZLIB]
- muparser – muParser is an extensible high performance math expression parser library written in C++. [MIT]
- LibTomMath – A free open source portable number theoretic multiple-precision integer library written entirely in C. [PublicDomain & WTFPL] website
- linmath.h – A lean linear math library, aimed at graphics programming. [WTFPL]
- lp_solve – A library used to formulate and solve linear programming problems. [LGPL] website
- OpenBLAS – An optimized BLAS library based on GotoBLAS2 1.13 BSD version. [BSD 3-clause] website
- PCG-rand – 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]
- QuantLib – A free/open-source library for quantitative finance. [Modified BSD] website
- sebsjames/maths – A templated C++20 math library which emphasizes convenience and pleasure for the client programmer (used in mathplot). [Apache2] website
- StatsLib – A C++ header-only library of statistical distribution functions. [Apache2] website
- SymEngine – Fast symbolic manipulation library, a rewriting of SymPy’s core in C++. [MIT]
- TinyExpr – A C library for parsing and evaluating math expressions from strings. [zlib]
- Vc – SIMD Vector Classes for C++. [BSD]
- Versor – A (fast) Generic C++ library for Geometric Algebras, including Euclidean, Projective, Conformal, Spacetime (etc).
- Wagyu – A general library for geometry operations of union, intersections, difference, and xor. [mapbox-wagyu original]
- Wykobi – A C++ library of efficient, robust and simple to use C++ 2D/3D oriented computational geometry routines. [MIT]
- xtensor – A C++14 library for numerical analysis with multi-dimensional array expressions, inspired by NumPy syntax. [BSD 3-clause] website
- universal – 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]
- utl::random – A C++17 header-only library implementing fast random for Monte-Carlo simulations & gamedev. [MIT]
- XAD – Powerful Automatic Differentiation for C++. [AGPL] website
- geogram – A programming library of geometric algorithms. [BSD-3-Clause]
- std-simd – A portable implementation of std::experimental::simd for C++. [BSD-3-Clause]
- libdivide – Optimized integer division for C/C++ using libdivide. [zlib] website
- fpsqrt – Fast fixed point and floating point square root for C. [MIT]
- fastmod – Header-only fast C/C++ library for computing remainders and modular reductions. [Apache-2.0]
- Spectra – A C++ library for large scale eigenvalue problems, built on top of Eigen. [MPL2] website
- FastNoiseSIMD – A library for SIMD-accelerated noise generation functions. [MIT]
Memory Allocation
- 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 for Linux, Windows, and Mac. [Apache-2.0] website
- jemalloc – General purpose malloc(3) implementation that emphasizes fragmentation avoidance and scalable concurrency support. [BSD] website
- memory – STL compatible C++ memory allocator library. [ZLib]
- memory-allocators – Custom memory allocators to improve the performance of dynamic memory allocation. [MIT]
- mimalloc – A compact general purpose allocator with excellent performance. [MIT]
- rpmalloc – Cross platform lock free thread caching 16-byte aligned memory allocator implemented in C. [PublicDomain]
- snmalloc – Message passing based high-performance allocator. [MIT]
- TCMalloc – Google’s fast, multi-threaded malloc implementation. [Apache-2.0] website
- buddy_alloc – A single header buddy memory allocator for C with bounded allocation costs. [0BSD]
- tgc – A tiny garbage collector for C written in ~500 LOC. [BSD]
- Mesh – A memory allocator that automatically reduces the memory footprint of C/C++ applications. [Apache-2.0]
- rpmalloc – A public domain cross-platform lock-free thread-caching 16-byte aligned memory allocator. [PublicDomain]
- TLSF – Two-Level Segregated Fit memory allocator, a general purpose dynamic memory allocator. [BSD]
Multimedia
- GStreamer – A library for constructing graphs of media-handling components. [LGPL]
- icey – Real-time media stack and lightweight libwebrtc alternative for RTSP ingest, media processing, signaling, TURN, and browser delivery, built in C++20. [LGPL v2.1+]
- libass – Portable subtitle renderer for the ASS/SSA subtitle format. [ISC]
- libav – A collection of libraries and tools to process multimedia content such as audio, video, subtitles and related metadata. [LGPL v2.1+ and others] website
- LIVE555 Streaming Media – Multimedia streaming library using open standard protocols (RTP/RTCP, RTSP, SIP). [LGPL]
- libVLC – libVLC (VLC SDK) media framework. [GPL]
- MediaInfoLib – Convenient unified display of the most relevant technical and tag data for video and audio files. [BSD]
- QtAv – A multimedia playback framework based on Qt and FFmpeg to write a player easily. [LGPL] website
- SDL ⚡ – Simple DirectMedia Layer. [zlib] website
- SFML ⚡ – Simple and Fast Multimedia Library. [zlib] website
- TagLib – A library for reading and editing the metadata of several popular audio formats. [LGPL/MPL] website
Networking
- ada – WHATWG-compliant and fast URL parser written in modern C++. [Apache-2.0/MIT]
- ACE – An OO Network Programming Toolkit in C++. [?MIT?]
- AGENT++ – C++ framework provides a complete tri-lingual SNMP v1/2c/3 protocol engine and dispatcher for the development of SNMP agents. [Apache-2.0]
- Boost.Asio ⚡ – A cross-platform C++ library for network and low-level I/O programming. [Boost] website
- Boost.Beast ⚡ – HTTP and WebSocket built on Boost.Asio in C++11. [Boost] website
- Breep – Event based, high-level C++14 peer-to-peer library. [EUPL-1.1 (OSI approved)]
- C++ REST SDK – C++ REST SDK (previously named Casablanca). [Apache2]
- CZMQ – High-level C binding for ØMQ. [MPL2] website
- Restbed – C++11 Asynchronous RESTful framework. [AGPL]
- Restinio – A header-only C++14 library that gives you an embedded HTTP/Websocket server. [BSD]
- c-ares – A C library for asynchronous DNS requests. [MIT]
- cpp-httplib – A single file C++11 header-only HTTP/HTTPS server library. [MIT]
- cpp-netlib – A collection of open-source libraries for high level network programming. [Boost]
- cpp-netlib/uri – URI parser/builder library for C++, compatible with RFC 3986 and RFC 3987. [Boost]
- CppServer – 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]
- cpr – A modern C++ HTTP requests library with a simple but powerful interface. Modeled after the Python Requests module. [MIT] website
- curlcpp – An object oriented C++ wrapper for CURL(libcurl). [MIT]
- curlpp -C++ wrapper around libcURL. [MIT]
- DPDK – Data Plane Development Kit, libraries and drivers for fast packet processing. [BSD-3-Clause & GPL-2.0] website
- Dyad.c – Asynchronous networking for C. [MIT]
- ENet – Reliable UDP networking library. [MIT] website
- evpp – C++ high performance networking with TCP/UDP/HTTP protocols. [BSD]
- FTP client for C++ – C++ client for making FTP requests. [MIT]
- H2O – An optimized HTTP server with support for HTTP/1.x and HTTP/2. It can also be used as a library. [MIT]
- HTTP Parser ⚡ – A http request/response parser for C. [MIT]
- KCP – A fast and reliable ARQ protocol that helps applications to reduce network latency. [MIT]
- libcurl – Multiprotocol file transfer library. [MIT/X derivate license]
- libhttpserver – C++ library for creating an embedded Rest HTTP server (and more). [LGPL2.1]
- Libmicrohttpd – 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+]
- libpcap – A portable C/C++ library for network traffic capture. [BSD] website
- libquic – A QUIC protocol library extracted from Chromium’s QUIC Implementation. [BSD]
- librdkafka – Apache Kafka client library for C and C++. [BSD-2-Clause]
- libwebsockets – A lightweight pure C WebSocket implementation that provides both client and server libraries. [LGPL2.1 + static link exception] website
- Lithium – Build high performance C++ HTTP servers without being a C++ expert. [MIT]
- lwIP – A lightweight TCP/IP stack. [Modified BSD]
- mailio – mailio is a cross platform C++ library for MIME format and SMTP, POP3 and IMAP protocols. [BSD]
- Mongoose – Extremely lightweight webserver. [GPL2]
- MQTT-C – A portable MQTT C client for embedded systems and PCs alike. [MIT] website
- mTCP – Highly scalable user-level TCP stack for multicore systems. [Modified BSD]
- Muduo – A C++ non-blocking network library for multi-threaded server in Linux. [BSD]
- nghttp2 – HTTP/2 C Library. [MIT] website
- nghttp3 – HTTP/3 library written in C. [MIT] website
- Onion – HTTP server library in C designed to be lightweight and easy to use. [Apache2/GPL2]
- OpenDDS – An open source C++ implementation of the Object Management Group (OMG) Data Distribution Service (DDS). [Apache2]
- PF_RING™ – High-speed packet processing framework. [LGPL-2.1] website
- PicoHTTPParser – A tiny, primitive, fast HTTP request/response parser. [MIT]
- POCO ⚡ – C++ class libraries and frameworks for building network- and internet-based applications that run on desktop, server, mobile and embedded systems. [Boost] website
- Proxygen – Facebook’s collection of C++ HTTP libraries including an easy to use HTTP server. [BSD]
- RedPanda – Streaming data platform for developers. Kafka API compatible. 10x faster. [BSL]
- RakNet – A cross platform, open source, C++ networking engine for game programmers. [BSD]
- restclient-cpp – Simple REST client for C++. It wraps libcurl for HTTP requests. [MIT]
- Seasocks – Simple, small, C++ embeddable webserver with WebSockets support. [BSD]
- SNMP++ – a C++ API which supports SNMP v1/2c/v3. [custom permissive license]
- tlse – Single C file TLS 1.2/1.3 implementation, using tomcrypt as crypto library [BSD-2-Clause]
- TQUIC – A high-performance, lightweight, and cross-platform QUIC library, exposed to C and C++. [Apache2]
- Tufão – An asynchronous web framework for C++ built on top of Qt. [LGPL2]
- uriparser – Strictly RFC 3986 compliant URI parsing and handling library. [BSD-3-Clause]
- uWebSockets – µWS is one of the most lightweight, efficient & scalable WebSocket & HTTP server implementations available. [Zlib]
- UCall – A high-performance SIMD-accelerated RPC library on io_uring. [Apache2]
- WAFer – A C language-based ultra-light software platform for scalable server-side and networking applications. Think node.js for C programmers. [GPL2]
- Wangle – A client/server application framework to build asynchronous, event-driven modern C++ services. [Apache-2.0]
- wdt – 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]
- WebSocket++ – C++/Boost Asio based websocket client/server library. [BSD]
- wspp – a zero-dependency single-header, modern WebSocket client & server, ws/wss library. [MIT]
- PcapPlusPlus – a multiplatform C++ network sniffing and packet parsing and crafting framework. [Unlicense]
- ZeroMQ – High-speed, modular asynchronous communication library. [LGPL3/MPL2] website
- Zyre – Local Area Clustering for Peer-to-Peer Applications. [MPL2]
- easyhttpcpp – A cross-platform HTTP client library providing a caching facility from Sony. [MIT]
- GameNetworkingSockets – Reliable & unreliable messages over UDP by Valve. Connection-oriented API (like TCP). [BSD-3-Clause]
- wepoll – A Windows epoll wrapper based on Winsock. [BSD-2-Clause]
Office Open XML
Libraries for parsing and manipulating xlsx, pptx, docx, etc.
- DuckX – C++ library for creating and modifying Microsoft Word (.docx) files. [MIT]
- FreeXL – an open source library to extract valid data from within Spreadsheets. [MPL/GPL-2/LGPL-2]
- libxls – Read binary Excel files from C/C++ [BSD-2-Clause]
- libxlsxwriter – A C library for creating Excel XLSX files. [BSD-2-Clause] website
- OpenXLSX – A C++ library for reading, writing, creating and modifying Microsoft Excel® (.xlsx) files. [BSD-3-Clause]
- SimpleXlsxWriter – XLSX files writer for Microsoft Excel 2007 and above. [zlib]
- XLSX I/O – C library for reading and writing .xlsx files. [MIT]
Libraries for parsing and manipulating PDF documents.
- libharu – A free, cross platform, open-sourced software library for generating PDF. [zlib]
- litePDF – Library to create and edit PDF documents that uses GDI functions through a device context to draw the page content. [LGPL v3 and zlib]
- MuPDF – A lightweight PDF, XPS, and E-book viewer. [AGPL/Proprietary]
- PDF-Writer – High performance library for creating, modiyfing and parsing PDF files in C++ [Apache-2.0] website
- pdfio – A simple C library for reading and writing PDF files. [Apache-2] website
- PDFium – PDF generation and rendering library. [BSD-3-Clause]
- PoDoFo – A library to work with the PDF file format. [LGPL]
- Poppler – Open-source multi-backend PDF rendering library based on the xpdf-3.0 code base. [GPLv2/GPLv3]
- QPDF – A tool and C++ library for content-preserving transformations of PDF files. [Apache-2.0] website
- Xpdf – Xpdf is a free PDF viewer and toolkit, including a text extractor, image converter, HTML converter, and more. [GPL v2/GPL v3]
- DynaPDF – An easy-to-use PDF generation library. [Commercial]
Physics
Dynamics simulation engines
- Box2D – A 2D physics engine for games. [BSD-like]
- Bullet – A 3D physics engine for games. [zlib] website
- Chipmunk – A fast and lightweight 2D game physics library. [MIT] website
- Jolt Physics – A multi core friendly rigid body physics and collision detection library. [MIT]
- Kratos – framework for building parallel, multi-disciplinary simulation software, aiming at modularity, extensibility, and high performance. [BSD] website
- LiquidFun – A 2D physics engine for games. [BSD-like]
- Newton Dynamics – An integrated solution for real time simulation of physics environments. [zlib]
- ODE – Open Dynamics Engine – An open source, high performance library for simulating rigid body dynamics. [BSD&LGPL]
- ofxBox2d – openFrameworks wrapper for Box2D. [BSD-like]
- PhysX – An open-source realtime physics engine middleware SDK developed by Nvidia as a part of Nvidia GameWorks software suite. [BSD-3-Clause]
- PlayRho – An interactive physics engine & library. [Zlib]
- Project Chrono – An open source multi-physics simulation engine. [BSD-3-Clause] website
- Quantum++ – A modern C++11 quantum computing library. [MIT]
- QuarkPhysics – A 2D Soft Body and Rigid Body Physics Engine. [MIT]
- Simbody – High-performance C++ multibody dynamics/physics library for simulating articulated biomechanical and mechanical systems like vehicles, robots, and the human skeleton. [Apache2]
- SOFA – SOFA is an open-source framework targeting at real-time simulation, with an emphasis on medical simulation. [LGPL] website
- tungsten – A high-performance physically based renderer in C++. [zlib]
Reflection
- config-loader – A C++17 static reflection framework, from parse configuration file to native data structure. [MIT]
- Better Enums – Reflective enums (to string, iteration). Single header. [BSD] website
- clReflect – C++ Reflection using clang. [MIT]
- CPFG – A C++03 library for reflection, callback and script binding. [Apache2]
- CPP-Reflection – C++ Reflection using clang. [MIT]
- Easy Reflection – Easy and fast reflection + serialization solution like in Rust, Java or Go. [Apache]
- Enchantum – modern C++17 header-only library for compile-time enum reflection. [MIT]
- Magic Enum – 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]
- magic_get – std::tuple like methods for user defined types without any macro or boilerplate code. [Boost]
- meta – Header-only, non-intrusive and macro-free runtime reflection system in C++. [MIT]
- Nameof – Header-only C++17 library provides nameof macros and functions to obtain the simple name of variable, type, function, macro, and enum. [MIT]
- Ponder – A C++11 library for reflection. [MIT]
- REFLECT – C++20 Static Reflection library. [MIT]
- reflect-cpp – Serialization through reflection, including automatic field name retrieval from structs. [MIT]
- RTTR – A C++11 library for reflection. [MIT] website
- simple_enum – An Fast, Intuitive and Type-Safe C++ Enumeration Support Library. [BSL-1.0] website
- TSMP – 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]
- visit_struct – A miniature library for struct-field reflection in C++. [Boost]
- Refureku – A C++17 runtime reflection and code generation library. [MIT]
Regular Expression
- CppVerbalExpressions – C++ regular expressions made easy. [MIT]
- CTRE – A Compile time PCRE (almost) compatible regular expression matcher. [MIT]
- Hyperscan – 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]
- Oniguruma – A modern and flexible regular expressions library that supports a variety of character encodings. [BSD]
- PCRE – A regular expression C library inspired by the regular expression capabilities in Perl. [BSD]
- PCRE2 – a set of C functions that implement regular expression pattern matching. [BSD] website
- PIRE – Perl Incompatible Regular Expressions library by Yandex. Can be really fast (more than 400 MB/s). [LPGL v3.0]
- RE2 – A software library for regular expressions via a finite-state machine using automata theory. [BSD-3-Clause]
- SLRE – Super Light Regexp engine for C/C++. [GPLv2/Proprietary]
- sregex – A non-backtracking NFA/DFA-based Perl-compatible regex engine library for matching on large data streams. [BSD]
- SRELL – Unicode-aware regular expression template library for C++. [BSD]
- TRE – The approximate regex matching library and agrep command line tool. [BSD-2-Clause]
- Vectorscan – A portable fork of the high-performance regular expression matching library. [BSD-3-Clause]
- Pawn.Regex – A Pawn plugin that provides support for regular expressions using C++11 std::regex. [MIT]
Robotics
- MOOS-IvP – A set of open source C++ modules for providing autonomy on robotic platforms, in particular autonomous marine vehicles.
- MRPT – Mobile Robot Programming Toolkit. [BSD]
- PCL – Point Cloud Library is a standalone, large scale, open project for 2D/3D image and point cloud processing. [BSD] website
- Robotics Library (RL) – A self-contained C++ library for robot kinematics, motion planning and control. [BSD]
- RobWork – A collection of C++ libraries for simulation and control of robot systems. [Apache2] website
- ROS – Robot Operating System provides libraries and tools to help software developers create robot applications. [BSD]
- Ruckig – Real-time motion generation for robots and machines. [MIT] website
- YARP (Yet Another Robot Platform) – Library and toolkit for communication and device interfaces. [BSD-3-Clause] website
- SPICE Toolkit – Library and toolkit for computing geometric information used in planning and analyzing science observations obtained from robotic spacecraft. [MIT] website
Scientific Computing
- 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
- FFTW – A C library for computing the DFT in one or more dimensions. [GPL]
- GSL – GNU scientific library. [GPL]
- preCICE – Coupling library for partitioned multi-physics simulations (FSI, CHT, and more). [LGPL] website
- TileDB – Fast Dense and Sparse Multidimensional Array DBMS. [MIT] website
- 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
- volesti – High dimensional sampling from truncated distributions, convex optimization and volume computation.
Scripting
- AngelScript – AngelScript is a game-oriented interpreted/compiled scripting language. [zlib]
- Boost.Python – A C++ library which enables seamless interoperability between C++ and the Python programming language. [Boost] website
- cppimport – Import C++ files directly from Python! [MIT]
- CppSharp – Tools and libraries to glue C/C++ APIs to high-level languages. [MIT]
- ChaiScript – An easy to use embedded scripting language for C++. [BSD] website
- 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
- djinni – A tool for generating cross-language type declarations and interface bindings. [Apache2]
- Duktape – An embeddable JavaScript engine with compact footprint. [MIT] website
- JavaCpp – The missing bridge between Java and native C++. [Apache2]
- JerryScript – Ultra-lightweight JavaScript engine for the Internet of Things. [Apache-2.0] website
- libffi – A portable foreign-function interface library. [MIT] website
- Lua – A minimal and fast scripting engine for configuration files and basic application scripting. [MIT]
- 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
- MicroQuickJS – MicroQuickJS (aka. MQuickJS) is a JavaScript engine targeted at embedded systems. [MIT]
- MiniScript – scripting language modern, elegant, easy to learn, and easy to embed in your own C# or C++ projects. [MIT]
- 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
- pocketpy – C++17 header-only Python interpreter for game scripting. [MIT] website
- pybind11 – Seamless operability between C++11 and Python. [BSD]
- QuickJS – a small and embeddable JavaScript engine. [MIT]
- SIP – C or C++ Bindings Generator for Python v2 and v3. [GPL]
- 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
- txiki.js – A tiny JavaScript runtime. [MIT]
- V7 – An embedded JavaScript engine. [GPL2]
- V8 – A fast JavaScript engine by Google that can be embedded into any C++ application. [BSD]
- v8pp – Header-only library to expose C++ classes and functions into V8 to use them in JavaScript code. [BOOST] website
- ChakraCore -A JavaScript engine by Microsoft that can be embedded into nodejs. [MIT]
- MuJS – An embeddable Javascript interpreter in C. [ISC] website
- 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
- Cap’n Proto – Fast data interchange format and capability-based RPC system. [MIT] website
- 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]
- Kaitai Struct – A declarative language to describe various binary data structures and a compiler to generate C++ parser code. [GPLv3+][MIT][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
- mrpt-serialization – Versioned serialization to binary or text formats. [BSD] website
- 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]
- SimpleBinaryEncoding – encoding and decoding application messages in binary format for low-latency applications. [Apache2]
- upb – A small protobuf implementation in C. [BSD]
- Wirehair – O(N) Fountain Code for Large Data. [BSD-3-Clause]
- YAS – Very fast Yet Another Serialization library supports the binary/text/json formats. [Boost]
- zpp_bits – Actually, the fastest modern Serialization library. Just check this video.
- fbthrift – Facebook’s branch of Apache Thrift, including a serialization library and RPC framework. [Apache-2.0]
Serial Port
- Asio – Asio includes classes for creating and manipulating serial ports in a portable manner. [Boost] website
- Boost.Asio – Boost.Asio includes classes for creating and manipulating serial ports in a portable manner. [Boost] website
- 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
Sorting
- cpp-sort – Sorting algorithms & related tools for C++14. [MIT]
- pdqsort – Pattern-defeating quicksort. [zlib]
- Timsort – A templated stable sorting function which outperforms quicksort-based algorithms including std::sort, for reversed or semi-sorted data. [MIT]
- 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
- x86-simd-sort – C++ template library for high performance SIMD based sorting algorithms. [BSD-3-Clause]
Video
- libvpx – VP8/VP9 Codec SDK. [BSD]
- FFmpeg – A complete, cross-platform solution to record, convert and stream audio and video. [LGPL2/GPL2]
- avcpp – Modern C++ wrapper around FFmpeg. [MIT]
- libde265 – Open h.265 video codec implementation. [LGPL] website
- x265 – Open h.265 video codec implementation. [GPL2] website
- OpenH264 – Open Source H.264 Codec. [BSD] website
- Theora – A free and open video compression format. [BSD]
- Vireo – A lightweight and versatile video processing library by Twitter. [MIT]
- libuvc – A cross-platform library for USB video devices. [BSD]
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
- 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 optional CGI, SSL and Lua support. [MIT]
- C++ REST SDK – Microsoft project for cloud-based client-server communication in native code using a modern asynchronous C++ API design. [MIT]
- CppCMS – A Free High Performance Web Development Framework (not a CMS). [LGPLv3]
- Crow – Crow is a C++ microframework for running web services. It uses routing similar to Python’s Flask. [BSD] website
- Cutelyst – A C++ Web Framework built on top of Qt, using the simple approach of Catalyst (Perl) framework. [BSD-3-Clause] website
- Drogon – A C++17/20 based, high-performance HTTP application framework. [MIT]
- C++ wfrest – C++ Web Framework REST API. [Apache2]
- facil.io – Evented, high performance C web framework supporting HTTP, WebSockets, SSE and more. [MIT] website
- Kore – ultra fast and flexible web server / framework for web applications developed in C. [ISC]
- libOnion – lightweight library to help you create webservers in C programming language. [LGPLv3]
- lwan – Experimental, scalable, high performance HTTP server. [GPL2]
- oat++ – Light, zero-dependency framework to create high-performance web-services. [Apache-2.0] website
- 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
- 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
- Wt – A C++ library for developing web applications. [GPL/Proprietary]
- httpserver.h – A single-header HTTP server library for C. [MIT]
- libhttp – A cross-platform HTTP and HTTPS library in C/C++. [MIT]
XML
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
- Boost.PropertyTree – A property tree parser/generator that can be used to parse XML/JSON/INI/Info files. [Boost] website
- Expat – An XML parser library written in C. [MIT]
- Libxml2 – The XML C parser and toolkit of Gnome. [MIT]
- libxml++ – An XML Parser for C++. [LGPL2]
- Mini-XML – A small XML parsing library written in ANSI C. [LGPL2 with exceptions]
- PugiXML – A light-weight, simple and fast XML parser for C++ with XPath support. [MIT]
- RapidXml – An attempt to create the fastest XML parser possible, while retaining useability, portability and reasonable W3C compatibility. [Boost]
- TinyXML – A simple, small, minimal, C++ XML parser that can be easily integrating into other programs. [zlib]
- 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]
- Xalan C – A library and a command line program to transform XML documents using a stylesheet that conforms to XSLT 1.0 standards. [Apache-2.0] website
- Xerces-C++ – A validating XML parser written in a portable subset of C++. [Apache2]
Yaml
- fkYAML – A C++ header-only YAML library. [MIT]
- LibCYAML – C library for reading and writing YAML. [ISC]
- libfyaml – A fancy 1.2 YAML and JSON parser/writer. [MIT]
- LibYAML – A C library for parsing and emitting YAML. [MIT] website
- mini-yaml – Single header YAML 1.0 C++11 serializer/deserializer. [MIT]
- rapidyaml – Rapid YAML is a C++ library to parse and emit YAML. [MIT]
- yaml-cpp – A YAML parser and emitter in C++. [MIT]
Miscellaneous
Useful libraries or tools that don’t fit in the categories above or maybe just not categorised yet
- access_profiler – A tool to count accesses to member variables in c++ programs. [GPL3]
- American fuzzy lop a.k.a. afl-fuzz – Crazy fuzzing tool that automatically discovers bugs given time and minimal example input. [Apache2]
- Argon2 – The password hash Argon2, winner of PHC. [CC0/Apache2]
- AsmJit – Low-latency machine code generation. [Zlib] website
- Better String – 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]
- Boost.Signals2 – An implementation of a managed signals and slots system. [Boost] website
- casacore – A set of c++ core libraries derived from aips++. [LGPL]
- CCTZ – a C++ library for translating between absolute and civil times using the rules of a time zone. [Apache-2.0]
- Cheat Sheets of HackingCPP – Cool cheat sheets and infographics for algorithms, views, containers, randomness, etc.
- Concord – A Discord API wrapper library written in C. [MIT] website
- CPPItertools – Range-based for loop add-ons inspired by the Python builtins and itertools library. [BSD-2-Clause]
- CPP-JWT – JSON Web Token library for C++. [MIT]
- cpp-lazy – a fast and easy lazy evaluation library for C++11/14/17/20. [MIT]
- CRCpp – Easy to use and fast C++ CRC library. [BSD-3-Clause]
- cxx-prettyprint – A pretty printing library for C++ containers. [Boost]
- date – A date and time library based on the C++11/14/17 header. [MIT] website
- D++ (DPP) – A lightweight, high performance and scalable C++ library for creating Discord Bots. [Apache2] website
- Dragonbox – Reference implementation of a new float-to-string conversion algorithm in C++. [Apache2/BSL-1.0]
- DynaMix – A library which allows you to compose and modify objects at run time. [MIT]
- emio – A safe and fast high-level and low-level character input/output library. [MIT]
- faker-cxx – C++20 Faker library for generating fake (but realistic) data for testing and development. [MIT]
- fast_float – Fast, Exact C++ from_chars, 4x to 10x faster than strtod, part of GCC 12, Chromium, Redis, Webkit/Safari. [Apache2/BSL-1.0/MIT]
- FastFormat – Fast, Safe C++ Formatting inspired by log4j and Pantheios. [Simplified BSD]
- fast_io – Significantly faster input/output for C++20. [MIT]
- fccf – A command-line tool that recursively searches a directory to find C/C++ source code matching a search string. [MIT]
- {fmt} ⚡ – Small, safe and fast formatting library for C++. [Simplified BSD] website
- gcc-poison – A simple header file for developers to ban unsafe C/C++ functions from applications.
- Gear-Lib – A collection of basic libraries in POSIX C for embedded and network service development. [MIT]
- happly – A C++ header-only parser for the PLY file format. Parse .ply happily! [MIT]
- hedley – A C/C++ header file designed to smooth over some platform-specific annoyances. website
- Hexi – Header-only, lightweight C++ library for binary streaming & serialization. [Apache-2.0/MIT]
- HighwayHash – Fast strong hash functions: SipHash/HighwayHash. [Apache-2.0]
- inja – A Template Engine for Modern C++. [MIT]
- Jinja2С++ – almost full-conformance template engine implementation. website
- jwt-cpp – A header only library for creating and validating JSON web tokens in C++. [MIT]
- Kangaru – A dependency injection container for C++11 and C++14. [MIT]
- Klib – Small and lightweight implementations of common algorithms and data structures. [MIT]
- KOMIHASH – Very fast, high-quality hash function, discrete-incremental and streamed hashing-capable. [MIT]
- libcpuid – A small C library for x86 CPU detection and feature extraction. [BSD]
- libenvpp – A modern C++ library for type-safe environment variable parsing. [Apache-2.0]
- libevil – The Evil License Manager. [GPLv3]
- libnih – A lightweight library of C functions and structures. [GPL2.1]
- libONVIF – Yet another ONVIF library. [GPL-3.0]
- libpopcnt – Fast C/C++ bit population count library. [BSD-2-Clause]
- libsigc++ – A typesafe callback system for standard C++. [LGPL] website
- libusb – A universal USB library which allows for portable access to USB devices. [LGPL2]
- Mach7 – A Pattern-matching library for C++. [BSD]
- minja.hpp – A minimalistic C++ Jinja templating engine for LLM chat templates. [MIT]
- mio – Cross-platform C++11 header-only library for memory mapped file IO. [MIT]
- MPark.Variant – C++17
std::variantfor C++11/14/17. [BSL-1.0] - MPH – C++20 [Minimal] Static Perfect Hash library. [MIT]
- Patternia – Providing pattern matching for modern c++. [MIT] website
- PEGTL – The Parsing Expression Grammar Template Library. [MIT]
- Pipes – Pipelines for expressive code on collections in C++. [MIT]
- pprint – Pretty Printer for Modern C++. [MIT]
- pspsdk – An open-source SDK for PSP homebrew development. [BSD/GNU GPL3]
- QtVerbalExpressions – This Qt lib is based off of the C++ VerbalExpressions library. [MIT]
- rain – The fastest 128-bit and 256-bit non-crypto hash, passes all tests, and under 140 source lines of code. [Apache-2.0]
- RapidFuzz – Rapid fuzzy string matching in C++ using the Levenshtein Distance. [MIT] website
- rapidhash – Very fast, high quality, platform-independent hashing algorithm. [BSD-2-Clause]
- Reaction – A lightweight, header-only reactive programming framework leveraging modern C++20 features for building efficient dataflow applications. [MIT]
- Remote Call Framework – Inter-process communication framework for C++. [GPL2/Proprietary]
- reproc – A cross-platform (C99/C++11) process library. [MIT]
- SafetyHook – C++23 procedure hooking library. [BSL-1.0]
- scnlib – scanf for modern C++. [Apache-2.0] website
- Scintilla – A free source code editing component. [MIT]
- SDS – Simple Dynamic Strings library for C. [BSD]
- semver.c – A semver parser and render in ANSI C. [MIT]
- sigslot – C++ Signal/Slot Library. [PublicDomain]
- SIMD Everywhere – Implementations of SIMD instruction sets for systems which don’t natively support them. [MIT]
- SLJIT – Platform independent low-level JIT compiler. [BSD] website
- palacaze/sigslot – A simple, header only, C++14 signal-slots implementation [MIT]
- simdzone – Fast and standards compliant DNS zone parser. [BSD-3-Clause]
- SimpleSignal – High performance C++11 signals. [PublicDomain]
- single_file_libs – C/C++ open-source libraries with minimal dependencies. [Various]
- Stage – Mobile robot simulator. [GPL2]
- stb ⚡ – A range of single-file libraries for C/C++. [PublicDomain]
- stdman – A tool that parses archived HTML files from cppreference and generates groff-formatted manual pages for Unix-based systems. [MIT]
- StringZilla – the Godzilla of string libraries, splitting, sorting, and shuffling large textual datasets faster than you can say “Tokyo Tower”. [Apache-2.0]
- StrTk – A C++ library consisting of high performance string processing routines. [MIT]
- tgbotxx – Telegram Bot C++ Library. [MIT]
- The RaBitQ Library – A lightweight library for the RaBitQ algorithm. [Apache-2.0] website
- tiny::optional – Replacement for std::optional that does not waste memory unnecessarily. [BSL-1.0]
- Tulip Indicators – A C library of over 100 financial technical analysis indicators. [LGPL]
- ub-canaries – A collection of C/C++ programs that try to get compilers to exploit undefined behavior.
- value-category-cheatsheet A PDF cheatsheet for lvalues, rvalues, and the like. [Jank copyleft]
- VarTypes – A feature-rich, object-oriented framework for managing variables in C++ / Qt4. [LGPL]
- Wildcards – A simple C++ header-only template library implementing matching using wildcards. [BSL-1.0]
- xjb – A fast float to string algorithm. [Apache-2.0]
- xxHash – Extremely fast non-cryptographic hash algorithm. [BSD-2-Clause] website
- xxhash_cpp – Port of the xxhash library to C++17. [BSD-2-Clause]
- ZBar – A barcode scanner library, which allows to scan photos/images/video streams for barcodes and return their value. [LGPL2]
- ZXing – An open-source, multi-format 1D/2D barcode image processing library implemented in Java, with ports to other languages. [Apache]
- spy – A C++17 constexpr library for detecting OS, compiler, architecture, and SIMD at compile time. [MIT]
- licensepp – A software license management library for C++ projects. [Apache-2.0]
- tinydir – A lightweight, portable, and easy to integrate C directory and file reader. [BSD-2-Clause]
- Cello – Higher level programming in C, including generic data structures and polymorphism. [BSD-2-Clause] website
- dyno – A C++ library for runtime polymorphism with value semantics. [Boost]
- PolyHook – A C++ x86/x64 hooking library. [MIT]
- Verdigris – A header-only library that allows using Qt without the need for moc. [MIT]
- Flicks – A unit of time defined by Facebook/Oculus for exact representation of common frame rates. [BSD]
- Linq – Provides a LINQ syntax for list comprehension in C++. [Boost]
- libcorrect – A C library for convolutional codes and Reed-Solomon error correction. [BSD-3-Clause]
- libfsm – A library for building and executing finite state machines, including regex and glob. [BSD-2-Clause]
- origin – A C++ library for concepts, diagnostics, and other foundational utilities.
Software
Software for creating a development environment.
Compiler
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 fanatically compatible memory-safe implementation of C and C++.
- GCC – GNU Compiler Collection. Supports C++11/14/1z C11 and OpenMP. [GNU GPL3]
- PCC – A very old C compiler. Supports C99.
- AMD C++ Compiler – Developed by AMD.
- Intel C++ Compiler – Developed by Intel.
- LLVM – Collection of modular and reusable compiler and toolchain technologies.
- Microsoft Visual C++ – MSVC, developed by Microsoft.
- Open WatCom – Watcom C, C++, and Fortran cross compilers and tools. [Sybase Open Watcom Public License]
- Oracle Solaris Studio – C, C++ and Fortran compiler for SPARC and x86. Supports C++11. Available on Linux and Solaris. [OTN Developer License]
- TCC – Tiny C Compiler. [LGPL]
- sierra – A CISC-oriented programming language focused on creating maintainable programs.
- movfuscator – The single instruction C compiler, compiling programs into only mov instructions. [MIT]
Online Compiler
List of online C or C++ compilers
- codechef – A simple online compiler CodeChef.
- coliru – Online compiler/shell with support for various C++ compilers.
- Compiler Explorer – An interactive compiler with assembly output available.
- CompileOnline – Compile and Execute C++ online on Linux.
- Ideone – An online compiler and debugging tool which allows you to compile source code and execute it online in more than 60 programming languages.
- OneCompiler – An online compiler supporting over 70 programming languages and database systems.
- Programiz – An online compiler for learners and developers.
- repl.it – A powerful yet simple tools and platforms for educators, learners, and developers.
- Rextester – Online compiler which provides several compilers(Clang, GCC, MSVC) and several editors.
- Try It Online – TIO is a family of online interpreters for an evergrowing list of practical and recreational programming languages.
- Wandbox – An online Clang/GCC compiler with Boost available.
- paiza.io – An online C/C++ compiler with multiple files supporting feature, GitHub(gist) integration and collaborative editing.
- InterviewBit – A simple and easy to use online C++ compiler.
Debugger
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 the MDB metadebugger.
- Valgrind – A tool for memory debugging, memory leak detection, and profiling.
- x64dbg – An open-source x64/x32 debugger for windows.
Integrated Development Environment
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 and C++ IDE based on Eclipse CDT with additional plug-ins.
- CLion – Cross-platform C and C++ IDE from JetBrains.
- Code::Blocks – A free C, C++ and Fortran IDE.
- CodeLite – Another cross-platform, free C and C++ IDE. [GPL2 with an exception for plugins]
- color_coded – A vim plugin for libclang-based highlighting. [MIT]
- Dev-C++ – A portable C/C++/C++11 IDE.
- Eclipse CDT – A fully functional C and C++ IDE based on the Eclipse platform.
- Embarcadero Dev-CPP – A fork of Dev-C++ that comes preinstalled with new themes and modern compilers. [GPLv2] website
- Geany – Small, fast, cross-platform IDE. [GPL]
- IBM VisualAge – A family of computer integrated development environments from IBM.
- Irony-mode – A C/C++ minor mode for Emacs powered by libclang.
- juCi++ – Cross-platform, lightweight C++ IDE with libclang integration. [MIT]
- KDevelop – A free, open source IDE.
- Microsoft Visual Studio – An IDE from Microsoft.
- Microsoft Visual Studio Code ⚡ – An open-source IDE from Microsoft. [MIT] website
- NetBeans – An IDE for developing primarily with Java, but also with other languages, in particular PHP, C/C++, and HTML5.
- Qt Creator ⚡ – A cross-platform C++, JavaScript and QML IDE which is part of the SDK for Qt. [GPL3 with exceptions] website
- rtags – A c/c++ client/server indexer with for integration with emacs based on clang.
- Xcode – Developed by Apple.
- YouCompleteMe – YouCompleteMe is a fast, as-you-type, fuzzy-search code completion engine for Vim.
- cquery – A C++ code completion engine for vscode, emacs, vim, etc.
- C Playground – Online C Programming IDE – An online IDE to practice C Programming where you can write, edit, and run code online.
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 clang tooling. [GPLv3]
- Buck – 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]
- build2 – cross-platform build, packaging and dependency management toolchain for developing and packaging C/C++ projects. [MIT]
- Ccache – A fast C/C++ compiler cache. [GPLv3]
- clib – Package manager for the C programming language. [MIT]
- CMake – Cross-platform free and open-source software for managing the build process of software using a compiler-independent method. [BSD]
- Cget – Cmake package retrieval. [Boost] website
- Conan – C/C++ Package Manager, open sourced. [MIT]
- CPM – A C++ Package Manager based on CMake and Git.
- FASTBuild – High performance, open-source build system supporting highly scalable compilation, caching and network distribution.
- Hunter – CMake driven cross-platform package manager for C++. [BSD-2]
- MesonBuild – An open source build system meant to be both extremely fast, and, even more importantly, as user friendly as possible.
- Ninja – A small build system with a focus on speed.
- Sccache – A fast compiler cache for C/C++, with cross-platform support and cloud backed storage options.
- Scons – A software construction tool configured with a Python script.
- Sconsolidator – Scons build system integration for Eclipse CDT.
- Spack – A flexible package manager that supports multiple versions, configurations, platforms, and compilers. [Apache-2.0/MIT]
- SW – Cross-platform C++ (and other langs) Build System and Package Manager with a lot of packages available. [GPLv3]
- tundra – High-performance code build system designed to give the best possible incremental build times even for very large software projects.
- tup – File-based build system that monitors in the background for changed files.
- Premake – 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.
- Vcpkg – C++ library manager for Windows, Linux, and MacOS. [MIT]
- waf – Python-based framework for configuring, compiling and installing applications. [BSD] website
- XMake – A C/C++ cross-platform build utility based on Lua that comes with an integrated package manager, xrepo. [Apache]
- boost-cmake – CMake modules for Boost libraries. [BSD-3-Clause]
- cmake-examples – A collection of useful CMake examples for various scenarios. [MIT]
Static Code Analysis
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 visualizing code dependencies, by defining design rules, by doing impact analysis, and comparing different versions of the code.
- cpplint – A C++ style checker following Google’s C++ style guide.
- PVS-Studio – A tool for bug detection in the source code of programs, written in C, C++ and C#.
- 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
- 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
- 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.
- IKOS – Static analyzer for C/C++ based on the theory of Abstract Interpretation. [NOSA 1.3]
- List of tools for static code analysis – A list of tools for static code analysis from Wikipedia.
- OptView2 – Inspect missed Clang optimizations.
- Trunk – Toolkit to check, test, merge, and monitor code.
- 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]
Coding Style Tools
- Artistic Style – A tool to format C/C++/C#/Obj-C/Java code. Also known as astyle.
- ClangFormat – A tool to format C/C++/Obj-C code.
- Clang-Tidy – Clang-based C++ linter tool.
- EditorConfig – EditorConfig helps maintain consistent coding styles across different editors and IDEs.
- Uncrustify – Code beautifier.
Resources
Various resources, such as books, websites, and articles for improving your C++ development skills and knowledge.
API Design
Articles
Fantastic C++ related articles.
- CppCon 2023 Presentation Materials – CppCon 2023 Presentation Materials.
- CppCon 2022 Presentation Materials – CppCon 2022 Presentation Materials.
- CppCon 2021 Presentation Materials – CppCon 2021 Presentation Materials.
- CppCon 2020 Presentation Materials – CppCon 2020 Presentation Materials.
- CppCon 2019 Presentation Materials – CppCon 2019 Presentation Materials.
- CppCon 2018 Presentation Materials – CppCon 2018 Presentation Materials.
- CppCon 2017 Presentation Materials – CppCon 2017 Presentation Materials.
- CppCon 2016 Presentation Materials – CppCon 2016 Presentation Materials.
- CppCon 2015 Presentation Materials – CppCon 2015 Presentation Materials.
- CppCon 2014 Presentation Materials – CppCon 2014 Presentation Materials.
- C++Now 2023 Presentations – Presentation materials presented at C++Now 2023.
- C++Now 2022 Presentations – Presentation materials presented at C++Now 2022.
- C++Now 2021 Presentations – Presentation materials presented at C++Now 2021.
- C++Now 2019 Presentations – Presentation materials presented at C++Now 2019.
- C++Now 2018 Presentations – Presentation materials presented at C++Now 2018.
- C++Now 2017 Presentations – Presentation materials presented at C++Now 2017.
- C++Now 2016 Presentations – Presentation materials presented at C++Now 2016.
- C++Now 2015 Presentations – Presentation materials presented at C++Now 2015.
- C++Now 2014 Presentations – Presentation materials presented at C++Now 2014.
- C++Now 2013 Presentations – Presentation materials presented at C++Now 2013.
- C++Now 2012 Presentations – Presentation materials presented at C++Now 2012.
- cpp17_in_TTs – Descriptions of C++17 features, presented mostly in “Tony Tables”.
- All C++20 core language features with examples – A reference of all C++20 core language features with examples.
- Memory Footprint of GUI Toolkits – A comparison of the memory footprint of various GUI toolkits.
- C++ UI Libraries – A comprehensive list of C++ UI solutions.
- C++ Compilation – A short description of the C++ compilation process.
- Books on C++17 – A list of books on C++17.
- modern-cpp-features – A cheatsheet of modern C++ language and library features.
- Choosing Some C++ Over C – An article about when to use C++ instead of C.
- C++ 17 Features – A comprehensive list of C++17 features.
- Master C Programming with Open Source Books – A curated list of open source books for learning C programming.
Books
Fantastic C or C++ related books.
- List of Free C or C++ Books
- Free C Books – vhf/free-programming-books/C.
- Free C++ Books – vhf/free-programming-books/C++.
- Practical Guide to Bare Metal C++
- cppbestpractices – Collaborative Collection of C++ Best Practices.
Coding Standards
Coding Style
- C++ Core Guidelines – “Official” set of C++ guidelines, reviewed by the author of C++.
- C++ Dos and Don’ts – The Chromium Projects > For Developers > Coding Style > C++ Dos and Don’ts.
- google-styleguide – Style guides for Google-originated open-source projects.
- Google C++ Style Guide
- GNU Coding Standard
- Linux kernel coding style
- LLVM Coding Standards
Podcasts
- CppCast – The first podcast by C++ developers for C++ developers.
- CppChat – A (sometimes) weekly look at what’s going on in the world of C++ chatting with a guest from the community.
Talks
- C++ Conferences – Catalog of C++ conferences
- CppCon Talks ⚡ – The C++ conference.
- Quick game development with C++11/C++14 – CppCon 2014 talk by Vittorio Romeo.
- Presentation on Hana for C++Now 2015
- Meeting Cpp – Meeting C++ YouTube Channel
Videos
Fantastic C or C++ related 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++ 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.
- Code for Yourself C++ Playlist – A complete C++ course covering everything from fundamentals to software design.
Websites
Useful C or C++ related websites.
- Standard C++ ⚡ – News, Status & Discussion about Standard C++.
- Build Bench – Compare C++ Builds.
- Quick Bench – Quick C++ Benchmarks.
- CppCon – The C++ Conference.
- C++ reference – A complete online reference for the C and C++ languages and standard libraries.
- cppstat – A site that lists C++ features and their support by compilers and standard library implementations in an accessible way.
- 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 的挑战——PVS-Studio 的 C++ 测验,要求你找出开源项目代码片段中的错误。
- Udemy C++ 课程和教程
- C++技巧– PVS-Studio团队每天都会提供关于最常见的C++错误及其解决方法的技巧。
- C++教程– 一个由用户排名的在线教程库网站,提供多种C++学习课程。
- C++ 初学者教程– 由训练有素的专家精心编写的 C++ 综合教程。
- cppexpert.online – 通过改进存在问题或不良实践的代码片段,学习最佳 C++ 实践。
- 自学 C++ – 一本涵盖从基础知识到软件设计的现代 C++ 综合教程。
- CompileBytes C++ 编译器– 在线 C++ 编译器和交互式代码执行环境。
- C++ 资源– C++ 资源的集合,包括书籍、文章和工具。
- CppPatterns – 现代 C++ 模式和惯用法的存储库。网站
- 函数指针– 理解 C/C++ 中的函数指针指南。
博客
有用的 C 或 C++ 相关博客。
- 速度编码– 速度编码 DOT COM,执行时间更短。
- 埃里克·尼布勒
- 粘性部分
- Paul Fultz II 的博客
- 荒谬的鱼– 它会优化吗?
- 嵌入学术界
- 简化 C++
- 流利的 C++
- Bartek 的编程博客
- 肯尼·克尔
- 萨特磨坊
- Vorbrodt 的 C++ 博客
- foonathan::blog()
- C++ 团队博客– 来自微软 Visual C++ 团队的开发博客
其他精彩项目
收集了一些实用的代码、片段……
- 算法– C++ 中的算法和数据结构。
- c-algorithms – C 算法库。
- 30 秒 C++
- awesome-ld-preload – 与 LD_PRELOAD 相关的精选资源列表。
- awesome-static-analysis – 一个精选的适用于所有编程语言的静态分析工具列表。
- cpp_functional_programming – C++ 函数式编程的相关资料和链接列表。
- algorithms_and_data_structures – 用 C++ 实现算法和数据结构。
其他精彩列表
其他精彩绝伦的列表
- 列表– GitHub 上精选的(优秀)列表列表。
- awesome-awesomeness – 精选的超棒事物列表。
- 超棒⚡ – 精选的超棒列表。
- C++链接– C++资源分类列表。
- 超棒的 C++ – LibHunt 的镜像。
- 超棒的 C 1
- 超棒的C 2
- 超棒的现代 C++ – 现代 C++ 资源合集。
- AwesomePerfCpp – 精选的 C/C++ 性能优化资源列表。
- 免费编程书籍– 免费编程书籍列表。
- Inqlude – Qt 库存档。
- papers-we-love – 来自计算机科学界的论文,供您阅读和讨论。
- awesome-algorithms – 一个精选的学习和/或练习算法的好去处列表。
- awesome-hpp – 一个精选的仅包含头文件的优秀 C++ 库列表。
- awesome-talks – 大量屏幕录像、用户组会议录像和会议演讲。
- 项目– 一份实用项目列表,任何人都可以使用任何编程语言解决这些项目。
- 超棒的面试题– 最热门技术(包括 C 和 C++)的面试题列表。
- nothings/single_file_libs ⚡ – 单文件 C/C++ 库列表。
工作机会
- 此列表目前为空,但您可以通过提交合并请求来添加内容。
赞助商
- 如果您有兴趣赞助此代码库,请与我们联系。贵公司的名称和徽标将在此处显著展示。
贡献
请快速浏览一下贡献指南了解详情。感谢所有贡献者,你们太棒了!
如果您发现此处有项目或链接已停止维护或不再适用,请提交 pull request 以改进本文档。谢谢!
关于
精选的优秀 C++(或 C)框架、库、资源和实用工具列表。灵感源自各种精彩内容。
fffaraz.github.io/awesome-cpp/
主题
c 列表 c++ 列表 惊人的 cpp 图书馆 资源 超棒列表 cppcon cpp库 编程教程
资源
执照
贡献
星星
观察者
叉子
发布
暂无发布版本
赞助此项目
Packages
No packages published
Contributors438
页脚
页脚导航
请勿泄露我的个人信息
管理 Cookie