15款值得學習的小型開源項目,帶你快速步入開源世界

對於初學者來說,小型開源項目更容易理解和學習,那麼目前有哪些值得學習的小型開源項目?本文收集整理了知乎上網友推薦的一些不錯的小型項目,代碼基本都在5000行以內,感興趣的朋友可以研究下~

##SeaJS

Sea.js是一個遵循CommonJS規範的JavaScript模塊加載框架,可以實現JavaScript的模塊化開發及加載機制。Sea.js 追求簡單、自然的代碼書寫和組織方式,代碼非常精簡。

##Koa

Koa 是下一代的 Node.js 的 Web 框架。由 Express 團隊設計。旨在提供一個更小型、更富有表現力、更可靠的 Web 應用和 API 的開發基礎。

##pssh

pssh 提供了並行版本的 OpenSSH 工具,特別適合用來控制有大量機器需要連接的情況,包括並行版本的 ssh、scp、rsync 和 kill 命令。該項目是Python寫的,代碼清晰而簡短,數據結構定義的很清楚,看了之後你會稱讚的。

##grep-at-point

在寫代碼的時候,有時候會需要查看某個函數/類/變量在哪些地方被使用過。該項目用emacs lisp語言寫成,可實現在項目目錄下,所有指定擴展名的文件中,搜索當前光標所在的單詞。

##compile-make

該項目可實現emacs中一鍵編譯的需求。在項目目錄下尋找Makefile文件,並執行make命令進行編譯。 語言:emacs lisp ;代碼行數:19。

##sigslot

很精簡的 signal slot的實現,跨平臺。這個源碼有2000多行,但是一大半是為了模板適配不同個數的參數的代碼,乾貨不足1000行。

##UCOS

uC/OS II(Micro Control Operation System Two)是一個可以基於 ROM運行的、可裁減的、搶佔式、實時多任務內核,具有高度可移植性,特別適合於微處理器和控制器,是和很多商業操作系統性能相當的實時操作系統(RTOS)。

##SQLite

SQLite是遵守ACID的關聯式數據庫管理系統,它包含在一個相對小的C庫中。它是D.RichardHipp建立的公有領域項目。SQLite亦可以作為桌面數據庫使用。

##thttpd

thttpd 是一個小型的、簡單的、可移植的、快速以及安全的HTTP服務器。

##Boa Webserver

boa是一個小型的web服務器,可以用於多種平臺,在嵌入式中比較常見。

##C4

4個函數實現的c編譯器,大約500行。基本上已經比較完備了,可以自己編譯自己。

##GLib

GLib 是一個包含很多有用的 C 程序的開發包,例如樹、哈希、列表等。GLib 之前是屬於 GTK 工具包的一部分,現在獨立出來成為單獨項目。

##tj/co

不到三百行,用於改善 node 異步回調語法。

##shadowsocks

shadowsocks 是一個基於 python 的輕量級 socks 代理軟件(誰用誰知道)。

##aosabook

這是一本牛書aosabook的續集,500 Lines or Less的源碼。裡面每一章的代碼不超過500行,實現了web服務器、爬蟲、OCR等等“大型系統”,每一章由不同領域的大牛完成。看看作者列表,可以說是軟件領域的名人堂。


书籍推荐