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-cache
本地缓存组件2 bigcache
本地缓存组件3 freecache

二维码

二维码 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

知名项目

  1. 云计算基础设施代表项目:docker、kubernetes、etcd、consul、cloudflare、CDN、云存储等
  2. 基础软件代表项目:tidb、influxdb、cockroachdb等
  3. 微服务代表项目:go-kit、micro、monzo bank 的 typhon、bilibili 等
  4. 互联网基础设施代表项目:以太坊、hyperledger、Dropbox、Hugo 等

其他

Github中文项目排行榜
后端架构师技术图谱