跳到主要内容

优秀 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官网

实用工具库

一个“包罗万象”的类别,适用于不适合其他任何地方的任何内容。