概述
我们之前分享过一篇关于 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
暂无评论内容