我想很多程序员应该记得 GitHub 上有一个 Awesome:XXX 系列的资源整理。awesome-c 是 koz.ross 发起维护的 C 语言资源列表,内容包括了:构建系统、编译器、数据库、加密、初中高的教程/指南、书籍、库等等。
Awesome 系列虽然挺全,但基本只对收录的资源做了极为简要的介绍,如果有更详细的中文介绍,对相应开发者的帮助会更大。这也是我们发起这个开源项目的初衷。
- 基于 awesome-c 列表,我们将对其中的各个资源项进行编译整理。此外还将从其他来源补充好资源。
- 整理后的内容,将收录在伯乐在线资源频道。可参考已整理的内容:
欢迎大家为列表贡献高质量的新资源,提交PR时请参照以下要求:
- 请确保推荐的资源自己使用过
- 提交PR时请注明推荐理由
资源列表管理收到PR请求后,会定期(每周)在微博转发本周提交的PR列表,并在微博上面听取使用过这些资源的意见。确认通过后,会加入资源大全。
感谢您的贡献!
注:名单不分排名,不定期补充更新
- 构建系统
- 编译器
- 加密
- 数据库
- 文档生成
- 编辑器
- 环境
- 框架
- 游戏编程
- 通用编程
- 图形
- GUI
- JSON
- 学习、参考和指南
- 多媒体
- 网络编程
- 数值计算
- 并行编程
- 正则表达式
- 序列化
- 源码集锦
- 标准库
- 字符串处理
- 测试工具
- 文本编辑器扩展
- 工具
- 其他工具
- XML
- 其他资源
下面是一些 C 项目的自动化构建和测试工具。
- aimake:一个被设计来避免复杂配置的构建工具。GNU GPL3 或更高版本。官网
- Autoconf:一个可扩展的 M4 宏指令包,提供命令行脚本来自动配置软件源码包,是 Autotools 的一部分。GNU GPL3 或更高版本。官网
- Automake:一个自动生成符合 GNU 代码标准的 Makefile.in 文件的工具。需要与 Autoconf 配合使用,它也是 Autotools 的一部分。GNU GPL3 或更高版本。官网
- Jam:一个构建系统,它被设计的比make更加易用。隐式地理解 C 的构建规则。Jam License。官网
- Libtool:一个通用库支持脚本,是 Autotools 的一部分。GNU GPL3 或更高版本。官网
- Meson:一个非常快,用户友好的构建系统,基于 Ninja。Apache2.0。官网
- Clang:一个基于 LLVM 的 C 的编译器,支持 C11 标准。NCSA。官网
- CompCert:一个经过充分验证的 C 编译器。支持几乎所有的 C89 标准。GNU GPL2.1 或更高版本。官网
- GCC:在它的编译器集合中提供了 C 编译器。支持 C11 和 OpenMP 的标准。GNU GPL3 或更高版本。官网
- PCC:一个值得尊敬的 C 编译器,支持 C99 标准。Various licenses,完全免费。官网
- TCC:一个迷你,速度快的 C 编译器,支持 C99(除了复杂的类型)。 LGPL2.1。官网
- GnuTLS:一个安全通信库,实现了 SSL,TLS 和 DTLS。GNU GPL2.1 或更高版本。官网
- libgcrypt:一个通用的密码库,支持多种加密方法。 GNU LGPL2.1 (代码),GNU GPL2.1 或更高版本(说明书和工具)。官网
- OpenSSL:一个 SSL 和 TLS 协议的实现,还包括一个加密库。Dual Licensed under the OpenSSL License and the SSLeay License。官网
- libsodium:一个现代,易用的加密库。Expat。官网
- libtomcrypt:一个相当全面,模块化和可移植的工具集。公开领域。官网
- mbed TLS:一个 C 实现的加密库。Apache2.0。官网
下面列出了基于 C API 的数据库和数据存储
- 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 接口。公开领域。官网
- UnQLite:一个自包含,无服务器,零配置,支持事务的 NoSQL 数据库引擎,包括 C 接口。FreeBSD。官网
- Cxref:生成 C 程序的文档,支持 LaTeX,HTML, RTF 或者 SGML 的格式。GPL2.1官网
- DocOnce:一种朴素的标签标记语言,可以用来生成多种格式的文档。BSD-3clause.官网
- Doxygen:一个事实上的标准工具,用于从注释的代码中生成 C 文档。能够生成多种格式的文档。GNU GPL2.1。官网
- GTK-Doc:一个从注释的代码中生成 C 文档的工具,支持 Autotools GNU GPL2.1(代码), GNU FDL1.1。官网
这些是特别精致,IDE 类型的编辑器。如果你想要一个程序员的文本编辑器,看别的地方。此外,不管你选择哪一款编辑器,它都支持 C。
- Anjuta DevStudio:GNOME IDE。 GNU GPL2.1。官网
- Code::Blocks:一个可扩展,可配置的 IDE,支持 C。GNU GPL3。官网
- CodeLite:一个跨平台的 IDE。 GNU GPL2.1。官网
- Eclipse:一个用 Java 写成的 IDE。 EPL。官网
- Geany:一个很小很快的 IDE。 GNU GPL2.1及更高版本。官网
- KDevelop:KDE IDE. GNU GPL2.1。官网
- CLion:JetBrains 推出的 C/C++ 跨平台集成开发环境。官网