对于初学者来说,小型开源项目更容易理解和学习,那么目前有哪些值得学习的小型开源项目?本文收集整理了知乎上网友推荐的一些不错的小型项目,代码基本都在5000行以内,感兴趣的朋友可以研究下~

1、SeaJS
Sea.js是一个遵循CommonJS规范的JavaScript模块加载框架,可以实现JavaScript的模块化开发及加载机制。Sea.js 追求简单、自然的代码书写和组织方式,代码非常精简。

2、Koa
Koa 是下一代的 Node.js 的 Web 框架。由 Express 团队设计。旨在提供一个更小型、更富有表现力、更可靠的 Web 应用和 API 的开发基础。

3、pssh
pssh 提供了并行版本的 OpenSSH 工具,特别适合用来控制有大量机器需要连接的情况,包括并行版本的 ssh、scp、rsync 和kill 命令。该项目是Python写的,代码清晰而简短,数据结构定义的很清楚,看了之后你会称赞的。

4、grep-at-point
在写代码的时候,有时候会需要查看某个函数/类/变量在哪些地方被使用过。该项目用emacs lisp语言写成,可实现在项目目录下,所有指定扩展名的文件中,搜索当前光标所在的单词。

5、compile-make
该项目可实现emacs中一键编译的需求。在项目目录下寻找Makefile文件,并执行make命令进行编译。 语言:emacs lisp;代码行数:19。

6、sigslot
很精简的 signal slot的实现,跨平台。这个源码有2000多行,但是一大半是为了模板适配不同个数的参数的代码,干货不足1000行。
Gtalk源码剖析之:sigslot介绍

7、UCOS
uC/OS II(Micro Control Operation System Two)是一个可以基于 ROM 运行的、可裁减的、抢占式、实时多任务内核,具有高度可移植性,特别适合于微处理器和控制器,是和很多商业操作系统性能相当的实时操作系统(RTOS)。

8、SQLite
SQLite是遵守ACID的关联式数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。SQLite亦可以作为桌面数据库使用。

9、thttpd
thttpd 是一个小型的、简单的、可移植的、快速以及安全的HTTP服务器。

10、Boa Webserver
boa是一个小型的web服务器,可以用于多种平台,在嵌入式中比较常见。

11、C4
4个函数实现的c编译器,大约500行。基本上已经比较完备了,可以自己编译自己。

12、GLib
GLib 是一个包含很多有用的 C 程序的开发包,例如树、哈希、列表等。GLib 之前是属于 GTK 工具包的一部分,现在独立出来成为单独项目。

13、tj/co
不到三百行,用于改善 node 异步回调语法。

14、shadowsocks
shadowsocks 是一个基于 python 的轻量级 socks 代理软件(谁用谁知道)。

15、aosabook
这是一本牛书aosabook的续集,500 Lines or Less的源码。里面每一章的代码不超过500行,实现了web服务器、爬虫、OCR等等"大型系统",每一章由不同领域的大牛完成。看看作者列表,可以说是软件领域的名人堂。

文章出处:http://code.csdn.net/news/2822568