
Awesome go 最全資源列表
Awesome go 中文版
以下是項目中使用到的部分package。
網(wǎng)絡
mux
實現(xiàn)了請求路由器和調(diào)度程序,用于將傳入請求與其各自的處理程序匹配。例如統(tǒng)一HTTP與RPC服務入口。
數(shù)據(jù)庫
db migrate
支持常見的數(shù)據(jù)庫升級與降級
redis
elasticsearch cli
gorm
GORM 是 Go 語言的 ORM 包,功能強大,調(diào)用方便。
模板引擎
pongo2
非預編譯,類django特性的引擎,簡單易用
hero
預編譯模板引擎,性能更好
監(jiān)控
Prometheus Client
開發(fā)exporter
日志
Uber zap
對性能和內(nèi)存做了極致的優(yōu)化
命令工具
Cobra
kubectl使用Cobra開發(fā)命令行工具
Kingpin
go-flags
cli
goctl工具使用是這個命令行工具
單元測試
Mock testify/mock
可用來Mock Http請求
Sql mock driver
可以用來模擬數(shù)據(jù)庫連接。數(shù)據(jù)庫是項目中比較常見的依賴,在遇到數(shù)據(jù)庫依賴時都可以用它。
Testify
測試斷言包
Automatically generate Go test boilerplate from your source code
自動生成測試用例
Go testing in the browser
GoConvey 是一款針對 Golang 的測試框架,可以管理和運行測試用例,同時提供了豐富的斷言函數(shù),并支持很多 Web 界面特性。
go自帶代碼測試覆蓋率分析工具
$ go test -coverprofile=coverage.out
$ go tool cover -func=coverage.out
$ go tool cover -html=coverage.out -o coverage.html
工具集
go yaml
uuid
uuid的創(chuàng)建與解析
backoff
重試工具,支持指數(shù)退避算法
Kubernetes client
aws client
text/tabwriter go自帶輸出對齊
goquery
類似jquery解析html dom
bindata
將靜態(tài)文件轉(zhuǎn)為GO文件
cookiecutter
項目初始化生成,可按照生產(chǎn)最佳實踐快速啟動各種項目
分布式作業(yè)系統(tǒng)
Dkron - Distributed, fault tolerant job scheduling system https://dkron.io
dkron 是一個分布式、啟動迅速、帶容錯機制的定時作業(yè)系統(tǒng),支持 crontab 表達式。它具有下面這些核心特性。
- 易用:可以通過易操作、漂亮的 Web 界面來管理作業(yè)。
- 可靠:具備容錯機制,一個節(jié)點不可用,其他節(jié)點可繼續(xù)執(zhí)行作業(yè)。
- 高可擴展性:能夠處理大量的計劃作業(yè)和數(shù)千個節(jié)點。
ouqiang/gocron: 定時任務管理系統(tǒng)
gocron 是國人開發(fā)的輕量級定時任務集中調(diào)度和管理系統(tǒng), 用于替代 Linux-crontab。它具有下面這些核心特性。
- 具有 Web 界面管理定時任務。
- 支持 crontab 時間格式,并精確到秒。
- 支持 shell 命令和 HTTP 請求兩種任務格式。具
- 有任務超時機制、任務依賴機制、任務執(zhí)行失敗可重試機制。
- 支持查看任務執(zhí)行日志,并支持用郵件、Slack、Webhook 等方式通知任務執(zhí)行結(jié)果。
robfig/cron: a cron library for go (github.com)
一個可以實現(xiàn)類似 Linux crontab 定時任務的 cron 包,支持到秒
微服務框架
go-kit/kit: 微服務標準庫: 應用Go kit
go-zero: 云原生生產(chǎn)級別微服務框架
Kratos: 一套輕量級 Go 微服務框架,包含大量微服務相關框架及工具