开源 C 库列表

开源 C 库列表

本页旨在建立一个全面的开源 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

相关文章