开源 C 库列表

来自cppreference.com
< c‎ | links


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

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

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

目录

[编辑] 包管理器

包管理器 简述
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++ 包管理器。
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

[编辑] 数学

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

[编辑] 图形

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

[编辑] 通用

库名 简述 协议 配置手段
libmixf

[编辑] 进程间

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

[编辑] 数据库

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

[编辑] 配置

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

[编辑] 环境

库名 简述 协议 配置手段
libXDGdirs

[编辑] 通信

库名 简述 协议 配置手段
gsoap
KCP 快速可靠的 ARQ 协议,帮助应用减少网络延迟。 MIT
libcurl
libmicrohttpd
libsagui
MQTT-C Github URL MIT
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.0 make

[编辑] 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