c标准库源码分析 全网唯一推荐的C/C++框架及库

标准库

C++通用框架和库

人工智能

异步事件循环

声音的

生态

压缩

并发性

容器

数据库

调试

游戏引擎

图形用户界面

图形

图像处理

全球化

杰森

日志

机器学习

数学

多媒体

网络

物理

机器人技术

科学计算

脚本

序列化

视频

虚拟机

网络应用程序框架

XML

多重混淆

软件

LXR-(Linux 交叉引用器)集合

翻译员

在线编译器

调试器

构建系统

静态代码分析

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 计算库

Boltt:针对 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

libmcrypt

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++:封装 MySql 的 C API 的 C++ 包装器

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

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

调试

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

Boost.Test:Boost测试库

Catch:一个非常时尚的 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 图形库,用于绘制文本、图形和图像

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

图像处理

Boost.GIL:通用图像库

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

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

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

GDCM:草根 DICOM 库

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

Magick++:ImageMagick 程序的 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++ 的 Json 解析生成器

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

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

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

JSON++:C++ JSON 解析器

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

json11:迷你 C++11 JSON 库

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

libjson:轻量级 JSON 库。 C语言的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::开源计算机视觉库

Recommender::使用协同过滤进行产品推荐/建议的 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的多媒体播放框架c标准库源码分析,可以帮助你轻松编写播放器

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

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

网络

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

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

卡萨布兰卡:C++ REST SDK

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

Dyad.c::C语言异步网络

libcurl: :多协议文件传输库

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

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

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

nope.c: :基于C语言的超轻量级软件平台,用于可扩展的服务器端和网络应用程序。 对于 C 程序员c标准库源码分析,请考虑 Node.js

Onion: :C语言HTTP服务器库,其设计目标是轻量级且易于使用。

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

RakNet:: 面向游戏开发者的跨平台、开源 C++ 网络引擎。

Tuf o: :在 Qt 之上用 C++ 构建的异步 Web 框架。

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

ZeroMQ::高速、模块化异步通信库

物理

动力学仿真引擎

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

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

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

LiquidFun:: 2D 游戏物理引擎

ODE:开放动力学引擎 – 一个用于模拟刚体动力学的开源高性能库。

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

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

机器人技术

MOOS-IvP::一组开源 C++ 模块,为机器人平台(特别是自主海洋车辆)提供自主性。

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

PCL:Point Cloud Library是一个独立的、大型的开放项目,用于2D/3D图像和点云处理。

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

RobWork::用于机器人系统模拟和控制的 C++ 库的集合。

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

科学计算

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

GSL:GNU 科学图书馆。

脚本

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

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

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

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

V7: : 嵌入式 JavaScript 引擎。

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

序列化

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

谷物: : C++11 序列化库

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

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

protobuf: :协议缓冲区,Google 的数据交换格式。

protobuf-c::Protocol buffer的C语言实现

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

Thrift:高效的跨语言IPC/RPC,用于C++、Java、Python、PHP、C#等多种语言,最初由Twitter开发。

注:原文有误。 它应该是 Facebook 在 2007 年开发的,现在由 Apache 维护。

视频

libvpx: :VP8/VP9编解码SDK

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

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

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

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

虚拟机

CarpVM: : 有趣的 C 语言 VM,让我们来看看这个。

MicroPython:: 设计用于在微控制器上实现 Python3.x

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

网络应用程序框架

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

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

Crow:一个 C++ 微型 Web 框架(受 Python Flask 启发)

Kore: :超快速且灵活的 Web 服务器/框架,用于用 C 语言开发的 Web 应用程序。

libOnion:: 一个轻量级库,可帮助您使用 C 编程语言创建 Web 服务器。

QDjango:: 一个用 C++ 编写并基于 Qt 库的 Web 框架,试图模仿 Django API,因此得名。

Wt:: 用于开发 Web 应用程序的 C++ 库。

XML XML 是垃圾,xml 解析很烦人,对计算机来说是一场灾难。 这种可怕的东西根本没有存在的理由。 ——莱纳斯·托瓦尔兹

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

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

libxml++: : C++ xml 解析器

PugiXML::一个轻量级、简单且快速的 C++ XML 解析器,支持 XPath。

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

TinyXML: :一个简单、小型的 C++ XML 解析器,可以轻松集成到其他项目中。

TinyXML2:: 一个简单快速的 C++ CML 解析器,可以轻松集成到其他项目中。

TinyXML++:TinyXML 的全新接口,它利用了 C++、模板、异常和更好的异常处理的许多优点。

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

多重混淆

一些有用的库或工具不适合上述分类,或者尚未分类。

C++ Format::用于 C++ 的小型、安全且快速的格式化库

casacore::源自aips++的一系列C++核心库

cxx-prettyprint: : C++ 容器的打印库

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

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

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

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

昵称

取消
昵称表情代码图片

    暂无评论内容