Go常用资源列表(持续更新)
Awesome go 最全资源列表
Awesome go 中文版
以下是项目中使用到的部分package。
网络
mux
实现了请求路由器和调度程序,用于将传入请求与其各自的处理程序匹配。例如统一HTTP与RPC服务入口。
数据库
db migrate
支持常见的数据库升级与降级
redis
elasticsearch cli
gorm
GORM 是 Go 语言的 ORM 包,功能强大,调用方便。
模板引擎
pongo2
非预编译,类django特性的引擎,简单易用
hero
预编译模板引擎,性能更好
监控
Prometheus Client
开发exporter
日志
Uber zap
对性能和内存做了极致的优化
命令工具
Cobra
kubectl使用Cobra开发命令行工具
Kingpin
go-flags
cli
goctl工具使用是这个命令行工具
单元测试
Mock testify/mock
可用来Mock Http请求
Sql mock driver
可以用来模拟数据库连接。数据库是项目中比较常见的依赖,在遇到数据库依赖时都可以用它。
Testify
测试断言包
Automatically generate Go test boilerplate from your source code
自动生成测试用例
Go testing in the browser
GoConvey 是一款针对 Golang 的测试框架,可以管理和运行测试用例,同时提供了丰富的断言函数,并支持很多 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的创建与解析
backoff
重试工具,支持指数退避算法
Kubernetes client
aws client
text/tabwriter go自带输出对齐
goquery
类似jquery解析html dom
bindata
将静态文件转为GO文件
cookiecutter
项目初始化生成,可按照生产最佳实践快速启动各种项目
分布式作业系统
Dkron - Distributed, fault tolerant job scheduling system https://dkron.io
dkron 是一个分布式、启动迅速、带容错机制的定时作业系统,支持 crontab 表达式。它具有下面这些核心特性。
- 易用:可以通过易操作、漂亮的 Web 界面来管理作业。
- 可靠:具备容错机制,一个节点不可用,其他节点可继续执行作业。
- 高可扩展性:能够处理大量的计划作业和数千个节点。
ouqiang/gocron: 定时任务管理系统
gocron 是国人开发的轻量级定时任务集中调度和管理系统, 用于替代 Linux-crontab。它具有下面这些核心特性。
- 具有 Web 界面管理定时任务。
- 支持 crontab 时间格式,并精确到秒。
- 支持 shell 命令和 HTTP 请求两种任务格式。具
- 有任务超时机制、任务依赖机制、任务执行失败可重试机制。
- 支持查看任务执行日志,并支持用邮件、Slack、Webhook 等方式通知任务执行结果。
robfig/cron: a cron library for go (github.com)
一个可以实现类似 Linux crontab 定时任务的 cron 包,支持到秒