本页旨在建立一个全面的开源 C 库列表,以便当需要实现特定功能时,无需浪费时间在网络上搜索(DuckDuckGo、Google、Bing 等)。
如果您知道可能对他人有用的库,请在此处添加链接。除库的源代码必须易于下载外,没有其他限制。
本页“按原样”提供——希望能有所帮助,但不提供任何保证。此处可能出现过时、误导或错误的链接。如果您发现其中之一,请修复该错误,这将非常有益。
目录
1 包管理器
2 库
2.1 操作系统
2.2 图形用户界面
2.3 Gtk+ 控件
2.4 Microsoft Excel
2.5 音频
2.6 视频
2.7 文件
2.8 数学
2.9 图形
2.10 通用
2.11 进程间通信
2.12 数据库
2.13 配置
2.14 环境
2.15 通信
2.16 压缩
2.17 并发
2.18 数据类型
2.19 PDF
2.20 XML
2.21 度量
2.22 面向对象编程
2.23 Web 前端
2.24 调试
2.24.1 另请参阅
2.24.2 外部链接
[编辑] 包管理器
包管理器
描述
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/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 (SAIL) 是一个小型、快速、跨平台的图像解码库。
SDL
Simple DirectMedia Layer (SDL) 是一个用于输入、音频、绘图及更多功能的跨平台库。
SIGIL
Simple2d
一个小型、简单、跨平台的 SDL2/OpenGL 封装,提供绘图、媒体、窗口和输入功能。
MIT
[编辑] 通用
库
描述
许可证
配置
libmixf
[编辑] 进程间通信
库
描述
许可证
配置
dbus
dee
gdbus
[编辑] 数据库
库
描述
许可证
配置
berkeley_db
libfmrt
libmongoc
MongoDB 官方 C 驱动库(文档)。它提供用于 CRUD 操作的优化 API、全面的功能支持(包括 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
统一通信 X (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
[编辑] Web 前端
库
描述
许可证
配置
cgit
[编辑] 调试
库
描述
许可证
配置
dbg-macro
一些用于快速、粗糙调试的宏,它们会打印并返回给定表达式的值,灵感来自 Rust 的 dbg!(...) 宏及其 C++ 变体。
MIT
[编辑] 另请参阅
C++ 文档,了解 非 ANSI/ISO 库
[编辑] 外部链接
1.
C 单元测试框架列表 — 在维基百科
2.
精选的(很棒的)C 和 C++ 库列表 — 在 GitHub
3.
C 开源游戏和框架列表 — 在 GitHub.io