c标准库源码分析 C++资源及框架完整合集,推荐合集| 干货信息

概述

我们之前分享过一篇关于 10 个最值得关注的 C 开源项目的文章。 这次我们想分享一个C++框架、库和资源的汇总列表,包括:标准库、Web应用程序框架、人工智能、数据库和图像处理。 、机器学习、日志记录、代码分析等。

标准库

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

C++ 标准库:它是用核心语言编写的类和函数的集合,也是 C++ ISO 标准本身的一部分。

标准模板库:标准模板库

C POSIX 库:POSIX 系统的 C 标准库规范

ISO C++ 标准委员会:C++ 标准委员会

框架

C++通用框架和库

Apache C++ 标准库:是算法、容器、迭代器等基本组件的集合

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

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

BDE:来自彭博信息实验室的开发环境。

Cinder:一个开源开发社区,提供专业品质的创意编码。

Cxxomfort:一个轻量级、仅包含头文件的库,将 C++11 的一些新功能移植到 C++03。

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

EASTL:EA-STL 公共部分

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

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

JUCE:用于开发跨平台软件的综合 C++ 库

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

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

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

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

MiLi:一个小型的纯头文件 C++ 库

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

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

理由:一个跨平台的框架,可以让开发者更轻松地使用Java、.Net和Python,同时也满足他们对C++的性能和优势的需求。

ROOT:一组面向对象的框架,具有非常有效地处理和分析大量数据的所有功能,由 CERN 使用。

STLport:是STL的代表版本

STXXL:用于附加大型数据集的标准模板库。

Ultimate++:C++跨平台快速应用开发框架

Windows 模板库:用于开发 Windows 应用程序和 UI 组件的 C++ 库

Yomm11:为C++11开放多种方法。

人工智能

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

Evolving Objects:基于模板的 ANSI C++ 进化计算库,可以帮助您非常快速地编写自己的随机优化算法。

Neu:C++11 框架、编程语言集合以及用于创建人工智能应用程序的多用途软件系统。

异步事件循环

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

libev:一个功能齐全、高性能的时间循环,稍微模拟了 libevent,但不再具有与 libevent 相同的限制,并且它的一些 bug 已得到修复。

libevent:事件通知库

libuv:跨平台异步 I/O。

声音的

音频、声音、音乐、数字音乐库

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

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

OpenAL:开源音频库——跨平台音频API

Opus:完全开放、免版税、高度通用的音频编解码器

Speex:免费编解码器,已被 Opus 弃用

Tonic:C++ 中易于使用且高效的音频合成

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

生态

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

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

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

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

Wham:将关联测试直接应用于 BAM 文件中的遗传结构变体。

压缩

压缩和归档库

bzip2:完全免费、无专利的高质量数据压缩

doboz:一个能够快速解压的压缩库

PhysicsFS:一个提供对各种档案的抽象访问的库,主要用于视频游戏。 该设计部分受到 Quake3 文件子系统的启发。

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

LZ4:非常快的压缩算法

LZHAM:无损压缩数据库,压缩比接近LZMA,但解压速度快很多。

LZMA:7z 格式的默认且常见的压缩方法。

LZMAT:及其快速实时无损数据压缩库

miniz:单个C源文件,压缩/扩展压缩库,使用zlib兼容API,ZIP压缩包读写,PNG写入方式。

Minizip:Zlib 的最新错误修复,支持 PKWARE 磁盘跨越、AES 加密和 IO 缓冲。

Snappy:快速压缩和解压

ZLib:一个非常紧凑的数据流压缩库

ZZIPlib:提供 ZIP 档案的读取权限。

并发性

并发执行和多线程

Boost.Compute:OpenCL 的 C++ GPU 计算库

Bolt:针对 GPU 优化的 C++ 模板库

C++React:C++11 的反应式编程库

英特尔 TBB:英特尔线程构建模块

Libclsph:基于OpenCL的GPU加速SPH流体模拟库

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

OpenMP:OpenMP API

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

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

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

容器

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

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

密码学

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

蜂巢:

Botan:C++ 密码库

Crypto++:用于加密方案的免费 C++ 库

GnuPG:OpenPGP 标准的完整实现

GnuTLS:实现 SSL、TLS 和 DTLS 协议的安全通信库

Libgcrypt

库加密

LibreSSL:免费 SSL/TLS 协议,2014 OpenSSL 的分支

LibTomCrypt:一个非常全面、模块化、便携式的加密工具

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

Nettle的底层加密库

OpenSSL:一个强大的、商业的、功能齐全的开源加密库。

Tiny AES128 in C:用 C 实现的 AES128ESB 加密算法的小型、可移植实现

数据库

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

hiberlite:Sqlite3 的 C++ 对象关系映射

Hiredis:一个非常简单的 Redis 数据库 C 客户端库

LevelDB:快速键值存储

LMDB:符合数据库四个基本元素的嵌入式键值存储

MySQL++:一个C++包装器,封装了MySql的C API

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

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

调试

调试库、内存和资源泄漏检测、单元测试

Boost.Test:Boost测试库

Catch:一个非常时尚的 C++ 原生框架c标准库源码分析,仅包含头文件,用于单元测试、测试驱动开发和行为驱动开发。

CppUnit:从 JUnit 移植的 C++ 测试框架

CTest:CMake 测试驱动程序

googletest:Google C++ 测试框架

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

libtap:用 C 编写测试

MemTrack—用于跟踪 C++ 中的内存分配

microprofile – 跨平台网络尝试分析器

minUnit:用 C 编写的迷你单元测试框架,仅使用两个宏

Remotery:用于 Web 视图的单个 C 文件解析器

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

游戏引擎

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

Grit:一个社区项目,旨在为开放世界 3D 游戏构建免费游戏引擎。

Irrlicht:用C++语言编写的开源高性能实时#D引擎

Polycode:一个开源框架,用于创建用 C++ 实现的游戏(与 Lua 捆绑)。

图形用户界面

CEGUI:一个非常灵活的跨平台GUI库

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

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

gtkmm:流行的 GUI 库 GTK+ 的官方 C++ 接口。

imgui:具有最小依赖性的即时模式图形用户界面

libRocket:libRocket是一个C++ HTML/CSS游戏界面中间件

MyGUI:快速、灵活且简单的 GUI

Ncurses:终端用户界面

QCustomPlot:没有更多依赖项的 Qt 绘图控件

Qwt:用于用户和技术应用程序的 Qt 控件

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

OtterUI:OtterUI是嵌入式系统和互动娱乐软件的用户界面开发解决方案

PDCurses 包含源代码和预编译库的公共图形函数库

wxWidgets C++ 库允许开发人员使用单一代码库为 Windows、Mac OS X、Linux 和其他平台创建应用程序

图形

bgfx:跨平台渲染库

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

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

magnumC++11 和 OpenGL 2D/3D 图形引擎

Ogre 3D是一个用C++编写的面向场景的、实时的、灵活的3D渲染引擎(不是游戏引擎)

OpenSceneGraph是一个高性能开源3D图形工具包

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

Skia 一个完整的 2D 图形库c标准库源码分析,用于绘制文本、图形和图像

urho3d 是一个跨平台渲染和游戏引擎。

图像处理

Boost.GIL:通用图像库

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

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

FreeImage:一个开源库,支持常见图像格式和当今多媒体应用程序所需的其他格式。

GDCM:草根 DICOM 库

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

Magick++:Imagek 程序的 C++ 接口

MagickWnd:ImageMagick 程序的 C++ 接口

OpenCV:开源计算机视觉库

tesseract-ocr:OCR 引擎

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

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

全球化

gettext:GNU `gettext'

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

libiconv:不同字符编码之间的编码转换库

贾森

freeze:C/C++ 的 Jason 解析生成器

Jansson:用于编码、解码和处理Jason数据的C语言库

jbson:用于在 C++14 中构建和迭代 BSON 数据和 Json 文档的库

JeayeSON:一个非常强大的 C++ JSON 库,仅包含头文件

JSON++:C++ JSON 解析器

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

json11:迷你 C++11 JSON 库

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

ibjson:C语言的JSON解析和打印库,易于与任何模型集成。

libjson:轻量级 JSON 库

PicoJSON:C++ 中的 JSON 解析和序列化,仅包含头文件

qt-json:JSON数据和QVariant级别之间相互解析的简单类

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

RapidJSON:C++ 的快速 JSON 解析生成器,包括 SAX 和 DOM 风格的 API

YAJL:C语言的快速流式JSON解析库

日志

Boost.Log:设计得非常模块化和可扩展

easyloggingpp:C++ 日志库,仅包含一个头文件。

Log4cpp:一系列C++库,可以灵活地将日志添加到文件、系统日志、IDSA等地方。

templog:一个轻量级的 C++ 库,可以将日志添加到您的 C++ 应用程序中

机器学习

Caffe:快速神经网络框架

CCV:以C语言为核心的现代计算机视觉库

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

OpenCV:开源计算机视觉库

推荐器:使用协同过滤进行产品推荐/建议的 AC 库。

SHOGUN:将军机器学习工具

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

数学

Armadillo:一个高质量的C++线性代数库,在速度和易用性之间取得了很好的平衡。语法与MatlAB非常相似

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

ceres-solver:来自 Google 的 C++ 库,用于建模和解决大型复杂非线性最小二乘问题。

CGal:高效、可靠的集合算法的集合

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

Eigen:一个高级C++模板头库,包括线性代数、矩阵、向量运算、数值求解等相关算法。

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

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

多媒体

GStreamer:用于构建媒体处理组件图的库

LIVE555流媒体:使用开放标准协议(RTP/RTCP、RTSP、SIP)的多媒体流媒体库

libVLC:libVLC(VLC SDK)媒体框架

QtAv:基于Qt和FFmpeg的多媒体播放框架,可以帮助你轻松编写播放器

SDL:媒体层的简单直接控制

SFML:快速、简单的多媒体库

网络

ACE:C++ 面向对象网络转型工具包

Boost.Asio:用于网络和低级 I/O 编程的跨平台 C++ 库

卡萨布兰卡:C++ REST SDK

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

Dyad.c:C 中的异步网络

libcurl:多协议文件传输库

Mongoose:非常轻量级的 Web 服务器

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

net_sculpture:C/C++ 的 TCP 客户端/服务器库

nope.c:超轻量级基于 C 的软件平台,用于可扩展的服务器端和 Web 应用程序。 对于 C 程序员,请考虑 Node.js

© 版权声明
THE END
喜欢就支持一下吧
点赞168赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容