开源 C 库列表

来自cppreference.com
< c‎ | links


此页面的目的是构建开源 C++ 库的比较列表,使得人们在需要特定功能的实现时,不必浪费时间在网上(DuckDuckGo谷歌必应等)搜索。

若你知道可能对其他人有用的库,请在此添加到它的链接。能包含进来的库没有限制,但是必须能便捷地下载库的源码

以“原态”提供此页面——希望这有用,但不提供任何担保。过时、误导或错误的链接可能出现于此。若你注意到这些错误,则改正它会很有意义。

包管理器

包管理器简述
build2一个开源的 (MIT)、跨平台的构建工具链,旨在为开发和打包 C/C++ 项目时提供如 Rust Cargo 一样的便利性,同时提供构建系统中的深度定制和灵活性。
cgetCMake 包检索工具,可用于下载并安装 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++ 包管理器。
xmake跨平台的基于 Lua 的 C/C++ 构建工具和包管理器。

操作系统

访问控制
库名简述协议配置手段
acl
apparmor
扩展属性
库名简述协议配置手段
attr

图形用户界面

库名简述协议配置手段
IUP
Nuklear单头文件 ANSI C 立即模式的跨平台 GUI 库。(文档)
lvgl强力且易用的嵌入式 GUI 库,提供大量部件,高级视觉效果(透明度、抗锯齿、动画)和低内存要求 (16K RAM, 64K Flash)。(文档)
tiny file dialogs单个跨平台 C 文件(无初始化,无主循环,6 个模态函数调用)

Gtk+ 部件

库名简述协议配置手段
appmenu-gtk
ghex
goocanvas
gtkhotkey
gtk+
gtksourceview
gtkspell
gucharmap
webkitgtk

Microsoft Excel

库名简述协议配置手段
libxlsxwriter
xlsx_drone

音频

CD
库名简述协议配置手段
cdparanoia
编解码器
库名简述协议配置手段
aften
faad2
wavpack
基础结构
库名简述协议配置手段
alsa-lib
portaudio
语音合成
库名简述协议配置手段
espeak
flite

视频

编解码器
库名简述协议配置手段
schroedinger
video4linux

文件

库名简述协议配置手段
gmime

数学

库名简述协议配置手段
gslGNU 科学运算库 (GSL) 是一个 C/C++ 数值库 (源码)GPLmake
整数多维插值
库名简述协议配置手段
argyll
线性代数
库名简述协议配置手段
atlas
blas
eigen
金融
库名简述协议配置手段
ta-lib
快速傅里叶变换(FFT)
库名简述协议配置手段
fftw3
多精度
库名简述协议配置手段
gmp
信号处理
库名简述协议配置手段
liquid-dsp
vsipl
vsipl++

图形

库名简述协议配置手段
allegroAllegro-5 是一个主要针对视频游戏与多媒体编程的跨平台库。
babl
Bgfx跨平台,图形 API 无关的,"请自备引擎/框架" 风格的渲染库。BSD 2
cairo
raylib跨平台的 C99 游戏开发库,提供 OpenGL 硬件加速,完整 3D 支持,骨骼动画,着色器,字体,音频,数学,GUI,等等。 (源码) (文档)Zlibcmake, make, vcpkg, zig
SAIL松鼠抽象图像库 (Squirrel Abstract Image Library),是一个小型,快速且跨平台的图像解码库。
SDL简单直接媒体层 (Simple DirectMedia Layer),是提供输入、音频、绘图等更多功能的跨平台库。
SIGIL
Simple2d小型、简单、跨平台的 SDL2/OpenGL 包装,提供绘制、媒体、窗口管理和输入等能力。MIT

通用

库名简述协议配置手段
libmixf

进程间

库名简述协议配置手段
dbus
dee
gdbus

数据库

库名简述协议配置手段
berkeley_db
libfmrt
libmongocMongoDB 的官方 C 驱动库(文档)。它提供了优化的 API,支持 CRUD 操作、易理解功能支持(包括 BSON),还支持各种身份认证机制,以便于将 MongoDB 功能集成到基于 C 的应用中。Apache 2.0CMake
lmdb
SQLiteC 库,实现一个小巧、快速、自包含、高可靠、全功能的 SQL 数据库引擎。SQLite 是世上最常用的数据库引擎。(源码) (文档)公共领域

配置

库名简述协议配置手段
libconfig
libconfini

环境

库名简述协议配置手段
libXDGdirs

通信

库名简述协议配置手段
gsoap
KCP快速可靠的 ARQ 协议,帮助应用减少网络延迟。MIT
libcurl
libmicrohttpd
libsagui
MQTT-CGithub URLMIT
nanomsg套接字库,提供常用通信模式;无依赖;跨平台。由 nng取代。MIT/X11
UCX统一通信框架 (UCX) 为消息传递 (MPI),共享内存 (PGAS) 和 RPC/以数据为中心的应用程序提供了一个优化的通信层。BSD3
zeromq
libusb可移植的 C 库,提供通用的 USB 设备访问。

压缩

库名简述协议配置手段
bzip2
lz4
zlib

并发

库名简述协议配置手段
ck
MutexGear仅用互斥体实现的同步(滚轮,读写锁,工作队列)。MutexGear 库许可

数据类型

库名简述协议配置手段
bstrlib
datastd
str又一个 C 语言的字符串库。

PDF

库名简述协议配置手段
PDFio简单用于读取和写入 PDF 文件的 C 库。Apache-2.0make

XML

库名简述协议配置手段
expat
gsoap

测量

库名简述协议配置手段
edlib

面向对象编程

库名简述协议配置手段
Cello
GObject

网络库

库名简述协议配置手段
libpcap(*nix)
npcap(win7~10+)

Web 前端

库名简述协议配置手段
cgit

调试

库名简述协议配置手段
dbg-macro一组用于打印并返回表达式的值的宏,对于快速调试来说非常方便。受 Rust 的 dbg!(...) 宏和它的 C++ 变体启发。MIT

参阅

非 ANSI/ISO 库C++ 文档

外部链接

1. C 单元测试框架列表 — Wikipedia
2. A curated list of (awesome) C and C++ libraries — GitHub
3. C 开源游戏和框架的列表 — GitHub.io