众所周知,相对于 Python 、Java 、Go 、JavaScript 等语言,C 语言有一个非常精简的标准库。这就使得在使用时往往有许多标准库完成不了的需求:国际化、JSON 解析、HTTP 请求、异步 I/O……
其实 Rust 等语言也有这样的问题。但偏偏糟糕的是,C 没有一个良好的包管理器和集中的包仓库(尽管 conan 、vcpkg 、CPM 在努力了,但想用它们一览所有包还是不现实),这使得寻找需要的库变得异常艰难。尽管存在 awesome-c 这样的列表,但从浩如烟海的列表中找出一个稳定性、流行度、维护良好、文档完善的库无异于大海捞针。一个例证是很多 C 项目最终会选择直接自己实现一些功能模块。
关于此现象,受到 blessed.rs 这个项目的启发,我创建了一个名为 Blessed C 的项目。它本质上是一种精心遴选的 Awesome List:将库以用例分类,选出每个类别中维护最积极、最流行甚至已成为事实标准的一个库(理想情况下)或几个库。
blessed.rs 的副标题是「一个非官方的 Rust 生态指南」,我也大言不惭地叫它「现代 C 生态系统使用指南」了,哈哈。
这样,当一个 C 新手询问你「 XXX 功能用什么库」的时候,你就可以把链接甩给 Ta ,告诉 Ta 不要自己造轮子了。
链接在这里,目前暂时部署在我的 GitHub Pages 上:https://w568w.github.io/blessed-c/。
ps:我不是专业的 C 程序员,其中一些我也不了解的领域则是从 awesome-c 等项目中人工挑选或是利用 Google 等搜索引擎搜索得到的。如果你认为有更好的库或者有的选择明显存在我的个人偏见,欢迎在本帖下回复介绍或者直接 GitHub 上提 issues 。
我的仓库地址:https://github.com/w568w/blessed-c/。欢迎 star 。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.