Go的一些常用开源组件地址
优秀go组件合集
精选的优秀go组件合集 awesome-go
Go脚本化常用包
输出对应编码颜色的包color
用于为执行时间过久的任务创建进度条的包progressbar
用于捕获源代码的文件名、行号、函数等信息的包,用于改正错误信息whereami
创建带有输入选项和相关文档的复杂脚本的包cobra
Redis组件
类型安全的Go语言Redis客户端 go-redis
命令行
现代的Go命令行支持工具 cobra
HTTP客户端
简单的HTTP请求客户端 gorequest
配置文件管理
配置读取和管理 viper
日志组件
日志组件 zap
系统监控工具箱
系统监控psutil工具 gopsutil
文件变更监控
跨平台的文件监控 fsnotify
可视化实时运行时统计
可视化实时运行时统计 statsviz
协程
协程池 ants
编解码
map转化为struct mapstructure
在相同的结构体或map之间赋值 mergo
解析任意的json格式go-simplejson
接口文档
自动生成接口文档 go-swagger
自动生成接口文档 [swaggo](go get -u github.com/swaggo/swag/cmd/swag) 可配合gin框架
权限管理
支持ACL/RBAC/ABAC多种权限管理 casbin
定时任务
定时任务管理cron
可视化
生成可视化Go调用图 go-callvis
平滑重启
可监测可升级的平滑重启组件 overseer
本地缓存
尽量存放变化不频繁的数据 + 设置合理的过期时间 + 如果QPS过高尽量异步set + 监控确保key不要过多
二维码
二维码 go-qrcode
数据校验
数据校验 govalidator
数据校验2 validator
Go代码修改后的热重载调试(Hot Reload)
热重载调试 fresh
图形化界面开发
基于OpenGL和Material Design的跨平台GUI库 fyne
安全编码检查
安全编码检查工具 gosec
开源的分布式跟踪库
其中最受欢迎的库有Zipkin和Jaeger,它们都支持OpenTracing。
读写Excel
Excel读写组件tealeg
限流熔断器
限流熔断器 sentinel-golang
Metrics
服务指标度量 go-metrics
WebSocket
ws/wss gorilla/websocket
Go App热编译重载
Air air
Mock工具
GoMock mock
gRPC
grpc-gateway grpc-gateway
规则引擎
bilibili开源的规则引擎gengine
知名项目
- 云计算基础设施代表项目:docker、kubernetes、etcd、consul、cloudflare、CDN、云存储等
- 基础软件代表项目:tidb、influxdb、cockroachdb等
- 微服务代表项目:go-kit、micro、monzo bank 的 typhon、bilibili 等
- 互联网基础设施代表项目:以太坊、hyperledger、Dropbox、Hugo 等