C++开源库列表总结记录

2023-05-16

开源 C++ 库列表

  • 前言
  • 包管理器
    • 音频:
      • 音频指纹
      • 格式
      • 标签
      • CD
    • 性能测试:
    • 通信:
    • 并发:
    • 配置:
      • XML
      • JSON
      • YAML
      • TOML
      • HOCON
      • CSS
      • 容器
    • 密码学:
    • 数据库:
    • 嵌入语言绑定:
    • 嵌入式/实时:
    • 文件元数据:
    • 金融计算:
    • 游戏引擎架构:
    • 通用多媒体:
    • 通用:
    • GPS:
    • 图形用户界面:
      • CopperSpice
      • GTK+
      • Qt
    • 图形:
    • 图像:
      • 打点
      • 格式
    • 3D 图形:
    • 图像处理:
    • 国际化:
    • 记录:
    • 数学:
      • 数值计算
      • 线性代数
      • 优化
      • 图论
    • 数的类库
      • 人工智能
      • 计算几何
      • 自动化理论
    • 元编程:
    • PDF:
    • 物理与模拟:
    • 序列化:
      • 二进制序列化
    • 排序:
    • 终端:
    • 测试:
    • 文本:
      • 格式化
      • 分析
      • 搜索
      • 模板引擎
    • 版本控制:
    • 视频:
    • Web:

前言

开源 C++ 库的比较列表,使得人们在需要特定功能的实现时,不必浪费时间在网上( DuckDuckGo 、谷歌、必应等)搜索。
若知道可能对其他人有用的库,请在此添加到它的链接。能包含进来的库没有限制,但是必须能便捷地下载库的源码。

包管理器

Package manager						Description

build2							一个开源的 (MIT)、跨平台的构建工具链,旨
									在为开发和打包 C/C++ 项目时提供如 Rust Cargo 一样的便利性。 

cget							Cmake 包检索工具,可用于下载并安装 Cmake 包。 

cmodule							非侵入式 CMake 依赖管理。 

conan							去中心化、开源 (MIT) 的 C/C++ 包管理器。 

CPM.cmake						一段可以为 CMake 加入依赖管理功能的 CMake 脚本。
									它是作为 CMake 的 FetchContent 模块的一个简单包装构建的。
									该模块加入了版本控制、缓存、简单 API 等功能。 

hunter							一个 CMake 驱动的跨平台包管理器,服务于 C/C++ 项目。 

spack							一个超级计算机、Linux、macOS 平台的包管理器。
									它使得安装科学软件变得简单。非绑定于某一特定语言。 

teaport							一个受 cocoapods 启发的依赖管理器。 

vcpkg							一个 Windows、Linux、macOS 平台的 C++ 包管理器。 

音频:

	库名				简述											协议				配置手段

	Aquila				Aquila 是一个开源、跨平台的 C++11 DSP 库。 		MIT 许可 			CMake 

	Essentia			开源库,音频和音乐分析、						Affero GPLv3
						描述和合成工具 (MIR) (源码) 	

	FFTW				离散傅里叶变换 (DFT) 							GPL-2.0 CMake
						计算库 (SSE/SSE2/AVX/Altivec/ARM Neon)。(源码)  

	KFR					快速、现代、C++17、开源并且跨平台的				GPL-2.0 			CMake
						DSP/DFT 框架。支持音频重采样、 FIR/IIR 滤波器、 
						二阶滤波器,(SSE, AVX, AVX-512, ARM NEON)。 (源码)  

	soundtouch			SoundTouch 是一个开源、跨平台的音频处理库,		LGPL-2.1 			Makefile
						用于更改音频流或音频文件的速度、
						音调和播放速率。 (源码)  

音频指纹

		库名				简述										协议					配置手段

		chromaprint			(源码) 										MIT 许可, LGPL 2.1 		CMake 

		libmusicbrainz		(源码) 										LGPL-2.1 				CMake 

		libofa				MusicIP 开源音频指纹库 						APL 					makefile 

格式

		库名				简述										协议					配置手段

		audiofile														LGPL-2.1 				makefile 

		flac															Open Source, 
																		BSD 许可, GPL 许可  

		libsndfile														LGPL v2.0 or v3.0  

标签

		库名				简述										协议					配置手段

		id3lib															LGPL v2  

		taglib				(源码) 										LGPL 和 MPL v1.1  

CD

		库名				简述										协议					配置手段

		libkcompactdisc		CD 接口库 									GPL v2.0 				CMake 

性能测试:

	库名				简述										协议					配置手段

	benchmark														Apache2.0 许可 			CMake 

	Celero															Apache 许可 			CMake 

	gperftools			“谷歌性能工具”包含高性能、多线程的 malloc 	BSD 3-Clause "New" or	configure 
						实现加上评测堆分配和 CPU 利用的工具。   	"Revised" License

	plf::nanotimer		用于性能评测的最低开销、跨平台的简单定时器类。	zlib 许可  

通信:

	库名				简述											协议					配置手段

	ACE					异步网络、多路分离、报文发送   

	Apache Thrift		Apache Thrift 软件框架,用于规模可变的
						跨语言服务开发,将软件栈与代码生成引擎结合,
						构建有效而无缝地在 C++ 、 Java 、 Python 、
						PHP 、 Ruby 、 Erlang 、 Perl 、 Haskell 、
						C# 、 Cocoa 、 JavaScript 、 Node.js 、
						Smalltalk 、 Ocaml 、 Delphi 及其他语言间
						工作的服务。   

	Boost.Asio			异步及同步网络、定时器、序列 I/O 				BSL-1.0  

	Boost.Beast			建立于 Boost.Asio 顶上的 HTTP 及 WebSocket 库	BSL-1.0  

	Breep				基于事件、高层、点对点库,允许用户直接发送		European Union Public	CMake
						和接收对象。   									License 1.1

	C++ REST SDK		异步 HTTP 客户端及监听器、异步 Stream 、		MIT 许可 				CMake
						URI 、 JSON  

	cpp-netlib			cpp-netlib : C++ 网络库 						BSL-1.0 				CMake 

	cpr					现代 C++ HTTP 请求库 							MIT 许可 				CMake 

	Crow																BSD-3-Clause 			CMake 

	curlpp				CURL 库的 C++ 包装   

	DumaisLib															MIT 许可 				Makefile 

	EasyHttp			跨平台的 HTTP 客户端库,专注于可用性和速度,	MIT 许可 				CMake 
						支持 http 响应缓存及更多 

	eCAL				高性能进程间通信 								Apache2.0 许可 			CMake 

	fineftp-server														MIT 许可 				CMake 

	gRPC

	gsoap				XML 数据绑定、快速 WSDL/SOAP/XML 网络服务、
						WS 安全、 JSON/XML-RPC RESTful 服务的 
						C/C++ 开发工具套   

	HTTPP				简单、生产就绪的构建在 Boost 上的 HTTP 			BSD 2-Clause 			CMake, Makefile
						服务器,及构建在 libcurl 上的客户端。   		"Simplified" License

	IXWebSocket			无依赖的开源 WebSocket + HTTP 库,支持 			BSD 3-Clause "New"		CMake, Makefile
						SSL 和逐条消息 deflate 的 WebSocket 扩展。  	or "Revised" License  

	KCP					快速可靠的 ARQ 协议,帮助应用减少网络延迟。 	MIT 许可 				CMake 

	libashttp			异步 HTTP 客户端库 								GNU Lesser General   
																		Public License v3.0

	libnavajo															CeCILL-C FREE SOFTWARE	CMake
																		LICENSE AGREEMENT

	libtins				网络包装制作及嗅探库   

	nanomsg

	netif																BSD 3-Clause "New"  	CMake 
																		or "Revised" License

	nghttp2				HTTP/2 C 库及工具(服务器、客户端、代理			MIT 许可 				CMake, configure
						和评测工具)  

	ngrest				快速而简易的利用 JSON 的 RESTful 网络服务框架 	Apache2.0 许可 			CMake 

	nng

	omniORB				最快速、完整而可移植的 CORBA ORB 在 C++ 中的实现   

	OpenDDS				DDS 实现   

	Paho MQTT																					CMake 

	PcapPlusPlus		多平台 C++ 网络嗅探和包装分析及制作框架   

	POCO				网络:加密、 HTTP ; ZIP 文件   

	rest_rpc			现代、简单、易用的 rpc 框架  											CMake 

	restbed				设计以嵌入到宽范围的应用中的 C++ 为框架。 		许可协议 				CMake 

	restc-cpp			将痛苦从自 C++ 访问 JSON API 带走。 			MIT 许可				CMake
						HTTP 客户端,原生 C++ 类到/自 JSON 的序列化,
						通过 boost::asio coroutines 携程的异步 IO 。 
						C++14 。   

	restful_mapper		于 C++ 中消费 RESTful JSON API 的 ORM  									CMake, Makefile 

	seastar				用C++11实现的高性能异步编程框架。 				Apache2.0 许可 			CMake, etc. 

	Silicon				快速而稳健的 Web APIs 							MIT 许可 				CMake 

	sockpp				简单的现代 C++ 套接库 							BSD 3-Clause "New"  	CMake 
																		or "Revised" License

	Simple C++ 			在你的 C++ 应用中创建 REST API 的非常简单
	REST library   		且自成文档的库

	stream-client		轻量、唯头文件的、基于 Boost 的客户端 			Apache2.0 许可 			CMake
						socket/connector/socket pool/resolver  

	tacopie				C++11 TCP 库 									MIT 许可 				CMake 

	TAO					CORBA   

	taox11				基于 C++11 的 CORBA 实现 						MIT 许可  

	Unicomm				异步网络、高层 TCP 交互框架   

	uvw					现代 C++ 书写的 libuv 							MIT 许可 				CMake 

	wvstreams															GPL 许可  

	zeromq				快速消息队列   

并发:

	库名				简述											协议					配置手段

	BlockingCollection	C++11 线程安全汇集类,模仿 
						.Net BlockingCollection。

	Boost.Atomic														BSL-1.0  

	Boost.Compute		(非官方) OpenCL 的仿 STL 算法及数据结构 		BSL-1.0  

	Boost.Context														BSL-1.0  

	Boost.Interprocess													BSL-1.0  

	Boost.Lockfree														BSL-1.0  

	Boost.MPI															BSL-1.0  

	Boost.Thread														BSL-1.0  

	Cpp-Taskflow		带任务依赖的快速 C++ 并行编程   

	hipSYCL																BSD-2-Clause License 	CMake 

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

	Intel TBB

	KOKKOS				C++ 中的编程模型,用于书写高性能的
						便携 HPC 应用   

	libopenmpi

	libsimdpp

	MutexGear															The MutexGear  			configure, MSVC 
																		Library License
	OpenMP

	RaftLib				类似并发行动者的 C++ 流   

	SObjectizer			通过行动者和出版订阅模型,简化开发并发和
						事件驱动应用的 C++ 中的小型框架。   

	subprocess

	Taskflow

	Thrust				CUDA 的仿 STL 算法及数据结构   

	VexCL				OpenCL 和 CUDA 的 C++ 表达式模板库   

	ViennaCL			带 OpenMP 、 CUDA 及 OpenCL 后端的线性代数及算法   

	Xenium

配置:

	库名				简述											协议					配置手段

	Boost.Program_options												BSL-1.0  

	gconfmm

	libconfig

	libconfini			INI 分析器   

XML

		库名				简述											协议					配置手段

		ai-xml

		GPDS

		gSOAP				XML 数据绑定   

		libxml++

		pugixml

		tinyxml

		tinyxml2			另一 TinyXML ,建设中。   

		Xerces

JSON

		库名				简述											协议					配置手段

		ArduinoJson			ArduinoJson   

		CAJUN

		jansson				Jansson 是编码、解码及操纵 JSON 数据的 C 库。   

		jeayeson			非常健全的(唯头文件) C++14 JSON 库   

		jios				JSON 输入输出流 (JSON Input Output Streams) 	MIT 许可 				CMake 

		JOST

		JSON Voorhees		C++ 的杀手 JSON   

		json				Niels Lohmann JSON   

		JSON++

		json-cpp

		json11				json11 是 C++11 的轻量 JSON 库,提供 
							JSON 分析及序列化。   

		JsonBox

		jsoncons			JSON 与类 JSON 数据结构的唯头文件库,
							含 JSON Pointer 、 JSON Patch 、 JSONPath 、 
							CSV 、 MessagePack 、 CBOR 、 BSON 、 UBJSON。   

		jsoncpp

		jsonme--

		libjson

		minijson			C++ 无 DOM 且免分配的 JSON 分析及序列化   

		nosjob

		qjson

		rapidjson

		simdjson			每秒解析 GB 级别的 JSON   

		struct_mapping


		ThorsSerializer		JSON/YAML Input Output Streams 					MIT 许可 				Makefile 

		ujson				µjson 是小型的 C++11、UTF-8 JSON 库   

		zoolib

YAML

		库名				简述											协议					配置手段

		yaml-cpp

TOML

		库名				简述											协议					配置手段

		toml++

		toml11				基于 C++11 的 TOML 解析库   

HOCON

		库名				简述											协议					配置手段

		cpp-hocon			Pupplet 开发的 HOCON 格式的 C++ 实现。   

CSS

		库名				简述											协议					配置手段

		mycss				CSS 解析器   

容器

		库名				简述											协议					配置手段
		Boost.Bimap															BSL-1.0  

		Boost.Container														BSL-1.0  

		Boost.Fusion														BSL-1.0  

		Boost.Heap															BSL-1.0  

		Boost.Pointer Container												BSL-1.0  

		Boost.Tuple															BSL-1.0  

		Boost.Variant														BSL-1.0  

		cpp-btree			btree_map 、 btree_set 、 btree_multimap 、
							btree_multiset 。   

		DataFrame			C++ DataFrame —— 现代 C++ 中使用原生类型、
							连续内存存储,且无虚函数的 R 与 Pandas 数据框架。   

		eggs::variant		Eggs.Variant 是 C++11/14 的泛型、线程安全、
							有区别的联合体。值得注意的是它有很好的 constexpr 支持。   

		Frozen				constexpr 完美基于哈希的冻结集合与映射( Apache 2.0 )。   

		Immer																Boost License 			CMake 

		plf::colony			无序的“类背包”容器,在高度修改场景中性能
							优于 std:: 容器,同时维护指向未被擦除元素
							的合法指针,无关乎插入或擦除。   

		plf::list			std::list 实现,为缓存友好牺牲范围切割,
							导致更快的插入、擦除和迭代。   

		plf::stack			std::stack 容器适配器的随意访问替换容器,
							在栈环境中有优于 std::vector 和 std::deque 的性能。   

		ring_span			Guy Davidson 与 Arthur O'Dwyer 的 
							ring_span ——即环状缓冲区视图的简化实现。   

		strict_variant		快速而决不空的 variant ,目标 C++11 。
							阻止许多不想要的隐式转换。   

		TdhLists

		Ygg					高性能容器和数据结构,例如红黑树、区间数和
							区间映射的侵入式 C++11 实现。   

密码学:

	库名				简述											协议					配置手段

	Botan

	crypto++

	gnutls

	openssl

	TomCrypt

数据库:

	库名				简述											协议					配置手段

	redis-plus-plus		用C++ 11编写的Redis客户端, 支持Redis Sentinel,
						Redis Cluster,管道,事务,发布订阅,
						连接池以及类似于STL的接口   

	cpp-redis			C++11 轻量的 Redis 客户端:异步、线程安全、
						无依赖、管道化、多平台。   

	OTL

	DTL

	libpqxx

	lmdb++				LMDB 嵌入式 B+ 树数据库的 C++11 包装。   

	mongocxx			MongoDB 的 C++11 驱动库   

	mysql++

	ODB - C++ Object-Relational Mapping (ORM)

	Pgfe - PostGres 	现代 C++ 客户端 API 到 PostgreSQL   
	FrontEnd
	
	QUINCE: QUeries IN C++ Expressions (ORM+EDSL)

	QxOrm - C++ Qt Object-Relational Mapping (ORM)

	SOCI

	sqlpp11

	SQLAPI++

	EasyQtSql			轻量唯头文件 C++11 库,用 QtSql 快速便捷地进行 SQL 查询   

	LevelDB				谷歌开发的、能够处理十亿级别规模 Key-Value 
						型数据持久性存储的C++ 程序库。   

嵌入语言绑定:

	库名				简述											协议					配置手段

	ChaiScript

	ExprTk

	lua

	sol2

	AngelScript			类似 C++ 的脚本语言。   

	mozjs

	muparser

	PythonQt

	ScriptCaller		允许程序员调用 Ruby 脚本的唯头文件库。   

	v8pp				将 C++ 函数和类绑定到 V8 JavaScript引擎中。   

嵌入式/实时:

	库名				简述											协议					配置手段

	QP/C++				RTOS 内核,双重 GPL   

	ETL - Embedded 		C++03 ,为少资源平台裁剪的可移植模板库
	Template Library

	distortos			微控制器的面向对象 C++ RTOS   

	µcuREST				微控制器的 C++11 REST/JSON 服务器框架   

文件元数据:

	库名				简述											协议					配置手段

	libkexiv2

	exiv2

	exempi

	rarian

金融计算:

	库名				简述											协议					配置手段

	QuantLib - Quantitative finance library


	DataFrame			C++ DataFrame —— 现代 C++ 中使用原生类型、
						连续内存存储,且无虚函数的 R 与 Pandas 数据框架。   

游戏引擎架构:

	库名				简述											协议					配置手段

	EntityX

	Anax

	EntityPlus

	EnTT

	BOX2D				物理引擎   

通用多媒体:

	库名				简述											协议					配置手段

	SFML (Simple and Fast Multimedia Library)

	SDL (Simple 		对音频、键盘、鼠标、操纵杆及图形硬件,
	DirectMedia Layer)	经由平台上图形 API (通常为 OpenGL 或 Direct3D )
						的跨平台低层访问( zlib 许可)   

	SIGIL (Sound, 		文本、形状、输入、音频及 2D 图像的难以置信地
	Input, and Graphics	简单的跨平台极简库
	Integration Library)

	Cinder

	openFrameworks

通用:

	库名				简述											协议					配置手段

	Boost				大量通用库的汇集 								Boost 许可  

	GSL					Guideline Support Library 实现,为 
						Bjarne Stroustrup, Herb Sutter 和 Co 
						在《 C++ 核心方针》中推荐   

	BDE					来自 Bloomberg L.P. 的 Bloomberg Development	Apache 许可 
						Environment 核心库  

	Dlib				网络、线程、图形用户界面、数据结构、线性代数、	Boost 许可
						机器学习、 XML 及文本分析、数值优化、
						贝叶斯网络和大量其他任务   

	JUCE				扩展性的成熟跨平台 C++ 工具套 					GPL 许可  

	Loki				设计模式   

	Reason				xml 、 xpath 、正则表达式、线程、接头、 http 、	GPL 许可 
						sql 、日期时间、流、编码与解码、文件系统、压缩  

	yomm2				C++17 的开放式多方法 Boost 许可  

	Folly				Facebook 开源库。设计带有构思中的实践性和
						效率设计的 C++11 组件库。   

	Abseil				Google 设计以补足 C++ 标准库的开源 C++ 库代码汇集。   

	cxxomfort			C++ 特性逆向移植( C++11 到 C++03 及 C++1y 
						提案到 C++11/C++03 )。   

	libsourcey			高速网络化和多媒体编码的跨平台 C++11 库。 
						HTTP 、 WebSockets 、 TURN 、 STUN 、 Symple 及更多……   

	OnPosix				在 POSIX 平台上提供各种抽象(例如线程、网络化、
						日志、 IPC 等)的 C++ 库。   

	Ultimate++			跨平台的迅速应用开发框架   

	CAF					C++ Actor Framework (CAF) 是开源的 C++11 		BSD 许可 
						行动者模型实现,特性为轻量而快速的行动者实现、
						消息的模式匹配、网络不可见消息传递及更多  

	cpp-mmf				对 POSIX 或 Windows 封装映射到内存文件的 C++98 库   

	CommonPP			多用途库,强调在项目中得出度规。 				BSD  

	Better Enums		反射性枚举(枚举到字符、迭代等),				BSD
						带 constexpr 支持。 

	Smart Enum			给你的枚举 "to_string" 、 "from_string"  		Boost 许可  
						和更多。

	nytl				通用的 C++17 唯头文件模板库。 					Boost 许可  

	SaferCPlusPlus		SaferCPlusPlus - 不安全的 C++ 原始工具的		Boost 许可
						安全兼容替换品,包括指针、 int 和 std::vector。 

	fcppt				Freundlich 的 C++ 工具套 (fcppt) 是聚焦于通过
						提供更好的类型和函数式编程改进 C++ 代码的库汇集。   

	bitfield.h			位域结构设施,比基础语言设施更可移植/灵活。   

	composite_op.h		基础类数据成员自省,繁琐且常常不可重入,但有时有用。   

	Abstract Intrusive 	比 boost::intrusive 更灵活,但非 STL 兼容。
	Containers

	Yato				现代 C++ (14/17) 的跨平台 STL 风格及 STL 		Apache-2.0 
						兼容库,实现容器、范围、迭代器、类型特性和
						其他工具;行动者系统;类型安全配置接口  

	Kangaru				C++11 与 C++14 的依赖注入容器 					MIT 许可  

	yaal				算法、汇集、任意精度计算、泛型 DSL 				CC BY-ND-NC 4.0 			CMake 
						文法驱动分析器及更多 

	gsl-lite			C++98 、 C++11 及后续版本的 ISO C++ Guideline
						支持库 (GSL) 的单文件唯头文件版本。   

	nonstd-lite			*-lite 仓库的亲属,将 C++11 后特性移植到
						古代 C++ 环境的迁移路径。   

	units				编译时唯头文件的量纲分析及单位转换库,
						建立于 C++14 而无依赖。   

GPS:

	库名				简述											协议					配置手段

	gpsd

图形用户界面:

	库名				简述											协议					配置手段

	Dear ImGui			高度优化的不膨胀的图形用户界面库。   

	FLTK

	nana				用现代 C++ 风格的 GUI 编程( Boost 许可)   

	nanogui				最小化的跨平台器件库,适用于 OpenGL 3.x 或更高版本   

	WxWidgets

	OWLNext				对 OWL 的,用于在 Windows 上以标准 C++ 
						书写 GUI 应用的现代更新   

	tiny file dialogs	单个 C C++ 跨平台文件(无初始化、无 main 循环、 6 种形态的函数调用)   

CopperSpice

		库名				简述											协议					配置手段

		CopperSpice			CopperSpice 是用于开发跨平台软件应用的 
							C++ 库集合。它在 LGPL V2.1 许可下发布。
							它使用现代理念的 C++ 并与 STL 无缝结合。 
							CopperSpice 派生自 Qt 框架。   

		CsSignal			独立的 C++ 具线程信号/槽库   

		CsString			独立的 C++ 具 Unicode 字符串库   

		libGuarded			独立的 C++ 多线程库,用于管理对共享数据的访问   

GTK+

		库名				简述											协议					配置手段

		glibmm

		gtkmm

		goocanvasmm

		libglademm

		libgnomecanvasmm

		webkitgtk

		flowcanvas

		evince

Qt

		库名				简述											协议					配置手段

		Qt

		qwtplot3d

		qwt5				技术应用到 Qt Widgets   

		libdbusmenu-qt

		QuickQanava			直接在 Qt/QML 应用中画图的 C++14 库;
							项目主页: http://www.qanava.org   

		QuickProperties		QObject/QtObject 属性编辑的 C++/QML 库;
							项目主页: http://www.qanava.org   

图形:

	库名				简述											协议					配置手段

	cairomm

	nux

	pangomm

	nanovg				基于openGL/DX/metal的2d绘图库。   

	bgfx				非常强大的跨平台图形渲染库,支持平台包括 
						Windows Mac Linux iOS Android Web,渲染后端
						包括 DX, opengl, metal webgl等。   

图像:

	库名				简述											协议					配置手段

	gegl

	stb.image

	Adobe/boost GIL		高层通用库,聚焦于 2D 图像上操作的算法。
						非常有限定 I/O 选项。   

	GraphicsMagick		读、写、操纵 88 种主要格式的图像。
						于 2002 年分化自 ImageMagick   

	Skia Graphics 		Google 从 2005 年起的图形库,用于 Chrome 、
	Engine	 			Chrome OS 、 Android 还有 Firefox 和 Sublime
						Text enwiki:Skia_Graphics_Engine   

	Anti-Grain 			跨平台 2D 光栅化及绘图引擎
	Evolution		   

打点

		库名				简述											协议					配置手段

		plotutils

格式

		库名				简述											协议					配置手段

		libraw

		openexr

		qimageblitz

		imagemagick

		djvulibre

		poppler

		SVG++

3D 图形:

	库名				简述											协议					配置手段

	Vulkan

	OpenGL

	bgfx				跨平台、不知图形 API 、“带来你自己的
						引擎/框架”风格的制图库。   

	Ogre3D

	Diligent Engine		现代跨平台低层 3D 图形库。   

	GLEW				OpenGL 功能加载   

	GLAD				可定制的轻量库,用于加载 OpenGL 功能   

	Epoxy				GLEM 的现代后继者。在 GL 环境的一些种类间抽象,
						这使得有时比使用 GLEW 更加单。
						自 2015 起为 GTK+ 项目所用。   

	GLFW				OpenGL 窗口管理器   

	GLM					制图用的唯头文件 C++ 数学库   

	hlsl++				使用 hlsl 语法的唯头文件 C++ 渲染库。支持 SSE 和 NEON   

	assimp				3D 模型加载   

	VTK

	Magnum				游戏和数据可视化的轻量模块化的 C++11/C++14 图形中间件   

	Irrlicht

	Horde3D

	Visionaray			C++ 光束追踪模板库   

	Open CASCADE		3D CAD/CAM/CAE 应用的 SDK   

	OpenSceneGraph

图像处理:

	库名				简述											协议					配置手段

	opencv

	dlib

	ITK

	OTB

国际化:

	库名				简述											协议					配置手段

	IBM ICU

	gettext

	spirit-po			快速的唯头文件库,分析 po 文件,并提供类似
						GNU libintl 的接口。基于 boost::spirit 。   

记录:

	库名				简述											协议					配置手段

	Log4cpp				用于灵活地记录到文件、系统日志、 IDSA 
						或其他目标的 C++ 类库 (LGPL)   

	Log4cplus			日志 API ,提供日志管理及配置上的线程安全、灵活且有任意粒度的控制。   

	spdlog				超快的唯头文件 C++ 日志库   

	plog				C++ 的可移植且简单的日志,少于 1000 行代码 (MPL2)   

	Boost.Log

	glog				Google 日志库   

	log4cxx				Apache log4cxx 是 Apache log4j 后的 C++ 模式化记录框架   

	Pantheios			诊断日志 API 库,提供类型安全、效率、泛型和可扩展性的结合   

	Backward			打印漂亮的 Python 风格栈追踪,带颜色和源代码片段,特别是在崩溃时( MIT 许可)。   

数学:

	库名				简述											协议					配置手段

	stats++				先进、广泛的统计软件:数据收集及预处理、
						统计、机器学习及优化,拥有开放的 C++ 源码。   

	StatsLib			统计分布函数的模板化唯头文件库。   

	alglib

	ArrayFire High 
	Performance 
	Computation Library

	GNU MP bignum 
	C++ interface

	BigNumber			创建和计算任意长度整数的 C++ 类   

	Boost.Multiprecision

	Boost.Math.Special 
	Functions and 
	Statistical Distributions

	Boost.Random

	NTL - A Library
	for doing Number
	Theory

	cpp-measures		处理物理度量的唯头文件 C++11 库   

	G+Smo				等几何分析的跨平台库   

	C++ Matrix			高性能且精确(例如极端情况)的矩阵数学库,
						带表达式模板算术运算符   

	Exact floating-point 
	arithmetic library

	RPNX Uniform 		N 维均匀分布的平滑噪声函数,以 C++ 实现。
	Smooth Noise

数值计算

		库名				简述											协议					配置手段

		LibBF				由 Bellard 开发的任意精度数值计算库,
							拥有一个将圆周率计算到数十亿位的示例程序   

线性代数

		库名				简述											协议					配置手段

		Boost.uBLAS

		Eigen

		Armadillo

		Blitz++

		IT++

		Dlib - linear 
		algebra tools

		Blaze

		ETL

		DecompLib			唯头文件的 C++11 库,分解向量为
							正定加权基向量的集合。   

优化

		库名				简述											协议					配置手段

		OptimLib			非线性函数数值优化方法的 C++11 库。   

图论

		库名				简述											协议					配置手段

		Boost.Graph

		LEMON

		OGDF - Open 
		Graph Drawing 
		Framework

		NGraph - a simple
		(Network) Graph 
		library in C++


		GTpo				C++14 泛型图拓扑库,带 Protocol Buffer 序列化;
							项目主页: http://www.qanava.org   

数的类库

		库名				简述											协议					配置手段

		cln

		Universal			通用数算术的 C++ 模板库,取代 IEEE 浮点( MIT 许可)   

人工智能

		库名				简述											协议					配置手段

		stats++

		liblinear

		Dlib				机器学习工具   

		MLPACK				机器学习包   

		Shogun				大规模机器学习工具箱   

		FANN				快速人工神经网络库   

		TensorFlow			面向所有人的开源机器学习框架   

		Paddle				并行化分布式深度学习库   

		DLDT				OpenVINO™工具包-深度学习部署工具包   

		TensorRT			用于在 NVIDIA GPU 和深度学习加速器上进行高性能推理的 C++ 库   

		NCNN				腾讯开发的、针对移动平台进行了优化的高性能神经网络推理框架   

		OpenPose			实时多人关键点检测库,用于身体,面部,手和脚的检测   

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

		btsk				游戏行为树入门套件。   

		Evolving Objects	基于模板的 C++ 演化计算库,可帮助您快速
							随意地编写自己的随机优化算法。   

		frugally-deep		仅头文件的库,用于在 C++ 中使用Keras模型。   

		Genann				简单神经网络库。   

		Recast/Detour		导航网格生成器和浏览器,主要用于游戏。   

		CNTK				微软认知工具包(CNTK),一种开源的深度学习工具包。   

		tiny-dnn			基于 C++11 的唯头文件、无依赖的深度学习框架。   

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

		Kaldi				语音识别工具包。   

计算几何

		库名				简述											协议					配置手段

		CGAL				计算几何算法库   

		Wykobi				计算几何库   

		PCL					点云库   

自动化理论

		库名				简述											协议					配置手段

		yasmine - C++11 
		UML state machine 
		framework

元编程:

	库名				简述											协议					配置手段

	Boost.MPL			原初元编程库,目标为 C++03 ,慢   

	Boost.Hana			类型与值的新元编程库   

	Boost.Mp11

	Boost.CallableTraits

	Metal				使用饿元函数, 100% SFINAE 友好   

	Brigand				使用饿元函数,为最佳性能优化   

	Meta				使用饿元函数,在 metal 和 brigand 之间,
						相对于性能妥协   

	Boost.Metaparse		编译时分析器库,从编译时字符串产生类型、
						值和元函数   

	Boost.Proto			构建基于表达式模板的 EDSLs 的库   

	CoMeta				轻量、唯头文件的 C++14 元编程库   

	visit_struct		小规模反射库,提供 C++11 的结构体观察器。
						自容纳, 100-200 行代码,取决于如何计算。   

PDF:

	库名				简述											协议					配置手段
	
	HARU

	PoDoFo

	JagPDF

物理与模拟:

	库名				简述											协议					配置手段

	ReactPhysics3D		进行 3D 模拟与游戏的 C++ 物理引擎   

	ProjectCHRONO		开源多物理模拟引擎   

	Bullet				游戏、视觉效果、机器人及加固学习的物理模拟   

序列化:

	库名				简述											协议					配置手段

	Boost.Serialization

	libs11n

	sweet_persist

	protobuf

	gSOAP				准确的 XML 序列化   

	ai-xml				通过添加单个最小的函数到类,在 XML 间
						序列化及反序列化。在底层使用 libxml++ 。   

	C++ XML objects

	YAS (Yet Another 
	Serialization)

	yaml-cpp

	cereal (C++11 
	serialization)

	jios (JSON 
	serialization)

	ThorsSerializer 
	(JSON/YAML Input 
	Output Streams)

	cppcodec			唯头文件库,编码/解码 base64 、 
						base32 和十六进制,有一致而灵活的 API ( MIT 许可)   

	iguana (universal
	serialization engine)

	rpnx-serial			能(反)序列化如 std::map 、 std::vector 等类型的库   

二进制序列化

		库名				简述											协议					配置手段

		UBjsonCpp			基于 C++14 的高性能 UBJson 读写库   

		binn				旨在紧凑,快速且易于使用的二进制序列化库,
							自身是同名格式的实现。   

		bson-cxx			BSON 格式的 C++ 实现。   

排序:

	库名				简述											协议					配置手段

	Timsort				模板化的稳定排序函数,对于逆序或半排序的数据,
						性能优于基于快速排序的算法,包括 std::sort 。 (MIT)   

终端:

	库名				简述											协议					配置手段

	cwidget

	replxx				readline 和 libedit 的替换品,支持 UTF-8 、
						语法高亮和提示。   

测试:

	库名				简述											协议					配置手段

	Boost.Test

	cppunit

	Google Test

	Catch2

	doctest				单元测试和 TDD 使用的最轻量的特性丰富的 
						C++ 单头文件测试框架   

	lest				现代的 C++11 原生的单文件唯头文件的轻量单元测试、
						TDD 和 BDD 框架(包含 C++98 变体)。   

	liblittletest		可移植,单个唯头文件的测试框架   

	ELFspy				杜绝假象和间谍的测试 - 仅 Linux   

	xtd.tunit			Windows 、 macOS 、 Linux 、 iOS 和 Android 
						上的现代 C++17 单元测试库。官方网站   

	bandit				C++11 的对人类友好单元测试   

文本:

	编码
	库名				简述											协议					配置手段

	uchardet			实现猜字符串编码的功能,和python里
						的uchardet功能基本一样。   

	win-iconv			Linux 和 Mac 上的字符集编码转换库 iconv 的
						Windows 实现,基于 Win32 字符集转换 API 实现。   

格式化

		库名				简述											协议					配置手段

		fmt					printf 不好用,ostream 也不好用,format 好用   

分析

		库名				简述											协议					配置手段

		PEGTL				分析表达式文法的模板库   

		BNFlite				仅单个头文件的轻量文法分析器库   

搜索

		库名				简述											协议					配置手段

		clucene

		xapian

		Step				Ukkonen 的构建后缀树在线算法, 
							Manber 的构建后缀数组算法。   

模板引擎

		库名				简述											协议					配置手段

		inja				现代 C++ 的模板引擎   

版本控制:

	库名				简述											协议					配置手段

	LibGit2				版本控制系统 Git 的核心库。   

	cpp-semver			语义化版本号的 C++ 操作库。   

视频:

	库名				简述											协议					配置手段

	crystalhd

	mjpegtools

	libmatroska

	libVLC

	gstreamermm

Web:

	库名				简述											协议					配置手段

	libmusicbrainz5

	liblastfm

	libkcddb

	Chromium Embedded

	QtWebApp			Java Servlets 所启发的 HTTP(s) Server ,以 C++ 实现   

	Wt

	Tufão

	libhttpserver

	cpp-jwt

	oatpp				用于创建高性能网络服务的轻量零依赖框架   
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++开源库列表总结记录 的相关文章

  • Matlab学习-频率分布直方图绘制

    参考链接 xff1a hist xff08 xff09 函数用法 频率分布直方图 xff1a 在数理统计中 xff0c 会经常使用到频率分布直方图 xff0c 能够直观的反应频率分布的范围大小 xff0c 在直角坐标系中 xff0c 横轴为
  • Matlab学习-经纬度在matlab内置地图显示

    已知经纬度坐标 xff0c 将其显示是地图上 参考链接 xff1a 使用matlab绘制世界地图并根据经纬度绘制点位 附m map的下载与安装说明 wm span class token operator 61 span webmap sp
  • ARM存储格式的“大小端”解析

    ARM储存 大端格式和小端格式 所谓的大端模式 xff0c 是指数据的高位 xff0c 保存在内存的低地址中 xff0c 而数据的低位 xff0c 保存在内存的高地址中 xff0c 这样的存储模式有点儿类似于把数据当作字符串顺序处理 xff
  • UBLOX板卡基础设置--F9P板卡配置(基准站和流动站)

    UBLOX F9P板卡配置 基准站 流动站 UBX F9P模块为双频定位芯片 xff0c 是市场上目前最常用的高精定位模块 xff0c 差分定位精度可达厘米级 xff0c 具体参数详见官方文档 官方文档下载链接 xff1a UBX F9P模
  • GIT学习-常用命令

    2 GIT学习 常用命令 在学习git前首先需要对相关名词和概念有基本了解 xff0c git基础知识学习可参考以下资料 xff1a git基础知识 xff1a GIT学习 1 基础知识git下载与配置 xff1a GIT学习 xff08
  • ROS常用命令

    ROS常用命令 1 将话题数据单独导出 将话题数据单独导出为一个文件 rostopic echo b name name p topic name gt save file name ex rostopic echo b test bag
  • Linux常用命令

    Linux常用命令 1 查看电脑IP地址 ifconfig 2 远程连接其他电脑 xff0c 查看是否连接成功 ping IP address 3 通过IP地址远程连接电脑 ssh lcl 64 IP address 4 文件传输 4 1
  • opencv-3.4.1-x86编译安装 -- 超详细

    相关链接 xff1a opencv 3 4 1 arm编译安装 超详细 opencv 3 4 1 x86编译安装 环境1 安装依赖库2 OpenCV源码获取与解压2 1 获取源码2 2 工作目录准备2 3 解压 3 OpenCV配置编译3
  • Qt编程之单例模式——代码复用,一个类供多个类调用

    什么是单例模式 单例模式是一种对象创建模式 xff0c 用于生产一个对象的实例 xff0c 它可以确保系统中一个类只产生一个实例 xff0c 这样做有两个好处 xff1a 1 对于频繁使用的对象 xff0c 可以省略创建对象所花费的时间 x
  • STM32串口数据接收处理,数据分割为整形浮点型数据。

    简介 通过stm32的串口接收数据 xff0c 通过strstr函数分割数据 xff0c 再将字符数据转化为整形数据或浮点数据 比如 xff1a stm32接收到数据 s555s xff0c 分割数据为 555 xff0c 然后转化为int
  • 抛出异常时将异常信息返给前端

    全局异常处理器负责将抛出的异常 xff0c 以统一的格式返给前端 在这里起主要作用的注解是 64 RestControllerAdvice 64 RestControllerAdvice主要配合 64 ExceptionHandler使用
  • 关于入栈和出栈的理解

    关于入栈和出栈的理解 xff1a 假设程序在运行 xff0c 这个时候就会涉及到下面要说到的几个核心的寄存器 xff08 对栈进行操作 xff09 就是PC寄存器 xff08 为了能够准确地记录各个线程正在执行的当前字节码指令地址 xff0
  • 原生 css 实现进度条

    方案一 xff1a 通过data控制它的样式 1 首先搭建dom结构 lt div class 61 34 home left top content div 34 v for 61 34 item index in PowerAAcces
  • 实现开发板、电脑(无线网卡)与虚拟机三者通过网络连接(三者都可以上外网)

    借鉴文章 xff1a https blog csdn net dongtaintailiang article details 106314689 spm 61 1001 2014 3001 5501 因为项目需要 xff0c 找到这篇文章
  • STM32串口发送接收数据

    目录 1 串口通信2 串口的结构体3 如何配置串口的发送4 通过串口向电脑发送ok字符5 封装发送字符串函数6 重定向printf串口发送7 串口输入控制LED灯开关遇到的问题 1 串口通信 我用的32是stm32f10x最小系统没有UAR
  • 数据结构代码

    1 线性表 1 顺序表 span class token keyword typedef span span class token keyword struct span span class token punctuation span
  • 计算机组成原理之奇偶校验

    计算机组成原理之奇偶校验 这个久校验应该是数字逻辑早就学了的内容 可是我又忘记了 在网上查还不如自己写篇博客记录一下 首先奇偶校验是干嘛的 xff1f 奇偶校验是一种校验代码传输正确性的方法 根据被传输的一组二进制代码的数位中的 34 1
  • ubuntu18.04下复现 singleshotpose(yolo-6D) 源代码复现

    源代码地址 首先配置好conda环境 xff08 需要提前安装ubuntu18 04和 anaconda或者miniconda xff09 原代码的说明里说可以选择安装python 3 6也可以装python2 7 xff08 我最开始的时
  • 手把手 在windows10下安装配置anaconda

    一 安装anaconda 1 进入anaconda官网 xff0c 下载安装包 2 下载好之后 xff0c 依次安装 3 为计算机添加环境变量 依次点击 1 win10桌面 xff0c 点击右下脚的window图标 2 系统 3 关于 4
  • kindle paper write1 kindle pw1 安装多看系统 or 原本是多看双系统,升级kindle系统后多看系统消失,解决方法降级kindle系统+重装kindle系统

    有关升级kindle原生系统的教程 xff1a 大概方法就是在亚马逊官网下载你设备对应版本的安装包 xff0c 然后拷贝到kindle文件夹中 xff1a Kindle升级到5 6 1 1后 xff0c 多看阅读消失了 准备材料 xff1a

随机推荐