A list of open source C libraries
From cppreference.net
本页面的目标是构建一个全面的开源C语言库列表,以便当需要特定功能的实现时,无需浪费时间在网络上搜索( DuckDuckGo 、 Google 、 Bing 等)。
如果您了解可能对他人有用的库,请在此处添加其链接。除要求库的 源代码 必须易于 获取 下载外,对收录内容没有任何限制。
本页面“按原样”提供——希望能有所帮助,但不作任何担保。此处可能出现过时、误导性或错误的链接。若您发现此类问题,修正错误将不胜感激。
目录 |
包管理器
| 包管理器 | 描述 |
|---|---|
| build2 | 开源(MIT协议)的跨平台构建工具链,旨在为C/C++项目开发与打包提供近似Rust Cargo的便捷性,同时提供更深入的构建系统灵活度。 |
| cget | Cmake包获取工具,可用于下载和安装cmake软件包。 |
| cmodule | 非侵入式cmake依赖管理工具。 |
| conan | 去中心化的开源(MIT协议)C/C++包管理器。 |
| CPM.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 | S quirrel A bstract I mage L ibrary 是一个轻量、快速、跨平台的图像解码库。 | ||
| SDL | S imple D irectMedia L ayer 是跨平台的输入、音频、绘图等多功能库。 | ||
| 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 | 实现轻量级、高性能、自包含、高可靠性、全功能SQL数据库引擎的C语言库。SQLite是全球使用最广泛的数据库引擎( 源码 )( 文档 )。 | 公共领域 |
配置
| 库名称 | 功能描述 | 许可协议 | 配置方式 |
|---|---|---|---|
| libconfig | |||
| libconfini |
环境
| 库名称 | 功能描述 | 许可协议 | 配置方式 |
|---|---|---|---|
| libXDGdirs |
通信
| 库名称 | 功能描述 | 许可协议 | 配置方式 |
|---|---|---|---|
| gsoap | |||
| KCP | 一种快速可靠的ARQ协议,可帮助应用程序降低网络延迟 | MIT | |
| libcurl | |||
| libmicrohttpd | |||
| libsagui | |||
| MQTT-C | GitHub仓库 | MIT | |
| nanomsg | 提供通用通信模式的套接字库;无外部依赖;跨平台。现已被 nng 取代 | MIT/X11 | |
| UCX | 统一通信架构(UCX)为消息传递(MPI)、共享内存(PGAS)和RPC/数据为中心的应用提供优化的通信层 | BSD3 | |
| zeromq | |||
| libusb | 可跨平台使用的C语言库,提供对USB设备的通用访问功能 |
压缩
| 库名称 | 功能描述 | 许可协议 | 配置方式 |
|---|---|---|---|
| bzip2 | |||
| lz4 | |||
| zlib |
Concurrency
| 库名称 | 功能描述 | 许可协议 | 配置方式 |
|---|---|---|---|
| ck | |||
| MutexGear | 纯互斥锁同步机制(轮询锁、读写锁、工作队列) | MutexGear库许可 |
数据类型
| 库名称 | 功能描述 | 许可协议 | 配置方式 |
|---|---|---|---|
| bstrlib | |||
| datastd | |||
| str | 又一个用于C语言的字符串库 |
| 库名称 | 功能描述 | 许可协议 | 配置方式 |
|---|---|---|---|
| PDFio | 用于读写PDF文件的简易C语言库 | Apache-2.0 | make |
XML
| 库名称 | 功能描述 | 许可协议 | 配置方式 |
|---|---|---|---|
| expat | |||
| gsoap |
指标
| 库名称 | 功能描述 | 许可协议 | 配置方式 |
|---|---|---|---|
| edlib |
面向对象编程
| 库名称 | 功能描述 | 许可协议 | 配置方式 |
|---|---|---|---|
| Cello | |||
| GObject |
Web 前端
| 库名称 | 功能描述 | 许可协议 | 配置方式 |
|---|---|---|---|
| cgit |
调试
| 库名称 | 功能描述 | 许可证 | 配置选项 |
|---|---|---|---|
| dbg-macro | 受Rust语言 dbg ! ( ... ) 宏及其C++变体启发,提供若干可打印并返回给定表达式值的宏,用于快速简易调试 | MIT |
参见
|
C++ documentation
for
Non-ANSI/ISO Libraries
|
外部链接
| 1. | C语言单元测试框架列表 — 维基百科 |
| 2. | 精选C/C++库资源列表 — GitHub |
| 3. | C语言开源游戏与框架列表 — GitHub.io |