1. 程式人生 > >go開源專案整理-新手篇

go開源專案整理-新手篇

參考連結:
google整理的不錯的開源專案
https://github.com/golang/go/wiki/Projects
https://studygolang.com/articles/7708
下面推薦幾款適合學習的專案:
小弟以前對IM聊天工具和爬蟲情有獨鍾,所以選擇的入手開源專案是
Pholcus(幽靈蛛)一塊開源的分散式爬蟲。
後續也可以和python開源爬蟲框架scrapy一起對照學習

1、cache2go
https://github.com/muesli/cache2go

比較簡單的一個快取庫,程式碼量很少,適合新手學習,可以學習到鎖、goroutines等。

2、groupcache

https://github.com/golang/groupcache

與memcached同一作者,相當於是memcached的go語言實現。

3、nsq
https://github.com/bitly/nsq
訊息分發平臺,閱讀程式碼可以瞭解到很多分散式、負載均衡等方面的程式設計。

4、grpc
GRPC 是一個高效能、開源和通用的 RPC 框架,面向移動和 HTTP/2 設計。目前提供 C、Java 和 Go 語言版本,分別是:grpc, grpc-java, grpc-go.

5.boom測試工具
Boom 是 google 一女工程師使用 Go 語言開發的類似 apache ab 的效能測試工具。相比 ab,boom跨平臺性更好,而且更容易安裝。

6.FishChat
https://github.com/oikomi/FishChatServer
FishChat(魚傳——魚傳尺素)分散式可伸縮 IM 伺服器,是一款純 golang 編寫優秀的即時通訊軟體(IM), 它集合了市面上已有產品的優點, 並具備 智慧硬體閘道器管理(學習QQ物聯思想, 構思中)。

7.MailSlurper
MailSlurper 是一個便攜的 SMTP 郵件伺服器,對本地和團隊應用開發來說非常有用。MailSlurper 體積小執行快速,支援 SQLite, MSSQL 和 MySQL. 資料庫。

8.Meizar
golang實現抓取妹子圖。預設圖片來源網站:

http://jandan.net。 也可以自定義規則抓取其它網站的圖片

9.Pholcus
Pholcus(幽靈蛛)是一款純Go語言編寫的高併發、分散式、重量級爬蟲軟體,支援單機、服務端、客戶端三種執行模式,擁有Web、GUI、命令列三種操作介面;規則簡單靈活、批量任務併發、輸出方式豐富(mysql/mongodb/csv/excel等)、有大量Demo共享;同時她還支援橫縱向兩種抓取模式,支援模擬登入和任務暫停、取消等一系列高階功能

10.goim
goim 是一個支援叢集的im及實時推送服務(支援websocket,http和tcp協議)

11.fasthttp
asthttp 是 Go 的快速 HTTP 實現,當前在 1M 併發的生產環境使用非常成功,可以從單個伺服器進行 100K qps 的持續連線。HTTP 伺服器效能與 net/http 比較,fasthttp 比 net/http 快 10 倍

12.gohttp
gohttp是一個http的檔案伺服器,功能有:各種檔案的預覽功能,實時的目錄zip打包下載,二維碼掃描下載的支援,蘋果應用的線上安裝,檔案上傳等

13.bosun
專業的跨平臺開源系統監控專案,go語言編寫,靈活的模板和表示式配合上各種collector可以監控任何應用或系統級的執行資料,比 zabbix更輕量級、更易入手和更適合定製。

備註:
由於小弟專注於伺服器開發,所以web開發並不在我的學習範疇之內。
web開發框架
1.beego
beego是一個用Go開發的應用框架,思路來自於tornado,路由設計來源於sinatra,