awesome-cpp 就是 fffaraz
发起维护的 C++ 资源列表,内容包括: 标准库、Web应用框架、人工智能、数据库、图片处理、机器学习、日志、代码分析等。
中文版由开源前哨
和CPP开发者
微信公号团队维护更新,在 GitHub 已有近4400 Star
,欢迎在 Github 上关注。
维护者: 开源前哨
和CPP开发者
微信公号团队。 「开源前哨」会定期在知乎专栏分享最新、有趣和热门的开源项目,每个项目都有详细的介绍和示例。传送门: https://www.zhihu.com/column/c_1317124962785062912
贡献者: cccookieee、JingerJoe、云中游、冰斌、Juliesand、ZZMarquis、颜闽辉、tangyouhua、ShenMian
注: 名单不分排名,不定期补充更新
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++库。
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文件的基因结构变异。
化学,地球化学,生物化学
控制台/终端用户界面,命令行界面
压缩和归档库
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文件解析器,很适合嵌入式系统。
iniparser: INI文件解析器。
libconfig: 用于处理结构化配置文件的C、C++库。
libconfuse: C的小型配置文件解析库。
simpleini: 跨平台的C++库,提供用于读写INI配置文件的简单API。
toml++: TOML解析器和串化器,适用于C++17及更高版本,只有头文件。
密码学和加密库
用于解析逗号分隔值(CSV)文件的库
数据库,SQL服务器,ODBC驱动程序和工具
调试库, 内存和资源泄露检测,单元测试
解析和处理字体文件的库。
图形用户界面
解析和处理PDF文档的库。
动力学仿真引擎
XML就是个垃圾,xml的解析很烦人,对于计算机它也是个灾难。这种糟糕的东西完全没有存在的理由了。-Linus Torvalds
一些有用的库或者工具,但是不适合上面的分类,或者还没有分类。
用于创建开发环境的软件
C/C++编译器列表
在线C/C++编译器列表
C/C++调试器列表
C/C++集成开发环境列表
提高质量,减少瑕疵的代码分析工具列表