优秀 C 语言开源项目
这里收集 C 语言相关的优秀开源项目,包括构建系统、编译器、数据库、加密、网络库等。
标准库
- Bionic:谷歌为 Android 开发的 C 标准库。3-clause BSD。官网
- dietlibc:标准 C 库,可能是最小的二进制文件。GNU GPL2.1。官网
- glibc:GNU C 库。一个 C 标准库的实现。 GNU LGPL2.1。官网
- musl:标准 C 库,兼容 POSIX 2008 和 C11,为静态链接设计。Expat。官网
数据库
- BerkeleyDB:一个高性能的嵌入式键值对数据库。GNU AGPLv3。官网
- Hiredis:一个极简的 Redis 客户端。3-clause BSD。官网
- LMDB:一个极快,极简的嵌入式键值对数据存储系统。newOpenLDAP。官网
- MariaDB:一个强壮,可扩展和可靠的 SQL 服务器,设计来作为 MySQL 的替代品。3-clause BSD。官网
- mongo-c-driver:一个高性能的 MongoDB 客户端。Apache2.0.官网
- PostgreSQL:一个强大的对象关系数据库系统。PostgreSQL licence。官网
- recutils:一个工具和 C 库的集合,用于访问可编辑,纯文本的名为 recfiles 的数据库文件。GNU GPL3 或更高版本。官网
- Redis:一个先进的键值 对存储系统。3-clause BSD。官网
- sophia:一个现代,可嵌入的键值对数据库。FreeBSD。官网
- SQLite:一个自包含,无服务器,零配置,支持事务的 SQL 数据库引擎,包括 C 接口。公开领域。官网
- TDengine:一个为物联网设计优化的开源时序数据库及大数据平台。AGPL-3.0,官网
- UnQLite:一个自包含,无服务器,零配置,支持事务的 NoSQL 数据库引擎,包括 C 接口。FreeBSD。官网
网络编程
- asnlc:一个把 ASN.1 规范转换为 C 代码的编译器。FreeBSD。官网
- czmq:一个 ZeroMQ 的高级绑定。官网
- GNU adns:一个高级,易用,异步的 DNS 客户 端和实用工具。GNU GPL3 及更高版本。官网
- GNU SASL:一个简单身份认证和安全层和一些常见 SASL 机制的实现。GNU GPL3 及更高版本。官网
- GnuTLS:一个安全通信库,实现了 SSL,TLS 和 DTLS。GNU LGPL2.1 及更高版本。官网
- gumbo-parser:一个 C99 标准的 HTML5 解析库。Apache2.0。官网
- http-parser:一个 HTTP 请求回应解析器。Expat。官网
- ldns:一个简化 DNS 编程的库。3-clause BSD。官网
- libcurl:一个客户端的 URL 转换库,支持多种格式。curl license。官网
- LibEtPan:一个邮件库,支持 IMAP,SMTP,POP 和 NNTP 网络协议。3-clause BSD。官网
- libev:一个事件驱动库。FreeBSD.官网
- libevent:一个在网络服务器中事件驱动库的可替代品。3-clause BSD。官网
- libgss:通用安全服务。GNU GPL3 或更高版本。官网
- libhttpd:一个给应用或嵌入式设备添加基本 Web 服务器功能的库。GNU GPL2。官网
- libhv:一个比libevent、libuv更易用的国产网络库,可用来开发 TCP/UDP/SSL/HTTP/WebSocket 客户端/服务端。3-clause BSD。官网
- libidn:Stringprep,Punycode 和 IDNA 规范的实现。GNU GPL3 或更高版本。官网
- libmicrohttpd:一个迷你库,可作为其他应用的一部分,让运行 HTTP 服务器变得简单。GNU LGPL2.1 或更高版本。官网
- libsoup:一个 GNOME HTTP 客户端/服务器库,使用了 GObject。GNU LGPL2.1。官网
- lwan:一个实验性,可扩展,高性能的 HTTP 服务器。 GNU GPL2.1。官网
- mongoose:基于 C 的嵌入式 Web 服务器。GNU GPL2.1。官网
- nanomsg:一个基于 C 的 ZeroMQ 实现。Expat。官网
- onion:易于使用的 HTTP 服务器库。Apache2.0。官网
- OpenSSL:一个 SSL 和 TLS 协议的实现,还包括一个加密库。Dual Licensed under the OpenSSL License and the SSLeay License。官网
- oSip:一个基于 C 的 SIO 实现,没有额外的依赖。GNU LGPLv2.1 或更高版本。官网
- s2n:一个 C99 标准的 TLS/SSL 协议的实现,简单,快并且以安全优先。Apache2.0。官网
- socket99:BSD 套接字 API 的 C99 封装。ISC。官网
- Tox:一个通信平台,被设计为 Skype 杀手。GNU GPL3。官网
- twitc:一个与 Twitter OAuth API 交互的迷你 C 库。Expat。官网
图形界面
- lvgl :一个免费的开源图形库(GUI),也称为 LittlevGL,具有强大且易于使用的图形 元素、美观的视觉效果,支持触摸屏操作,移植简单方便,适用于 MCU 级别的设备,支持各类输入输出接口与芯片,支持使用 GPU。
JSON
- cJSON:一个 ANSI C 实现的超轻量级 JSON 解析器。MIT License。
- Jansson:一个编码,解码和处理 JSON 的 C 库。Expat。官网
- jsmn:一个极简的 JSON 解析器。Expat。官网
- json-c:一个处理 JSON 的库。Expat。官网
- WJElement:高级 JSON 处理库,支持 JSON Schema。任意版本的 LGPL。官网
- YAJL:一个很快的 JSON 流解析 C 库。ISC。官网
实用工具库
一个“包罗万象”的类别,适用于不适合其他任 何地方的任何内容。
- libnfc - Platform-independent Near-Field Communication library.
LGPL-3.0-only
- libusb - Provides generic access to USB devices.
LGPL-2.1-or-later
- zlog - Reliable, pure C logging library.
LGPL-2.1-only