开源 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 语言的字符串库。

XML

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

测量

库名 简述 协议 配置手段
edlib

面向对象编程

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

网络库

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

Web 前端

库名 简述 协议 配置手段
cgit

调试

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

参阅

外部链接

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