# C语言开源工程精选 **Repository Path**: jiaota/c-projects ## Basic Information - **Project Name**: C语言开源工程精选 - **Description**: C语言的开源工程精选 - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-03-28 - **Last Updated**: 2023-05-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## C语言开源工程精选 这里记录我自己感兴趣的C语言开源工程。 我选择的依据是设计实现优秀,相对适合阅读学习。 我会逐一学习这些工程,并将学习过程记录在[脚踏实地C语言](https://gitee.com/jiaota/jiaota-c)里。 ## 工程与说明 ### 文本相关 - [linenoise](https://github.com/antirez/linenoise) - readline替代品 - [kilo](https://github.com/antirez/kilo) - 极简的文本编辑器,类似Nano。也是redis作者antirez的作品 这两个工程都是redis作者antirez大神开发的小巧工程,值得学习。 另外,网上还有一篇从零开始实现kilo的教程可供参考: - [Build Your Own Text Editor](https://viewsourcecode.org/snaptoken/kilo/index.html)。 ### 网络相关 - [libuv](https://github.com/libuv/libuv) - 跨平台异步I/O 这个库是很多异步网络框架的基础。 - [libevent](https://github.com/libevent/libevent) - 异步事件库 这个库也很有名,和libuv有重叠的地方,可以对比学习。 - [TinyHTTPD](https://sourceforge.net/projects/tinyhttpd/) - 极简的HTTP服务器,只有500多行代码 - [picohttpparser](https://github.com/h2o/picohttpparser) - 小巧的HTTP解析器 - [picotcp](https://github.com/tass-belgium/picotcp) - 小型的TCP/IP协议栈 - [libmill](https://github.com/sustrik/libmill) - Go风格协程库 ### 数据相关 - [redis](https://github.com/redis/redis) - 大名鼎鼎的kv数据库 - [redis-client](https://github.com/redis/hiredis) - 这是redis的客户端 Redis是大神antirez开发的著名数据库,网上可以找到大量的学习资料,还有经典的《Redis设计与实现》一书可以参考。非常适合入门到进阶的程序员进行学习。 - [nanopb](https://github.com/nanopb/nanopb) - Protocol Buf - [cJSON](https://github.com/DaveGamble/cJSON) - JSON解析器和生成器 - [json-parser](https://github.com/Barenboim/json-parser) - JSON解析器,比cJSON快 ### 图形与UI相关 - [sokol](https://github.com/floooh/sokol) - 跨平台的轻量级图形API - [Nuklear](https://github.com/Immediate-Mode-UI/Nuklear) - 极简的立即模式ui库,类似与ImGui - [raygui](https://github.com/raysan5/raygui) - 基于raylib的ui库 ### 游戏相关 - [raylib](https://github.com/raysan5/raylib) - C图形库,可以拿来做游戏引擎 - [mgba](https://github.com/mgba-emu/mgba) - GBA模拟器 ### 数据结构与算法 - [uthash](https://github.com/troydhanson/uthash) - 哈希表实现 - [TheAlgorithms](https://github.com/TheAlgorithms/C) - 面向教育的通用算法库,支持各种语言,这是其中C语言的版本 ### 其他工具 - [stb](https://github.com/nothings/stb) - 简单的C工具集合库 - [inih](https://github.com/benhoyt/inih) - INI配置文件解析器 - [miniz](https://github.com/richgel999/miniz) - ZIP文件压缩和解压库 - [zlog](https://github.com/HardySimpson/zlog) - 纯C日志库 - [log.c](https://github.com/rxi/log.c) - 日志库