写点什么

C++ 资源大全:标准库、Web 框架、人工智能等 | 最全整理

  • 2024-05-11
    福建
  • 本文字数:21966 字

    阅读完需:约 72 分钟

标准库


C++标准库,包括了 STL 容器,算法和函数等。



框架


C++通用框架和库


  • abseil-cpp: Abseil C++ 通用库。

  • Apache C++ Standard Library: 是一系列算法,容器,迭代器和其他基本组件的集合。

  • APR: Apache 可移植运行时库。另一个跨平台的库。

  • ASL: Adobe 源代码库提供了同行的评审和可移植的 C++ 源代码库。

  • Boost: 大量通用 C++ 库的集合。

  • BDE: 来自于彭博资讯实验室的开发环境。

  • Cinder: 提供专业品质创造性编码的开源开发社区。

  • CO - C++基础库,包含 go-style 协程库,日志库, JSON 库, RPC 框架以及其他基本组件。

  • Cxxomfort: 轻量级的,只包含头文件的库,将 C++ 11 的一些新特性移植到 C++03 中。

  • Dlib: 使用契约式编程和现代 C++ 科技设计的通用的跨平台的 C++ 库。

  • EASTL: EA-STL 公共部分。

  • ETL: 嵌入式模板库。

  • ffead-cpp: 企业应用程序开发框架。

  • Folly: 由 Facebook 开发和使用的开源 C++库。

  • FunctionalPlus: C++ 的函数式编程库,编写简洁易读的 C++代码。

  • GLib: GLib 提供用 C 编写的库和应用的核心代码块。

  • JUCE: 包罗万象的 C++类库,用于开发跨平台软件。

  • Kigs framework: C++免费开源的模块化、多功能、跨平台的 RAD 框架。

  • libPhenom: 用于构建高性能和高度可扩展性系统的事件框架。

  • LibSourcey: 用于实时的视频流和高性能网络应用程序的 C++11 evented IO。

  • LibU: C 语言写的多平台工具库。

  • Loki: C++库的设计,包括常见的设计模式和习语的实现。

  • MiLi: 只含头文件的小型 C++库。

  • openFrameworks: 开发 C++工具包,用于创意性编码。

  • Qt: 跨平台的应用程序和用户界面框架。

  • Reason: 跨平台的框架,使开发者能够更容易地使用 Java,.Net 和 Python,同时也满足了他们对 C++性能和优势的需求。

  • ROOT: 具备所有功能的一系列面向对象的框架,能够非常高效地处理和分析大量的数据,为欧洲原子能研究机构所用。

  • STLport: 是 STL 具有代表性的版本。

  • STXXL: 用于额外的大型数据集的标准模板库。

  • tbox: 类似于 glib 的多平台 C 库。

  • Ultimate++: C++跨平台快速应用程序开发框架。

  • uSTL: 小型 STL 库。

  • Windows Template Library: 用于开发 Windows 应用程序和 UI 组件的 C++库。

  • Yomm2: 快速的、正交的、开放的 multi-methods,取代Yomm11


人工智能


  • ANNetGPGPU: 基于 GPU(CUDA)的人工神经网络库。

  • btsk: 游戏行为树启动器工具。

  • Evolving Objects: 基于模板的,ANSI C++演化计算库,能够帮助你非常快速地编写出自己的随机优化算法。

  • frugally-deep: 使用 Keras 模型的 C++库,只有头文件。

  • Genann: 简单的神经网络 C 库。

  • MXNet: 轻量级、便携、灵活的分布式/移动深度学习,具有动态、可感知突变的数据流管理调度程序。适用于 Python、R、Julia、Scala、Go、Javascript 和更多网站。

  • PyTorch: 具有强大 CPU 加速功能,包含张量和动态神经网络的 Python 库。

  • Recast/Detour: (3D)导航网格生成器和路径查找,主要用于游戏。

  • TensorFlow: 使用数据流图进行数值计算的开源软件库。

  • CNTK: Microsoft Cognitive Toolkit (CNTK),开源的深度学习工具库。

  • tiny-dnn: C++11 中的无依赖项的深度学习框架,只有头文件。

  • Veles: 用于快速深度学习应用开发的分布式平台。

  • Kaldi: 语音识别工具包。


异步事件循环


  • Asio: 用于网络和底层 I/O 编程的跨平台 C++ 库,使用现代 C++ 方法为开发者提供一致的异步模型。

  • Boost.Asio: 用于网络和底层 I/O 编程的跨平台的 C++ 库。

  • C++ Actor Framework: C++中 Actor Model 的开源实现。

  • libev: 功能齐全,高性能的时间循环,轻微地仿效 libevent,但是不再像 libevent 一样有局限性,也修复了它的一些 bug。

  • libevent: 事件通知库。

  • libhv: 跨平台的事件循环库。

  • libuv: 跨平台异步 I/O。

  • promise-cpp: 实现 Promise/A+标准的库,只有头文件。

  • uvw: libuv 的 C++封装器。


音频


音频,声音,音乐,数字化音乐库


  • AudioFile: 用于读写音频文件的简单 C++库。

  • FMOD: 易于使用的跨平台的音频引擎和音频内容的游戏创作工具。

  • KFR: 快速、现代的 C++ DSP 框架,FFT、FIR/IIR 滤波器,和采样率转换。

  • LAME: LAME 是高质量 MPEG 音频第三层(MP3)编码器。

  • libsndfile: C++封装的 C 库,用于通过标准库接口读写包含采样声音的文件。

  • libsoundio: 用于跨平台实时音频输入输出的 C 库。

  • Maximilian: C++音频和音乐数字信号处理库。

  • OpenAL: 开源音频库---跨平台的音频 API。

  • miniaudio: 单文件音频回放和录制的库。

  • Opus: 一个完全开放的,免版税的,高度通用的音频编解码器。

  • PortAudio: 免费的、跨平台的、开源的音频 I/O 库。

  • SELA: SimplIE 无损音频。

  • SoLoud: 简单便携的游戏音频引擎。

  • Speex: 免费编解码器,为 Opus 所废弃。

  • Tonic: C++易用和高效的音频合成。

  • Vorbis: Ogg Vorbis 是一种完全开放的,非专有的,免版税的通用压缩音频格式。

  • minimp3: 公共域,无尘室实现的 MP3 解码器,只有头文件。

  • Verovio: 快速、轻量级的音乐符号雕刻库。

  • Wav2Letter++: 公共域,完全用 C++编写的快速开放源代码的语音处理库,同时使用 ArrayFire 张量库和 flashlight 机器学习库来实现最高的效率。


生态学


生物信息,基因组学和生物技术


  • BioC++: 生物信息学的 C++计算库。

  • Chaste: 开放源代码的 C++库,用于为生理学和生物学开发的数学模型的计算仿真。

  • libsequence: 用于表示和分析群体遗传学数据的 C++库。

  • SeqAn: 专注于生物数据序列分析的算法和数据结构。

  • Vcflib: 用于解析和处理 VCF 文件的 C++库。

  • Wham: 直接把联想测试应用到 BAM 文件的基因结构变异。


比特流


  • jech/dht: C 实现的比特流分布式哈希表库。

  • libtorrent(a.k.a. libtorrent-rasterbar): 高效的、功能完整的 C++比特流实现。

  • LibTorrent (a.k.a. libtorrent-rakshasa): 比特流库。

  • libutp: uTorrent 传输协议库。


化学


化学,地球化学,生物化学


  • d-SEAMS: 具有 Nix 的 C++和 Lua 实现的分子动力学轨道分析引擎,它是分子模拟的递延结构分析的首字母缩写。

  • gromacs: 传递消息的并行分子动力学实现。

  • Reaktoro: C++和 python 中用于对化学反应系统进行建模的计算框架。

  • LAMMPS: 经典的用于材料建模的分子动力学代码,它是大范围原子/分子巨量平行模拟器的首字母缩写。


命令行界面


控制台/终端用户界面,命令行界面


  • Argh!: 极简的只有头文件的参数处理程序。

  • Taywee / args: 简单的只有头文件的 C++参数解析库。

  • Boost.Program_options: 通过常见的方法,例如命令行和配置文件,来获取程序选择项的库。

  • Clara: 用于 C++11 及更高版本的易于使用、可组合的命令行解析器。

  • cli: 用于交互式命令行界面的跨平台的 C++14 库,只有头文件。

  • CLI11: 单文件或多文件的 C++11 库,用于简单和高级的 CLI 解析,只有头文件。

  • jarro2783/cxxopts: 轻量级的 C++命令行选项解析器。

  • docopt.cpp: 从文档字符串生成选项解析的库。

  • gflags: C++的命令行标志模块。

  • indicators: 现代 C++的活动指标。

  • linenoise: readline 和 libedit 的独立小选择。

  • linenoise-ng: 用于 Linux、Windows 和 MacOS 的小型便携式 GNU readline 替换,它能够处理 UTF-8 字符。

  • Lyra: 易于使用的、可组合的命令行解析器,适用于 C++11 及更高版本。

  • Ncurses: 终端用户界面。

  • PDCurses: 具有源代码和预编译库的公共域 curses 库。

  • replxx: 支持 UTF-8、语法高亮、提示的 readline 和 libedit 替换,可在 Unix 和 Windows 上工作。

  • tabulate: 现代 C++的表格制作工具。

  • TCLAP: 用于在 ANSI C++中定义和访问命令行参数的成熟、稳定、功能多样的库。

  • termbox: 用于编写基于文本的用户界面的 C 库。


压缩


压缩和归档库


  • bit7z: C++静态库,提供与 7-zip DLLs 的简洁接口。

  • Brotli: Brotli 压缩格式,由 Google 开发。

  • bzip2: 一个完全免费,免费专利和高质量的数据压缩。

  • FiniteStateEntropy: 新一代熵编解码器: 有限状态熵和 Huff()。

  • PhysicsFS: 对各种归档提供抽象访问的库,主要用于视频游戏,设计灵感部分来自于 Quake3 的文件子系统。

  • KArchive: 用于创建,读写和操作文件档案(例如 zip 和 tar)的库,它通过 QIODevice 的一系列子类,使用 gzip 格式,提供了透明的压缩和解压缩的数据。

  • libarchive: 多格式的存档和压缩库。

  • LZ4: 非常快速的压缩算法。

  • LZFSE: LZFSE 压缩库和命令行工具。

  • LZHAM: 无损压缩数据库,压缩比率跟 LZMA 接近,但是解压缩速度却要快得多。

  • LZMA: 7z 格式默认和通用的压缩方法。

  • LZMAT: 极其快速的实时无损数据压缩库。

  • miniz: 单一的 C 源文件,紧缩/膨胀压缩库,使用 zlib 兼容 API,ZIP 归档读写,PNG 写方式。

  • Minizip: Zlib 最新 bug 修复,支持 PKWARE 磁盘跨越,AES 加密和 IO 缓冲。

  • smaz: 小型字符压缩库。

  • Snappy: 快速压缩和解压缩。

  • ZLib: 非常紧凑的数据流压缩库。

  • zlib-ng: 用于“下一代”系统的 zlib,将一些重要的优化进行嵌入式替换。

  • zstd: Zstandard-快速实时压缩算法。由 Facebook 开发。

  • ZZIPlib: 提供 ZIP 归档的读权限。


并发性


并发执行和多线程


  • alpaka: 并行内核加速的抽象库。

  • ArrayFire: 通用 GPU 库。

  • Async++: C++ 11 的轻量级并行框架,受 Microsoft PPL 库和 N3428 C++标准提案启发。

  • Boost.Compute: 用于 OpenCL 的 C++GPU 计算库。

  • Bolt: 针对 GPU 进行优化的 C++模板库。

  • ck: 并发基元,安全内存回收机制和非阻塞数据结构。

  • concurrentqueue: C++11 的快速多生产者、多消费者的无锁并发队列。

  • Cpp-Taskflow: 具有任务依赖性的快速 C++并行编程。

  • CUB: CUB 为 CUDA 编程模式的每一层提供了最新的可重用软件组件。

  • cuda-api-wrappers: 轻量级的现代 C++封装器,用于 CUDA GPU 的运行时 API 编程。

  • cupla: 通过 Alpaka 在 OpenMPA、线程、TBB……运行 CUDA/C++的 C++ API。

  • C++React: 用于 C++11 的反应性编程库。

  • FiberTaskingLib: 基于任务的多线程库,支持具有任意依赖关系的任务图表。

  • HPX: 适用于任何规模的并行分布式应用的通用 C++运行时系统。

  • Intel Games Task Scheduler: 为了游戏开发者的需要而设计的任务调度框架。

  • Intel Parallel STL: C++ 17 STL 的英特尔实现,适用于 C++11 及更高版本。

  • Intel TBB: 英特尔线程构建模块。

  • junction: 并发数据结构的 C++库。

  • Kokkos: 用于并行运行和内存抽象的便携式编程模型。

  • libcds: 并行数据结构的 C++库。

  • Libclsph: 基于 OpenCL 的 GPU 加速 SPH 流体仿真库。

  • libmill: 在 C 中引入结构并发性。

  • libdispatch: Apple 公司开发的 Grand Central Dispatch(GCD)是基于线程池模式的任务并行技术。libdispatch 库提供了 GCD 服务的实现。

  • libmill: 在 C 中引入 Go-style 并发性。

  • marl: Marl 是用 C++11 编写的混合线程/纤程的任务调度程序。

  • moderngpu: moderngpu 是用于 GPUs 通用计算的生产力库,它只有为 CUDA 编写的 C++头文件。该库的独特价值在于其用于解决不规则并行问题的加速基元。

  • NCCL: 用于集体多 GPU 通信的优化基元。

  • OpenCL: 并行编程的异构系统的开放标准。

  • OpenMP: OpenMP API。

  • SObjectizer: 实现 Actor、Publish-Subscribe 和 CSP 模式的相当小的 C++框架。

  • Quantum: 建立在boost::coroutines2顶层的强大的 C++协同调度程序框架。

  • RaftLib: RaftLib C++ 库,通过类似 iostream 的 C++ 运算符实现流/数据流并发性。

  • readerwriterqueue: C++的快速单生产者、单消费者的无锁队列。

  • stdgpu: GPU 上高效的类似 STL 的数据结构。

  • Thrust: 类似于 C++标准模板库的并行算法库。

  • transwarp: 任务并发性的 C++库,只有头文件。

  • VexCL: 用于 OpenCL/CUDA 的 C++向量表达式模板库。

  • Quantum: 建立在boost::coroutines2顶层的强大的 C++协同调度程序框架。

  • STAPL: C++并行编程框架,旨在工作在共享和分布式内存并行电脑上。


配置


配置文件,INI 文件


  • inih: C 语言的简单.INI 文件解析器,很适合嵌入式系统。

  • inihinih的 C++版本,只有头文件。

  • iniparser: INI 文件解析器。

  • libconfig: 用于处理结构化配置文件的 C、C++库。

  • libconfuse: C 的小型配置文件解析库。

  • simpleini: 跨平台的 C++库,提供用于读写 INI 配置文件的简单 API。

  • toml++: TOML 解析器和串化器,适用于 C++17 及更高版本,只有头文件。


容器


  • C++ B-tree: 基于 B 树数据结构,实现命令内存容器的模板库。

  • Colony: 无序的”bag“型容器,在高度修改的情况下,其性能优于标准容器。同时,无论插入还是擦除,其都能始终保持指向未擦除元素的永久指针。

  • dynamic_bitset: C++17 的动态位集合,只有头文件。

  • Forest: 实现了 AVL、二进制搜索、KD 和四叉树的模板库。

  • Hashmaps: C++中开放寻址哈希表算法的实现。

  • Hopscotch map: 使用 hopscotch 哈希算法来实现冲突解决的快速哈希映射,只有头文件。

  • LSHBOX: 局部敏感算法(LSH)的 C++工具箱,提供了好几种普遍的 LSH 算法,也可以支持 Python 和 MATLAB。

  • PGM-index: 能够快速查找、前导、范围搜索和更新数以亿计项数组的数据结构,其跟传统索引相比,使用梯度的顺序而不是空间。

  • plf::list: std::list 实现,其清除范围拼接以启用缓存友好的结构,从而显著提高性能。

  • plf::stack: std::stack 容器适配器的替换容器,其在堆栈上下文中比任何标准容器都有更好的性能。

  • ring_span lite: Arthur O'Dwyer 的 ring_span 的简化实现,例如循环缓冲视图。

  • robin-hood-hashing: 用于 C++1 的快速、节约内存的哈希表,基于 robin hood 哈希算法。

  • robin-map: 使用 robin hood 哈希算法的哈希映射和哈希集。

  • sparsepp: 用于 C++的快速、节约内存的哈希映射。


密码学


密码学和加密库


  • Bcrypt: 一个跨平台的文件加密工具,加密文件可以移植到所有可支持的操作系统和处理器中。

  • BeeCrypt: 可移植和快速的加密库。

  • Botan: C++加密库。

  • Crypto++: 一个有关加密方案的免费的 C++库。

  • digestpp: C++11 的信息摘要(哈希)库,只有头文件。

  • GnuPG: OpenPGP 标准的完整和免费实现。

  • GnuTLS: 实现了 SSL,TLS 和 DTLS 协议的安全通信库。

  • Libgcrypt: 通用的密码库,最初基于 CnuPG 的代码。

  • LibreSSL: 免费的 SSL/TLS 协议,属于 2014 OpenSSL 的一个分支。

  • libsodium: 基于 NaCI 的加密库,固执己见,容易使用。

  • libhydrogen: 轻量级、安全、易于使用的加密库,适用于受限的环境。

  • LibTomCrypt: 相当全面、模块化和可移植的加密工具包。

  • mbedTLS: 开源的、可移植的、易于使用的、可读的、灵活的 SSL 库,以前被称为 PolarSSL。

  • Nettle 底层的加密库。

  • OpenSSL: 一个健壮的,商用的,功能齐全的,开源的加密库。

  • retter: 与哈希函数、密码、工具、库和材料相关的密码学集合。

  • s2n: TLS/SSL 协议的实现。

  • sha1collisiondetection: 用于检测文件中 SHA-1 冲突的库和命令行工具。

  • Tink: 多语言、跨平台的库,提供安全、易于正确使用且难以滥用的加密 API。

  • Tiny AES in C: C 中小型可移植的 AES128/192/256。

  • Themis: 用于无痛数据安全的加密库,为移动和服务器平台提供对称和非对称加密,具有向前保密性的安全套接字。


CSV


用于解析逗号分隔值(CSV)文件的库


  • csv2: 现代 C++的快速 CSV 解析器。

  • Fast C++ CSV Parser: 用于读取 CSV 文件的小型、易于使用和快速的库,只包含头文件。

  • Vince's CSV Parser: 快速、独立、流式的 C++17 CSV 解析器,具有可选的类型转换和统计信息。


数据库


数据库,SQL 服务器,ODBC 驱动程序和工具


  • hiberlite: 用于 Sqlite3 的 C++对象关系映射。

  • Hiredis: 用于 Redis 数据库的很简单的 C 客户端库。

  • LevelDB: 由 Google 编写的快速键值存储库,提供了从字符键到字符串值的有序映射。

  • LMDB: 符合数据库四大基本元素的嵌入键值存储。

  • LMDB++: LMDB 嵌入式数据库的 C++11 封装器。

  • MongoDB C Driver: C 的 MongoDB 客户端库。

  • MongoDB C++ Driver: MongDB 的 C++驱动程序。

  • MongoDB Libbson: BSON 实用库。

  • MySQL++: 封装了 MySql 的 C API 的 C++ 封装器。

  • nanodbc: 用于本机 C ODBC API 的小型 C++封装器。

  • ODB: C++的开源、跨平台、跨数据库的对象关系映射(ORM)系统。

  • redis3m: 使用干净 C++接口的 hiredis 封装器,支持标记和现成的模式。

  • RocksDB: 来自 Facebook 的嵌入键值的快速存储。

  • SimDB: 高性能、共享内存、无锁、跨平台、单文件、最小依赖的 C++11 键值存储。

  • SOCI: C++的数据库抽象层。

  • SQLite: 一个完全嵌入式的,功能齐全的关系数据库,只有几百 KB,可以正确包含到你的项目中。

  • SQLiteC++: SQLiteC++ (SQLiteCpp)是聪明且易于使用的 C++ SQLite3 封装器。

  • sqlite_modern_cpp: sqlite 库的 C++14 封装器,只有头文件。

  • sqlite_orm: 适用于现代 C++的 SQLite ORM 轻量库,只有头文件。

  • sqlpp11: 用于 SQL 查询和在 C++产生结果的类型安全的嵌入式域特定语言。

  • TileDB: 快速密集和稀疏多维数组 DBMS。

  • UnQLite: 独立、无服务器、零配置的事物型 NoSQL 引擎。

  • upscaledb: 具有内置查询接口的嵌入式“typed”键值存储。


调试


调试库, 内存和资源泄露检测,单元测试


  • backward-cpp: C++的漂亮堆栈轨迹打印机。

  • benchmark: Google 提供的小型微基准支持库。

  • Boost.Test: Boost 测试库。

  • check: C 的单元测试框架。

  • doctest: 功能最轻便的单个 C++头文件的测试框架。

  • Catch: 一个很时尚的,C++原生的框架,只包含头文件,用于单元测试,测试驱动开发和行为驱动开发。

  • Catch2: 一个很时尚的,C++原生的框架,只包含头文件,用于单元测试,测试驱动开发和行为驱动开发。

  • Celero: C++基准测试框架。

  • CppUTest: C/C++的单元测试和模拟框架。

  • CUTE: 更容易的 C++单元测试。

  • CMocka: 支持模拟对象的 C 单元测试框架。

  • CppUnit: 由 JUnit 移植过来的 C++测试框架。

  • CTest: CMake 测试驱动程序。

  • dbg-macro: C++的 dbg(……)宏。

  • Deleaker: 用于资源泄露检查的工具,包括内存、GDI 和处理泄露。

  • fff: 创建伪 C 函数的微框架。

  • Google Mock: 编写和使用 C++模拟类的库。

  • Google Test: Google 的 C++测试框架。

  • ig-debugheap: 用于追踪内存错误的多平台调试堆。

  • libtap: 用 C 语言编写测试。

  • MemTrack: 用于 C++跟踪内存分配。

  • microprofile: 跨平台的网络视图分析器。

  • minUnit: 使用 C 写的最小的单元测试框架,包含在单个头文件中。

  • Mockator: 用于 C++缝合和模拟对象的 Eclipse CDT 插件。

  • Nanotimer: 用于基准测试的简单、低开销、跨平台的定时器类。

  • Nonius: C++微基准测试框架。

  • Remotery: 用于 Web 视图的单一 C 文件分析器。

  • UnitTest++: 轻量级的 C++单元测试框架。

  • Unity: C 的简单单元测试。

  • utest.h: C 和 C++的单个头文件测试框架。

  • μt: C++20 的单头文件/单模块、无宏的μ(微型)/单元测试框架。

  • VLD: 微软测漏仪,Visual C++的免费、健壮、开源的内存泄漏检测系统。


字体


解析和处理字体文件的库。


  • Fontconfig: 字体配置和自定义库。

  • FreeType: 用于渲染字体的免费、可获得的软件库。

  • otfcc: 用于解析和编写 OpenType 字体文件的 C 库和实用程序。


游戏引擎


  • Acid: 高速的 C++17 Vulkan 游戏引擎。

  • Allegro: 主要用于视频游戏和多媒体编程的跨平台库。

  • Cocos2d-x: 用于构建 2D 游戏、交互式书籍、演示和其它图形应用程序的多平台框架。

  • Corange: 用纯 C、SDL、OpenGL 编写的游戏引擎。

  • Crown: Crown 是一款通用的数据驱动游戏引擎,使用正统 C++从零开始编写,并牢记简约和面向数据的设计理念。

  • delta3d: 健壮的仿真平台。

  • EnTT: 游戏与现代 C++的碰撞。

  • GamePlay: 用于创建 2D/3D 移动和桌面游戏的跨平台本机 C++游戏框架。

  • Godot: 功能齐全、开源、有 MIT 许可的游戏引擎。

  • Grit: 社区项目,用于构建一个免费的游戏引擎,实现开放的世界 3D 游戏。

  • Halley: 用 C++14 编写的轻量级游戏引擎,带有“真实的”实体组件系统。

  • KlayGE: 具有基于插件架构的跨平台、开源的游戏引擎。

  • nCine: 注重性能的跨平台 2D 游戏引擎,用 C++11 编写,还可以选择使用 Lua 编写脚本。

  • OpenXRay: 在 S.T.A.L.K.E.R.游戏系列中使用的社群修改的 X 射线引擎。

  • Oxygine: 跨平台的 2D C++游戏引擎。

  • Panda3D: 游戏引擎,用于 Python 和 C++程序的 3D 渲染和游戏开发的框架。

  • PixelGameEngine: olcPixelGameEngine 的官方发行版,该工具用于 javidx9 的 YouTube 视频和项目。

  • Polycode: C++实现的用于创建游戏的开源框架(与 Lua 绑定)。

  • raylib: 简单、易于使用的库,用于享受视频游戏编程的乐趣。

  • Spring: 强大、免费、跨平台的 RTS 游戏引擎。

  • Torque2D: 为 2D 游戏开发构建的开源、跨平台 C++引擎。

  • Torque3D: 为 3D 游戏开发构建的开源 C++引擎。

  • toy engine: toy 是一个轻量的模块化的 C++ 游戏引擎,并提供简单的、有表现力的 C++惯用法来快速迭代设计功能齐全的 2D 和 3D 游戏。

  • Urho3D: C++实现的免费、轻量级、跨平台的 2D 和 3D 游戏引擎,受到 OGRE 和 Horde3D 很大的启发。


图形用户界面


图形用户界面


  • Boden: 本机、移动、跨平台的 GUI 框架。

  • CEGUI: 灵活的跨平台 GUI 库。

  • Elements: 轻量级、细粒度、分辨率无关的模块化 GUI 库。

  • FLTK: 快速,轻量级的跨平台的 C++GUI 工具包。

  • GacUI: GPU 加速的 C++用户界面,具有所见即所得的开发工具,支持 XML,具有内置数据绑定和 MVVM 功能。

  • GTK+: 用于创建图形用户界面的多平台工具包。

  • gtkmm: 用于受欢迎的 GUI 库 GTK+的官方 C++接口。

  • imgui: 拥有最小依赖关系的即时模式图形用户界面。

  • implot: imgui 的即时模式绘图控件。

  • iup: 构建图形用户界面的多平台工具包。

  • libui: C 中简单、可移植(但是不灵活)的 GUI 库,使用其支持的每一种平台的本机 GUI 技术。

  • MyGUI: 快速,灵活,简单的 GUI。

  • nana: Nana 是现代 C++风格的 GUI 编程的跨平台库。

  • NanoGui: 简约、跨平台的控件库,用于 OpenGL 3.x 及更高版本。

  • nuklear: 单个头文件的 ANSI C gui 库。

  • QCustomPlot: 没有更多依赖关系的 Qt 绘图控件。

  • Qwt: 用户与技术应用的 Qt 控件。

  • QwtPlot3D: 功能丰富的基于 Qt/OpenGL 的 C++编程库,本质上提供了一群 3D 控件。

  • RmlUi: 进化的 HTML/CSS 用户界面库,libRocket 的分支。

  • Sciter: Sciter 是可嵌入的 HTML/CSS/脚本语言引擎,旨在用于现代桌面应用程序的 UI 层。

  • wxWidgets C++库,允许开发人员使用一个代码库可以为 widows, Mac OS X,Linux 和其他平台创建应用程序。

  • Yue: 创建本机跨平台 GUI 应用的库。


图形


  • assimp: 开放资产导入库(assimp)是跨平台的 3D 模型导入库,旨在为不同的 3D 资产文件格式提供通用的 API。

  • bgfx: 跨平台的渲染库。

  • Blend2D: 由 JIT 编译器提供技术支持的 2D 矢量图形引擎。

  • bs::framework: 用于实时图形应用开发的现代 C++14 库。

  • Cairo: 支持多种输出设备的 2D 图形库。

  • C-Turtle: 充当 Clmg 封装器的 C++11 turtle 图形库,只有头文件。

  • Diligent Engine: 现代、跨平台、低阶的 3D 图形库。

  • DirectXTK: 用于在 C++中编写 DirectX 11.x 代码的帮助类的集合。

  • GLFW: 简单、跨平台的 OpenGL 处理库。

  • herebedragons: 使用各种引擎、框架或者 API 实现的基本 3D 场景。

  • Horde3D 一个小型的 3D 渲染和动画引擎。

  • Ion: 小型高效的库集合,用于构建使用 3D 图形的跨平台客户端或服务器应用程序。

  • Irrlicht: C++编写的高性能实时 3D 引擎。

  • libigl: 简单的 C++几何处理库。

  • LLGL: 低水平图形库(LLGL)是现代图形 API 的薄抽象层。

  • magnum: 用于游戏和数据可视化的轻量级和模块化的 C++ 11 /C++ 14 图形中间件。

  • NanoVG: OpenGL 之上的抗锯齿 2D 矢量图形库,用于 UI 和可视化。

  • Ogre 3D: 用 C++编写的一个面向场景,实时,灵活的 3D 渲染引擎(并非游戏引擎)。

  • OpenSceneGraph: 具有高性能的开源 3D 图形工具包。

  • OpenSubdiv: Pixar 的库,用于评估和渲染 CPU 和 GPU 上的细分曲面。

  • OpenVDB: 用于存储、编辑、渲染体积数据库的库和工具。

  • Panda3D: 用于 3D 渲染和游戏开发的框架,用 Python 和 C++编写。

  • Partio: 用于处理粒子数据的库,支持大多数常见文件形式。

  • Skia 用于绘制文字,图形和图像的完整的 2D 图形库。

  • TinySpline: 小型但强大的 ANSI C 库,用于差值、转换和查询任意 NURBS、B-样条函数和贝赛尔曲线。

  • urho3d 跨平台的渲染和游戏引擎。

  • Yocto/GL: 用于数据驱动的基于物理图形的微型 C++库。


图像处理


  • Boost.GIL: 通用图像库。

  • CImg: 用于图像处理的小型开源 C++工具包。

  • CxImage: 用于加载,保存,显示和转换的图像处理和转换库,可以处理的图片格式包括 BMP, JPEG, GIF, PNG, TIFF, MNG, ICO, PCX, TGA, WMF, WBMP, JBG, J2K。

  • Dlib: 现代 C++11 的机器学习、计算机视觉、数值优化和深度学习工具包。

  • FreeImage: 开源库,支持现在多媒体应用所需的通用图片格式和其他格式。

  • GD: GD 图形库,有名的用于 PHP 中图形加载/操作和缩略图生成。

  • DCMTK: DICOM 工具包。

  • GDCM: Grassroots DICOM 库。

  • ITK: 跨平台的开源图像分析系统。

  • Leptonica: Leptonica 是一个包含软件的开源库,其广泛应用于图像处理和图形分析应用程序。

  • libfacedetection: 用于图像中人脸检测的开源库,其人脸检测的速度能达到 1500FPS。

  • libjpeg-turbo: 使用 SIMD 指令来加速基线 JPEG 编码和解码的 JPEG 图像编解码器。

  • libvips: 具有低内存需求的快速图像处理库。

  • Magick++: ImageMagick 程序的 C++接口。

  • MagickWnd: ImageMagick 程序的 C++接口。

  • OpenCV: 开源计算机视觉类库。

  • OpenEXR: 具有高动态范围成像的跨平台库。

  • OpenImageIO: 强大的图像和纹理处理库,支持多种常见的有损和 RAW 格式。

  • Simd: 使用 SIMD 的 C++图像处理库: SSE,SSE2,SSE3,SSSE3,SSE4.1,SSE4.2,AVX,AVX2,AVX-512,VMX(Altivec)和 VSX(Power7),NEON for ARM。

  • stb-image: STB 单个头文件的图像加载库。

  • tesseract-ocr: OCR 引擎。

  • TinyEXIF: 用于 JPEG 的微型 ISO 兼容的 C++ EXIF 和 XMP 解析库。

  • Video++: C++ 14 高性能的视频和图像处理库。

  • VIGRA: 用于图像分析通用 C++计算机视觉库。

  • VTK: 用于 3D 计算机图形学,图像处理和可视化的开源免费软件系统。


国际化


  • gettext: GNU `gettext'。

  • IBM ICU: 提供 Unicode 和全球化支持的 C、C++ 和 Java 库。

  • libiconv: 用于不同字符编码之间的编码转换库。

  • utf8.h: C 和 C++的单个头文件的 utf8 字符串函数。

  • utf8proc: 干净的 C 库,用于处理 UTF-8 Unicode 数据。


进程间通信


  • Apache Thrift: 高效的跨语言 IPC/RPC,可在 C++、Java、Python、PHP、C#和许多其它语言之间运行。最初是由 Facebook 开发。

  • Cap'n Proto: 快速的数据交换格式和基于功能的 RPC 系统。

  • eCAL: 发布/订阅,客户端/服务器,C++/Python/C#,各种消息协议(protobuf, capnproto ..)。

  • gRPC: 高性能、开源、通用的 RPC 框架。

  • Ice: 全面的 RPC 框架,支持 C++、C#、Java、JavaScript、Python 等。

  • libjson-rpc-cpp: 用于 C++服务器和客户端的 JSON-RPC 框架。

  • nanomsg: 好几个“可扩展协议”的简单高性能实现。

  • nng: nanomsg 的下一代,轻量级、无代理消息的传递库。

  • rpclib: 现代 C++的 msgpack-RPC 服务器和客户端库。

  • simple-rpc-cpp: C / C++函数的简单 RPC 封装生成器。

  • WAMP: 提供 RPC 和发布/订阅消息传递模式。(各种实现,各种语言)

  • xmlrpc-c: 基于 XML 和 HTTP 的轻量级 RPC 库。


Json


  • Boost.PropertyTree: 属性树解析器/生成器,可用于解析 XML / JSON / INI / Info 文件。

  • cJSON: ANSI C 的超轻量级 JSON 解析器。

  • frozen: C/C++的 Json 解析生成器。

  • Jansson: 进行编解码和处理 Json 数据的 C 语言库。

  • jbson: C++14 中构建和迭代 BSON data 和 Json 文档的库。

  • JeayeSON: 非常健全的 C++ JSON 库,只包含头文件。

  • Jsmn: C 语言中的简约 JSON 解析器。

  • json: 用于现代 C++的 JSON。

  • JSON++: C++的 JSON 解析器。

  • json.h: 在 C 和 C++中解析 JSON 的简单的单头文件/单源文件的解决方案。

  • json-c: C 中的 JSON 实现。

  • jsoncons: 使用 JSONPointer、JSONPatch、JSONPath 和 JMESPath 的 JSON 和类似 JSON 二进制格式的 C++库,只有头文件。

  • JsonCpp: 可与 JSON 交互的 C++库。

  • json-parser: 用可移植的 ANSI C 编写的 JSON 解析器,占用内存非常少。

  • json11: 一个迷你的 C++11 JSON 库。

  • json-voorhees: C++的 JSON 库。支持 C++ 11,无依赖关系,快速且对开发人员友好。

  • jute: 非常简单的 C++ JSON 解析器。

  • ibjson: C 语言中的 JSON 解析和打印库,很容易和任何模型集成。。

  • libjson: 轻量级的 JSON 库。

  • LIBUCL: 通用配置库解析器。

  • parson: 用 C 编写的轻量级的 JSON 库。

  • PicoJSON: C++中 JSON 解析序列化,只包含头文件。

  • qt-json: 用于 JSON 数据和 QVariant 层次间的相互解析的简单类。

  • QJson: 将 JSON 数据映射到 QVariant 对象的基于 Qt 的库。

  • RapidJSON: 用于 C++的快速 JSON 解析生成器,包含 SAX 和 DOM 两种风格的 API。

  • sajson: 用于 C++ 11 的轻量级、高性能的 JSON 解析器。

  • simdjson: 极快的 JSON 库,可以千兆字节每秒的速度解析 JSON。

  • taoJSON: 零依赖的 C++JSON 库,只包含头文件。

  • ujson: µjson 是一个小型、C++ 11、UTF-8、JSON 的库。

  • YAJL: C 语言中快速流 JSON 解析库。


日志


  • Blackhole: 基于属性的日志框架,旨在快速、模块化和高度可定制。

  • Boost.Log: 设计非常模块化,并且具有扩展性。

  • Easylogging++: 适用于 C++ 11(或更高版本)应用程序的超轻量级、高性能的日志库。

  • G3log: 具有动态接收模块的异步记录器。

  • glog: Google 日志模块的 C++实现。

  • Log4cpp: C++类库,用于灵活地添加日志到文件,系统日志,IDSA 和其他地方。

  • log4cplus: 易于使用的 C++日志 API,可提供对日志管理和配置的线程安全、灵活且任意粒度的控制。

  • loguru: 轻量级的 C++日志库。

  • plog: C++可移植且简单的日志,少于 1000 行代码。

  • reckless: C++低延迟、高吞吐量、异步的日志库。

  • spdlog: 超级快的 C++日志库,只包含头文件。

  • templog: 小型、轻量级的 C++ 库,可以添加日志到你的 C++应用程序中。

  • P7Baical: 开源、跨平台的库,用于在最小限度使用 CPU 和内存的情况下高速发送遥测和跟踪数据。

  • Quill: 异步、跨平台、低时延的日志库。


机器学习


  • Caffe: 快速的神经网络框架。

  • CCV: 基于 C /缓存/核心的计算机视觉库,现代计算机视觉库。

  • darknet: 用 C 和 CUDA 编写的开源神经网络框架。

  • Dlib: 现代 C++ 11 的机器学习、计算机视觉、数值优化和深度学习的工具包。

  • Fido: 用于嵌入式电子和机器人技术的高度模块化的 C++机器学习库。

  • flashlight: 来自 Facebook AI 研究中心的快速、灵活的机器学习库,其完全用 C++编写,基于 ArrayFire 张量库。

  • libsvm: 支持向量机的简单、易用、高效的库。

  • MeTA: 现代 C++的数据科学工具包。

  • Minerva: 快速、灵活的深度学习系统。

  • mlpack: 可扩展的 C++机器学习库。

  • OpenCV: 开源计算机视觉库。

  • Recommender: 使用协同过滤进行产品推荐/建议的 C 语言库。

  • RNNLIB: RNNLIB 是用于序列学习问题的递归神经网络库。

  • SHOGUN: Shogun 机器学习工具。

  • sofia-ml: 用于机器学习的快速增量算法套件。

  • VLFeat: VLFeat 开源库实现了流行的计算机视觉算法,这些算法专门用于图像理解以及局部特征提取和匹配。

  • xgboost: 用于 Python、R、Java、Scala、C++等的可扩展、便携式和分布式梯度增强(GBDT,GBRT 或 GBM)的库。在单机、Hadoop、Spark、Flink 和 DataFlow 上运行。


数学


  • Apophenia: 用于统计和科学计算的 C 库。

  • Armadillo: 用于线性代数和科学计算的快速 C++库。

  • autodiff: 用于自动微分的现代、快速且富有表现力的 C++库。

  • blaze: 高性能的 C++数学库,用于密集和稀疏算法。

  • Boost.Multiprecision: 在 C++中提供更高范围/精度的整数、有理数和浮点数类型,只包含头文件或者在 GMP / MPFR / LibTomMath 后端。

  • ceres-solver: 来自谷歌的 C++库,用于建模和解决大型复杂非线性最小平方问题。

  • CGAL: 高效,可靠的几何算法集合。

  • cml: 用于游戏和图形的免费 C++数学库。

  • Dlib: 现代 C++11 的机器学习、计算机视觉、数值优化和深度学习工具包。

  • Eigen: 高级 C++模板头文件库,包括线性代数,矩阵,向量操作,数值解决和其他相关的算法。

  • ExprTK: C++数学表达式工具包库(ExprTk)是一个易于使用、易于集成且非常高效的运行时数学表达式解析器和评估引擎。

  • Geometric Tools: 用于数学、图形、图像分析和物理学领域计算的 C++库。

  • GLM: 只包含头文件的 C++数学库,可与 OpenGL 的 GLSL 数学匹配并互操作。

  • GMTL: 数学图形模板库是一组广泛实现基本图形的工具。

  • GMP: 用于个高精度计算的 C/C++库,处理有符号整数,有理数和浮点数。

  • Klein: 快速、SIMD 优化的 C++ 17 几何代数库,用于点、线和平面投影、相交、连接、刚体运动等。

  • linalg.h: C++的单头文件、公共域、短向量数学库。

  • MIRACL: 多精度整数和有理数算法加密库。

  • muparser: muParser 是用 C++编写的可扩展、高性能的数学表达式解析库。

  • LibTomMath: 完全用 C 编写的免费、开源、可移植的数论多精度整数库。

  • linmath.h: 精益线性数学库,主要用于图形编程。

  • lp_solve: 用于制定和解决线性编程问题的库。

  • OpenBLAS: 基于 GotoBLAS2 1.13 BSD 版本的优化 BLAS 库。

  • QuantLibv: 用于计量金融的免费/开源库。

  • StatsLib: 统计分布函数的 C++库,只包含头文件。

  • SymEngine: 快速符号处理库,用 C++重写了 SymPy 的核心。

  • TinyExpr: 用于解析和评估字符串中的数学表达式的 C 库。

  • Vc: C++的 SIMD 矢量类。

  • Versor: (快速的)几何代数的通用 C++库,包括欧几里得、投影,保角、时空等。

  • Wykobi: 高效、健壮且易于使用的 C++库,面向 C++ 2D / 3D 的计算几何例程。

  • xtensor: 受 NumPy 语法启发的 C++ 14 库,用于使用多维数组表达式进行数值分析。

  • universal: 只包含头文件的 C++ 14 库,实现任意假定算数。假定数值系统是一个锥形浮点,比 IEEE 浮点更有效。假定数使可复现的计算科学成为可能。


内存分配


  • Boehm GC: C 和 C++的保守的垃圾回收器。

  • C Smart Pointers: (GNU)C 编程语言的智能指针。

  • Hoard: 快速、可扩展和节约内存的 Malloc,支持 Linux、Windows 和 Mac。

  • jemalloc: 通用的 malloc(3)实现,强调避免存储碎片和可扩展的并发支持。

  • memory: 兼容 STL 的 C++内存分配器库。

  • memory-allocators: 自定义内存分配器,可提高动态内存分配的性能。

  • mimalloc: 具有出色性能的紧凑型通用分配器。

  • tgc: 用 ~500 LOC 编写的 C 语言微型垃圾回收器。


多媒体


  • GStreamer: 构建媒体处理组件图形的库。

  • libass: ASS / SSA 字幕格式的便携式字幕渲染器。

  • libass: 处理多媒体内容(例如音频、视频、字幕和相关元数据)的库和工具的集合。

  • LIVE555 Streaming Media: 使用开放标准协议(RTP/RTCP, RTSP, SIP) 的多媒体流库。

  • libVLC: libVLC (VLC SDK)媒体框架。

  • MediaInfoLib: 用于视频和音频文件中最相关的技术和标签数据的方便统一显示。

  • QtAv: 基于 Qt 和 FFmpeg 的多媒体播放框架,能够帮助你轻而易举地编写出一个播放器。

  • SDL: 简单直控媒体层。

  • SFML: 快速,简单的多媒体库。

  • TagLib: 用于读取和编辑几种流行音频格式的元数据的库。


网络


  • ACE: C++面向对象网络编程工具包。

  • Boost.Asio: 用于网络和底层 I/O 编程的跨平台的 C++库。

  • Boost.Beast: 在 C++ 11 中基于 Boost.Asio 构建的 HTTP 和 WebSocket。

  • Breep: 基于事件的高级 C++ 14 点对点库。

  • C++ REST SDK: C++ REST SDK(以前称为 Casablanca)。

  • Restbed: C++ 11 异步 RESTful 框架。

  • Restinio: 只有头文件的 C++ 14 库,为您提供嵌入式 HTTP / Websocket 服务器。

  • c-ares: 用于异步 DNS 请求的 C 库。

  • cpp-httplib: 单文件的 C++ 11 HTTP / HTTPS 服务器库,只包含头文件。

  • cpp-netlib: 高级网络编程的开源库集合。

  • cpp-netlib/uri: C++的 URI 解析器/生成器库,与 RFC 3986 和 RFC 3987 兼容。

  • cpr: 现代 C++ HTTP 请求库,具有简单但功能强大的接口。模仿 Python Requests 模块。

  • curlcpp: CURL(libcurl)的面向对象 C++封装器。

  • DPDK: 用于快速打包处理的数据平面开发工具、库和驱动程序。

  • Dyad.c: C 的异步网络。

  • ENet: 可靠的 UDP 网络库。

  • evpp: 具有 TCP / UDP / HTTP 协议的 C++高性能网络。

  • H2O: 优化的 HTTP 服务器,支持 HTTP / 1.x 和 HTTP / 2。它也可以用作库。

  • HTTP Parser: C 的 http 请求/响应解析器。

  • KCP: 快速、可靠的 ARQ 协议,可帮助应用程序减少网络延迟。

  • libcurl: 多协议文件传输库。

  • libhttpserver: 用于创建嵌入式 Rest HTTP 服务器(以及更多)的 C++库。

  • Libmicrohttpd: GNU libmicrohttpd 是一个小型 C 库,可以轻松地将 HTTP 服务器作为另一个应用程序的一部分运行。

  • libpcap: 用于网络流量捕获的可移植 C / C++库。

  • libquic: 从 Chromium 的 QUIC 实现中提取的 QUIC 协议库。

  • librdkafka: 用于 C 和 C++的 Apache Kafka 客户端库。

  • libwebsockets: 提供客户端和服务器库的轻量级纯 C WebSocket 实现。

  • lwIP: 轻量级 TCP / IP 堆栈。

  • Mongoose非常轻量级的网络服务器。

  • MQTT-C: 适用于嵌入式系统和类 PC 机的便携式 MQTT C 客户端。

  • mTCP: 用于多核系统的高度可扩展的用户级 TCP 堆栈。

  • Muduo: 用于 Linux 多线程服务器的 C++非阻塞网络库。

  • nghttp2: HTTP / 2 C 库。

  • Onion: C 语言 HTTP 服务器库,其设计为轻量级,易使用。

  • PF_RING™: 高速打包处理框架。

  • PicoHTTPParser: 微小、原始、快速的 HTTP 请求/响应解析器。

  • POCO: 用于构建网络和基于互联网应用程序的 C++类库,可以运行在桌面,服务器,移动和嵌入式系统。

  • Proxygen: Facebook 的 C++ HTTP 库集合,包括易于使用的 HTTP 服务器。

  • RakNet: 为游戏开发人员提供的跨平台的开源 C++网络引擎。

  • restclient-cpp: 用于 C++的简单 REST 客户端。它包装 libcurl 用于 HTTP 请求。

  • Seasocks: 具有 WebSockets 支持的简单、小型的 C++嵌入式 Web 服务器。

  • Silicon: 高性能、面向中间件的 C++ 14 http Web 框架。

  • tlse: 单个 C 文件的 TLS 1.2 / 1.3 实现,使用 tomcrypt 作为加密库。

  • Tufão: 基于 Qt 构建的 C++异步 Web 框架。

  • uriparser: 严格符合 RFC 3986 的 URI 解析和处理库。

  • uWebSockets: µWS 是最轻量级、高效和可伸缩的 WebSocket 和 HTTP 服务器的实现之一。

  • WAFer: 基于 C 语言的超轻型软件平台,用于可扩展的服务器端和网络应用。为 C 程序员考虑了 node.js。

  • Wangle: 客户端/服务器应用程序框架,用于构建异步的、事件驱动的现代 C++服务。

  • wdt: 可嵌入式库(和命令行工具),旨在通过多个 TCP 路径尽可能快地在 2 个系统之间传输数据。

  • WebSocket++: 基于 C++/Boost Aiso 的 websocket 客户端/服务器库。

  • PcapPlusPlus: 跨平台的 C++网络嗅探以及数据包解析和构建的框架。

  • ZeroMQ: 高速,模块化的异步通信库。


PDF


解析和处理 PDF 文档的库。


  • libharu: 免费、跨平台、开源的软件库,用于生成 PDF。

  • litePDF: 创建和编辑 PDF 文档的库,它通过设备上下文使用 GDI 功能来绘制页面内容。

  • MuPDF: 轻量级的 PDF、XPS 和电子书查看器。

  • PoDoFo: 使用 PDF 文件格式的库。

  • Poppler: 基于 xpdf-3.0 代码库的开源、多后端的 PDF 渲染库。

  • Xpdf: Xpdf 是一款免费的 PDF 查看器和工具包,包括文本提取器、图像转换器、HTML 转换器等。

  • DynaPDF: 易于使用的 PDF 生成库。


物理学


动力学仿真引擎


  • Box2D: 2D 的游戏物理引擎。

  • Bullet: 3D 的游戏物理引擎。

  • Chipmunk: 快速、轻量级的 2D 游戏物理库。

  • LiquidFun: 2D 的游戏物理引擎。

  • Newton Dynamics: 用于物理环境实时仿真的集成解决方案。

  • ODE: 开放动力学引擎-开源,高性能库,模拟刚体动力学。

  • ofxBox2d: Box2D 开源框架包装器。

  • PhysX: Nvidia 开发的开源的实时物理引擎中间件 SDK,作为 Nvidia GameWorks 软件套件的一部分。

  • Project Chrono: 开源的多物理场仿真引擎。

  • Quantum++: 现代的 C++ 11 量子计算库。

  • Simbody: 高性能 C++多体动力学/物理库,模拟关节生物力学和机械系统,像车辆,机器人和人体骨骼。

  • SOFA: SOFA 是一个针对实时仿真的开源框架,其着重于医学仿真。


映射


  • Better Enums: 映射的枚举类型(字符串、迭代)。单个头文件。

  • clReflect: 使用 clang 的 C++映射。

  • CPFG: 用于反射、回调和脚本绑定的 C++ 03 库。

  • CPP-Reflection: 使用 clang 的 C++映射。

  • Magic Enum: 只包含头文件的的 C++ 17 库,为枚举类型(字符串、迭代)提供静态映射,可与任何枚举类型一起使用,无需任何宏或样板代码。

  • magic_get: 类似 std: : tuple 的方法,用于用户定义类型,无需任何宏或样板代码。

  • meta: C++的非侵入性且无宏的运行时映射系统,只包含头文件。

  • Nameof: 只包含头文件的的 C++ 17 库,提供名称宏和函数以获取变量、类型、函数、宏和枚举的简单名称。

  • Ponder: C++11 的映射库。

  • RTTR: C++11 的映射库。

  • visit_struct: C++中用于结构域映射的微型库。


正则表达式


  • CppVerbalExpressions: C++正则表达式专家。

  • CTRE: 编译时 PCRE(几乎)兼容的正则表达式匹配器。

  • Hyperscan: Hyperscan 是 Intel 的高性能、多种正则表达式匹配库,提供大量正则表达式(多达数万个)的同时匹配,通常在 DPI 库堆栈中使用。

  • Oniguruma: 现代且灵活的正则表达式库,支持多种字符编码。

  • PCRE: 受 Perl 中正则表达式功能启发的正则表达式 C 库。

  • PIRE: Yandex 的 Perl 不兼容正则表达式库,可以非常快(超过 400 MB / s)。

  • RE2: 使用自动机理论、通过有限状态机进行的正则表达式软件库。

  • SLRE: 适用于 C / C++的超轻正则表达式引擎。

  • sregex: 基于 NFA / DFA 的 Perl 兼容的正则表达式引擎库,不可回溯,可与大型数据流进行匹配。


机器人学


  • MOOS-IvP: 一组开源 C++模块,提供机器人平台的自主权,尤其是自主的海洋车辆。

  • MRPT: 移动机器人编程工具包。

  • PCL: 点云库是一个独立的,大规模的开放项目,用于 2D/3D 图像和点云处理。

  • Robotics Library (RL): 一个独立的 C++库,包括机器人动力学,运动规划和控制。

  • RobWork: 一组 C++库的集合,用于机器人系统的仿真和控制。

  • ROS: 机器人操作系统,提供了一些库和工具帮助软件开发人员创建机器人应用程序。


科学计算


  • AMGCL: 只包含头文件的 C++库,用于解决具有代数多重网格的大型稀疏线性系统。

  • FFTW: 用一维或者多维计算 DFT 的 C 语言库。

  • GSL: GNU 科学库。

  • TileDB: 快速密集和稀疏多维数组的 DBMS。

  • Trilinos: 高性能的 PDE 解算器。

  • Torch: 科学的计算框架,广泛支持将 GPU 放在首位的机器学习算法。


脚本


  • AngelScript: AngelScript 是一种面向游戏的解释/编译脚本语言。

  • Boost.Python: 可实现 C++和 Python 编程语言之间的无缝互操作性的 C++库。

  • cppimport: 直接从 Python 导入 C++文件!

  • CppSharp: 用于将 C / C++ API 融合到高级语言中的工具和库。

  • ChaiScript: 用于 C++的易于使用的嵌入式脚本语言。

  • ctypes.sh: bash 的外部函数接口。

  • Cython: Cython 是用于 Python 编程语言和扩展的 Cython 编程语言(基于 Pyrex)的优化静态编译器。它使得为 Python 编写 C 扩展就像 Python 本身一样容易。

  • djinni: 生成跨语言类型声明和接口绑定的工具。

  • Duktape: 具有紧凑脚本的嵌入式 Javascript 引擎。

  • JavaCpp: Java 和本机 C++之间缺少的桥梁。

  • libffi: 可移植的外部功能接口库。

  • Lua: 用于配置文件和基本应用程序脚本的小型快速脚本引擎。

  • LuaBridge: 轻量级、无依赖的库,用于将 Lua 绑定到 C++。

  • luacxx: 用于创建 Lua 绑定的 C++ 11 API。

  • nbind: 神奇的头文件,使您的 C++库可从 JavaScript 进行访问。

  • PHP-CPP: 使用 C++构建 PHP 扩展的库。

  • pybind11: C++ 11 和 Python 之间的无缝可操作性。

  • SIP: 用于 Python v2 和 v3 的 C 或 C++绑定生成器。

  • sol2: 具有高级功能和一流性能的 C++ <-> Lua API 封装器。

  • SWIG: 一个可以让你的 C++代码链接到 JavaScript,Perl,PHP,Python,Tcl 和 Ruby 的包装器/接口生成器。

  • V7: 嵌入式的 JavaScript 引擎。

  • V8: 谷歌的快速 JavaScript 引擎,可以被嵌入到任何 C++应用程序中。

  • ChakraCore: Microsoft 的 JavaScript 引擎,可以嵌入到 nodejs 中。


序列化


  • Bitsery: 只包含头文件的 C++二进制序列化库。

  • Bond: 用于处理模式化数据的开源、跨平台框架。

  • Boost.Serialization: Boost 序列化库。

  • Cap'n Proto: 快速数据交换格式和 RPC 系统。

  • cereal: C++11 序列化库。

  • cppcodec: 只包含头文件的 C++ 11 库,具有一致、灵活的 API 来编码/解码 base64,base32 和 hex。

  • FlatBuffers: 内存高效的序列化库。

  • MessagePack: C/C++的高效二进制序列化库,例如 JSON。

  • mrpt-serialization: 已版本控制的二进制或文本格式的序列化。

  • nanopb: ANSI C 中的小型代码大小的协议缓冲区实现。

  • protobuf: 协议缓冲,谷歌的数据交换格式。

  • protobuf-c: C 语言的协议缓冲实现。

  • SimpleBinaryEncoding: 用于低延迟应用程序的对二进制格式的应用程序信息的编码和解码。

  • upb: C 中的小型静态库实现。

  • YAS: 非常快的序列化库,支持二进制/文本/ JSON 格式。


排序


  • pdqsort: 破坏模式的快速排序。

  • Timsort: 模板化的稳定排序功能,其性能优于基于快速排序的算法(包括 std: : sort),用于反向或半排序数据。


视频


  • libvpx: VP8/VP9 编码解码 SDK。

  • FFmpeg: 一个完整的,跨平台的解决方案,用于记录,转换视频和音频流。

  • libde265: 开放的 h.265 视频编解码器的实现。

  • x265: 开放的 H.265 视频编解码器实现。

  • OpenH264: 开源 H.364 编解码器。

  • Theora: 免费开源的视频压缩格式。

  • Vireo: Twitter 的轻量级、多功能的视频处理库。


虚拟机


  • CarpVM: C 中有趣的 VM,让我们一起来看看这个。

  • MicroPython: 旨在实现单片机上 Python3.x 的实现。

  • TinyVM: 用纯粹的 ANSI C 编写的小型,快速,轻量级的虚拟机。


Web 应用框架


  • Civetweb: 提供易于使用,强大的,C/C++嵌入式 Web 服务器,带有可选的 CGI,SSL 和 Lua 支持。

  • C++ REST SDK: 使用现代异步 C++ API 设计、以本机代码进行基于云的客户端-服务器通信的 Microsoft 项目。

  • CppCMS: 免费高性能的 Web 开发框架(不是 CMS).。

  • Crow: 一个 C++微型 web 框架(灵感来自于 Python Flask)。

  • Cutelyst: 在 Qt 上构建的 C++ Web 框架,使用 Catalyst(Perl)框架的简单方法。

  • Drogon: 基于 C++ 14/17 的高性能 HTTP 应用程序框架。

  • facil.io: 事件型、高性能的 C Web 框架,支持 HTTP、WebSocket、SSE 等。

  • Kore: 使用 C 语言开发的用于 web 应用程序的超快速和灵活的 web 服务器/框架。

  • libOnion: 轻量级的库,帮助你使用 C 编程语言创建 web 服务器。

  • lwan: 实验性、可扩展的高性能 HTTP 服务器。

  • oat++: 轻量、零依赖的框架,可创建高性能的 Web 服务。

  • Pistache: Pistache 是一个用纯 C++ 11 编写的 C++ REST 框架,没有外部依赖性。

  • QDjango: 使用 C++编写的,基于 Qt 库的 web 框架,试图效仿 Django API,因此得此名。

  • TreeFrog Framework: 基于 C++和 Qt 的高速、全栈的 Web 应用程序框架,支持 HTTP 和 WebSocket 协议(带有 O / R 映射)。

  • Wt: 开发 Web 应用的 C++库。


XML


XML 就是个垃圾,xml 的解析很烦人,对于计算机它也是个灾难。这种糟糕的东西完全没有存在的理由了。-Linus Torvalds


  • Boost.PropertyTree: 属性树解析器/生成器,可用于解析 XML / JSON / INI / Info 文件。

  • Expat: 用 C 语言编写的 xml 解析库。

  • Libxml2: Gnome 的 xml C 解析器和工具包。

  • libxml++: C++的 xml 解析器。

  • Mini-XML: 用 ANSI C 编写的小型 XML 解析库。

  • PugiXML: 用于 C++的,支持 XPath 的轻量级,简单快速的 XML 解析器。

  • RapidXml: 试图创建最快速的 XML 解析器,同时保持易用性,可移植性和合理的 W3C 兼容性。

  • TinyXML: 简单小型的 C++XML 解析器,可以很容易地集成到其它项目中。

  • TinyXML2: 简单快速的 C++CML 解析器,可以很容易集成到其它项目中。

  • TinyXML++: TinyXML 的一个全新的接口,使用了 C++的许多许多优势,模板,异常和更好的异常处理。

  • Xerces-C++: 用可移植的 C++的子集编写的 XML 验证解析器。


多项混杂


一些有用的库或者工具,但是不适合上面的分类,或者还没有分类。


  • access_profiler: 用于计算对 c ++程序中成员变量的访问的工具。

  • American fuzzy lop: a.k.a. afl-fuzz-疯狂的模糊测试工具,可在给定时间和最少示例输入的情况下自动发现错误。

  • Better String: C 字符串库的替代方法,它功能更强大,并且没有缓冲区溢出超限问题。还包括 C++封装器。

  • Boost.Signals: 托管信号和插槽系统的实现。

  • CPPItertools: 受 Python 内建函数和 itertools 库启发的基于范围的循环附加组件。

  • DynaMix: 允许您在运行时组成和修改对象的库。

  • {fmt}: 小型、安全、快速的 C++格式化库。

  • FastFormat: 受 log4j 和 Pantheios 启发的快速、安全的 C++格式化。

  • C++ Format: C++的小型,安全和快速格式化库。

  • casacore: 从 aips++ 派生的一系列 C++核心库。

  • QtVerbalExpressions: 该 Qt 库基于 C++ VerbalExpressions 库。

  • cxx-prettyprint: 用于 C++容器的打印库。

  • icecream-cpp: 用于调试目的的小型打印库。

  • gcc-poison: 帮助开发人员禁止应用程序中的不安全的 C/C++函数的简单的头文件。

  • Kangaru: 用于 C++ 11 和 C++ 14 的依赖注入容器。

  • Klib: 通用算法和数据结构的小型、轻量级实现。

  • libsigc++: 用于标准 C++的类型安全的回调系统。

  • googlemock: 编写和使用 C++模拟类的库。

  • HTTP Parser: C 的 http 请求/响应解析器。

  • libcpuid: 用于 x86 CPU 检测盒特征提取的小型 C 库。

  • libevil: 许可证管理器

  • libnih: C 函数和结构的轻量级库。

  • libusb: 允许移动访问 USB 设备的通用 USB 库。

  • Mach7: C++的模式匹配库。

  • mio: 用于内存映射文件 IO 的跨平台 C++ 11 库,只包含头文件。

  • PEGTL: 解析表达语法模板库。

  • PCRE: 正则表达式 C 库,灵感来自于 Perl 中正则表达式的功能。

  • Remote Call Framework: C++的进程间通信框架。

  • Scintilla: 开源的代码编辑控件。

  • Serial Communication Library: C++语言编写的跨平台,串口库。

  • SDS: C 的简单动态字符串库。

  • semver.c: semver 解析器,在 ANSI C 中呈现。

  • Serial Communication Library: 跨平台,用 C++编写的串行端口库。

  • sigslot: C++信号/插槽库。

  • SimpleSignal: 高性能 C++ 11 信号。

  • Stage: 移动机器人模拟器。

  • stdman: 格式化的 C++ 11/14 stdlib 手册页(来自 cppreference)。

  • stb: 一系列用于 C / C++的单文件库。

  • StrTk: 由高性能字符串处理例程组成的 C++库。

  • Tulip Indicators: 超过 100 种财务技术分析指标的 C 库。

  • ub-canaries: 一组 C / C++程序,它们试图使编译器开发未定义的行为。

  • value-category-cheatsheet: 用于 lvalue、rvalue 等的 PDF 快捷键管理。

  • VarTypes: C++/Qt4 功能丰富,面向对象的管理变量的框架。

  • ZBar: ‘条形码扫描器’库,可以扫描照片,图片和视频流中的条形码,并返回结果。

  • ZXing: 用 Java 实现的开源、多格式 1D / 2D 条码图像处理库,带有其他语言的端口。

  • pprint: 适用于现代 C++的 Pretty Printer。


软件


用于创建开发环境的软件


编译器


C/C++编译器列表


  • 8cc: 小型 C 编译器。

  • c: 一次编译并执行 C“脚本”!

  • Clang: LLVM 的 C 编译器,支持 C++ 11/14 / 1z C11,由 LLVM 团队开发。

  • GCC: GNU 编译器集合,支持 C++ 11/14 / 1z C11 和 OpenMP。

  • PCC: 非常老的 C 编译器,支持 C99。

  • Intel C++ Compiler: 由英特尔公司开发。

  • LLVM: 模块化和可重用编译器和工具链技术的集合。

  • Microsoft Visual C++: MSVC,由微软公司开发。

  • Open WatCom: Watcom,C,C++和 Fortran 交叉编译器和工具。

  • Oracle Solaris Studio: 适用于 SPARC 和 x86 的 C、C++和 Fortran 编译器,支持 C++ 11 ,在 Linux 和 Solaris 上可用。

  • TCC: 轻量级的 C 语言编译器。


在线编译器


在线 C/C++编译器列表


  • codepad: 在线编译器/解释器,一个简单的协作工具

  • coliru: 在线编译器/ shell,支持各种 C++编译器。

  • Compiler Explorer: 具有编译输出的交互式编译器。

  • CompileOnline: 在 Linux 上在线编译和执行 C++。

  • Ideone: 在线编译器和调试工具,可编译源代码并以 60 多种编程语言在线执行。

  • repl.it: 针对教育者、学习者和开发人员的功能强大而简单的工具和平台。

  • Rextester: 在线编译器,提供几个编译器(Clang,GCC,MSVC)和几个编辑器。

  • Try It Online: TIO 是一系列在线解释器,可用于越来越多的实用和休闲的编程语言。

  • Wandbox: 具有 Boost 的在线 Clang / GCC 编译器。

  • paiza.io: 具有多个文件支持功能、Github(gist)集成和协作编辑的在线 C / C++编译器。


调试器


C/C++调试器列表


  • Comparison of debuggers: 来自维基百科的调试器列表。

  • GDB: GNU 调试器。

  • LLDB: LLDB 调试器。

  • Metashell: 交互式模板元程序设计,其中包括 MDB metadebugger。

  • Valgrind: 内存调试,内存泄露检测,性能分析工具。

  • x64dbg: Windows 的开源 x64 / x32 调试器。


集成开发环境


C/C++集成开发环境列表


  • Anjuta DevStudio: GNOME IDE。

  • AppCode: 构建与 JetBrains’ IntelliJ IDEA 平台上的用于 Objective-C,C,C++,Java 和 Java 开发的集成开发环境。

  • Cevelop: 基于 Eclipse CDT 的跨平台 C 和 C++ IDE,带有其他插件。

  • CLion: 来自 JetBrains 的跨平台的 C/C++的集成开发环境。

  • Code::Blocks: 免费 C,C++和 Fortran 的集成开发环境。

  • CodeLite: 另一个跨平台的免费的 C/C++集成开发环境。

  • color_coded: 用于基于 libclang 的 vim 插件。

  • Dev-C++: 可移植的 C/C++/C++11 集成开发环境。

  • Eclipse CDT: 基于 Eclipse 平台的功能齐全的 C 和 C++集成开发环境。

  • Geany: 轻量级的快速,跨平台的集成开发环境。

  • IBM VisualAge: 来自 IBM 的家庭计算机集成开发环境。

  • Irony-mode: 由 libclang 驱动的用于 Emacs 的 C/C++微模式。

  • KDevelop: 免费开源集成开发环境。

  • Microsoft Visual Studio: 来自微软的集成开发环境。

  • Microsoft Visual Studio Code: Microsoft 提供的开源 IDE。

  • NetBeans: 主要用于 Java 开发的的集成开发环境,也支持其他语言,尤其是 PHP,C/C++和 HTML5。

  • Qt Creator: 跨平台的 C++,Javascript 和 QML 集成开发环境,也是 Qt SDK 的一部分。

  • rtags: C/C++的客户端服务器索引,用于 跟基于 clang 的 emacs 的集成。

  • Xcode: 由苹果公司开发。

  • YouCompleteMe: 一个用于 Vim 的根据你敲的代码快速模糊搜索并进行代码补全的引擎。

  • cquery: 用于 vscode,emacs,vim 等的 C++代码完成引擎。


构建系统


  • Bazel: Google 提供的多语言、快速且可扩展的构建系统。

  • Bear: 用于为 clang 工具生成编译数据库的工具。

  • Buck: 用 Java 编写的快速构建系统,可鼓励在多种平台和语言(包括在 Facebook 开发和使用的 C++)上创建小型、可重用模块。

  • clib: C 语言的软件包管理器。

  • Biicode: 基于文件的简单依赖管理器。

  • CMake: 跨平台的免费开源软件用于管理软件使用独立编译的方法进行构建的过程。

  • Cget: Cmake 软件包检索。

  • Conan: C / C++程序包管理器,开源的。

  • CPM: 基于 CMake 和 Git 的 C++包管理器。

  • FASTBuild: 高性能,开源的构建系统,支持高度可扩展性的编译,缓冲和网络分布。

  • Hunter: CMake 驱动的 C++跨平台软件包管理器。

  • MesonBuild: 开源构建系统,它意味着不仅要非常快,而且更重要的是要尽可能地方便用户使用。

  • Ninja: 专注于速度的小型构建系统。

  • Scons: 使用 Python scipt 配置的软件构建工具。

  • Sconsolidator: 用于 Eclipse CDT 的 Scons 构建系统集成。

  • Spack: 灵活的软件包管理器,支持多个版本、配置、平台和编译器。

  • SW: 跨平台的 C++(和其他语言)构建系统和程序包管理器,其中包含许多可用程序包。

  • tundra: 高性能的代码构建系统,甚至对于非常大型的软件项目,也能提供最好的增量构建次数。

  • tup: 基于文件的构建系统,用于后台监控变化的文件。

  • Premake: 配置有 Lua 脚本的工具,可以在 Windows、Mac OS X 和 Linux 上为 Visual Studio、GNU Make、Xcode、Code::Blocks 等生成项目文件。

  • Vcpkg: Windows,Linux 和 MacOS 的 C++库管理器。

  • waf: 用于配置、编译和安装应用程序的基于 Python 的框架。

  • XMake: 基于 Lua 的 C / C++的跨平台构建实用程序。


静态代码分析


提高质量,减少瑕疵的代码分析工具列表


  • Cppcheck: 静态 C/C++代码分析工具

  • CppDepend: 通过分析和可视化代码依赖关系,定义设计规则,进行影响分析以及比较不同版本的代码,简化了对复杂 C / C++代码库的管理。

  • cpplint: 遵循 Google C++样式指南的 C++样式检查器。

  • PVS-Studio: 用 C、C++和 C#编写的在程序源代码中进行 bug 检测的工具。

  • cpp-dependencies: 检查 C++ #include 依赖关系的工具(以.dot 格式创建的依赖关系图)。

  • include-what-you-use: 使用 clang 进行代码分析的工具,可以 #include 在 C 和 C++文件中。

  • Infer: 用于 Java、C 和 Objective-C 的静态分析器。

  • OCLint: 用于 C、C++和 Objective-C 的静态源代码分析工具,用于提高质量,减少瑕疵。

  • Clang Static Analyzer: 查找 C、C++和 Objective-C 程序 bug 的源代码分析工具。

  • Linticator: Pc-/FlexeLint 的 Eclipse CDT 集成。

  • IKOS: 基于抽象解释理论的 C / C++静态分析器。

  • List of tools for static code analysis: 来自维基百科的静态代码分析工具列表。


编码样式工具


  • Artistic Style: 格式化 C / C++ / C#/ Obj-C / Java 代码的工具。也称为 astyle。

  • ClangFormat: 格式化 C / C++ / Obj-C 代码的工具。

  • Clang-Tidy: 基于 Clang 的 C++ linter 工具。

  • EditorConfig: EditorConfig 帮助在不同的编辑器和 IDE 之间维护一致的编码样式

  • Uncrustify: 代码美化器。


文章转载自:小万哥丶

原文链接:https://www.cnblogs.com/xiaowange/p/18185268

体验地址:http://www.jnpfsoft.com/?from=infoq

用户头像

还未添加个人签名 2023-06-19 加入

还未添加个人简介

评论

发布
暂无评论
C++ 资源大全:标准库、Web框架、人工智能等 | 最全整理_c++_不在线第一只蜗牛_InfoQ写作社区