工具区 🔧
file
- spf13/afero - 👍 文件系统,对文件的读写删权限等。同时支持内存版本。
- spf13/viper - 👍 读远程、本地(JSON, TOML, YAML, HCL等) 配置文件的工具,内部使用 fsnotify 做热更新。介绍。
- fsnotify/fsnotify - 文件系统信号通知(创建、修改、删除)。
- pelletier/go-toml - 对toml文件读、写、解构到结构体。
- xuri/toml-to-go - 在线
toml To Go Struct
。 - miaogaolin/gotl - 在线
json To Go Struct
、YAML To Go Struct
、XML To JSON
。 - go-ini/ini - 对 ini 配置文件的读写。
- qax-os/excelize [9.2k] - 用于读取和写入Microsoft Excel的Golang库™ (XLSX)文件
encoding
- satori/go.uuid - uuid的生成。
- protocolbuffers/protobuf-go - protobuf
- golang/x/crypto - 补充除官方库外的加密方式。介绍
- lestrrat-go/strftime - 对时间的多种格式化输出。
- mailru/easyjson - 高性能json库,替代官方的
encoding/json
库。 - json-iterator/go - 👍 高性能json库。替代官方的
encoding/json
库。介绍比 easyjson 快。
data structure
- spf13/cast - 👍 从一种类型轻松安全地转换为另一种类型,避免panic。
- golang/x/sync - 提供同步信号、同步map等功能。
- mitchellh/mapstructure - map 与 structure 之间转换。
- imdario/mergo - 合并 structs、maps。
- go-playground/validator - 👍 Go Struct 和 Field 验证,包括 Cross Field、Cross Struct、Map、Slice、Array。介绍。
- gonum/gonum - 数学算法计算库,类似py的 numpy 库。它包含矩阵、统计、优化等库。
- go-gota/gota - 数据处理库(形同内存版sqlite),类似py的 pandas 库。gota底层用的是 gonum。
spider
- PuerkitoBio/goquery [10.4k] - 根据选择器解析html节点。实现类似js(es6)的map、find、等方法。
- gocolly/colly [13.7K] - 👍 爬取静台网站。内部使用 goquery 解析节点。
- chromedp/chromedp [6.1k] - 👍 爬取动态网站,或者需要模拟点击,移动,截图等操作的需求。构造chrome无头浏览器。
log
- uber-go/zap - 👍 高性能的日志库。
- sirupsen/logrus - 👍 强大的日志库,介绍。
cli
- spf13/cobra - 👍 创建强大的现代 CLI 命令行应用程序的库。
- urfave/cli - 用于在 Go 中构建 CLI 命令行应用程序。
- spf13/pflag - POSIX/GNU 风格的 —flags。
other
- lifegit/go-gulu - 👍 👍 常用工具链的封装。
- shirou/gopsutil - 获取 cpu、硬盘、内存、网卡等信息。
- robfig/cron - 定时器。
- gookit/color - 终端显色库,支持8/16色、256色、RGB显色输出,支持Print/Sprintf方式,兼容Windows。
- stretchr/testify - 👍 具有通用断言和模拟的工具包,可以很好地与标准库配合使用。配合单元测试使用。
- go-gomail/gomail - 👍 在 Go 中发送电子邮件的最佳方式。
- jordan-wright/email - 强大而灵活的 Go 电子邮件库。
- golang-standards/project-layout - 一个Go项目的文件基本布局
- goplus/gop - 七牛云大佬基于go出的全新语言go plus,支持很多额外的语法、功能。
- dop251/goja - 纯 Go 中的 ECMAScript/JavaScript 引擎。
backstage
- todo-api-microservice-example - 使用领域驱动设计和洋葱架构的 Go 微服务教程项目!
- gogf/gf - GoFrame 是 Golang 的模块化、强大、高性能的企业级应用程序开发框架。
- GoAdminGroup/go-admin - 一个golang框架帮助gopher十分钟搭建数据可视化和管理面板。
- go-admin-team/go-admin - 基于Gin + Vue + Element UI的前后端分离权限管理系统脚手架。
- backstage/backstage - Backstage 是一个用于构建开发者门户的开放平台
- flipped-aurora/gin-vue-admin - 基于vite+vue3+gin搭建的开发基础平台,五分钟一套CURD前后端代码。
http service
- zenazn/goji - 3.6k,极简的HTTP WEB框架。
- urfave/negroni - 7k,HTTP 中间件。
- go-chi/chi - 9.8k,轻量级 HTTP Web 框架。
- gorilla/mux - 14.8k,强大的 HTTP 路由器和 URL 匹配器。
- labstack/echo - 20.4k,高性能、极简的 HTTP web 框架。
- kataras/iris - 21k,最快的 HTTP/2 Go Web 框架。expressjs 和 Laravel 的真正继承者。
- gin-gonic/gin - 👍 50k,高性能 HTTP Web 框架。
- gin-gonic/autotls - 自动获取证书,为gin添加ssl。
- unrolled/secure - http中间件,添加自定义ssl证书。
- dgrijalva/jwt-go - JSON Web 令牌(JWT)。
- casbin/casbin - 强大且高效的访问权限控制库。
- casbin/gorm-adapter - gorm适配器。Casbin 可以从 Gorm 支持的数据库加载策略或将策略保存到其中。
- mojocn/base64Captcha - 可生成语音、文字、算术等验证码。
- fvbock/endless - 根据信号实现平滑重启(零停机重启)。类似nginx的reload。
Gorilla [15.2K] - 👍 Web工具包。包括mux(Http框架)、websocket、预防CSRF、cookie加密、sessions保存等工具。
http client
go-zoox/fetch - Go Fetch - 简单的 Http 客户端
- monaco-io/request - go request, go http client
- go-resty/resty - Go 的简单 HTTP 和 REST 客户端库
- idoubi/goz - 一个简单的http客户端请求库。
rpc
- smallnest/rpcx - 支持跨语言的rpc服务。支持gateway,拥有不错的中文文档。
- micro/go-micro -
- go-kit/kit -
- 本身不是一个框架,而是一套微服务工具集, 它可以用来解决分布式系统开发中的大多数常见问题。
- 最终,为什么选择go-kit 郑渊。
- How does Go kit compare to Micro? - go-micro 对比 go-kit
- zeromicro/go-zero - 是一个集成了各种工程实践的web和rpc框架。
other
- Terry-Mao/gopush-cluster - Golang 推送服务器集群
orm
- go-gorm/gorm - 👍 强大且友好的orm框架,支持mysql、postgreSql、sqLite、sqlServer,介绍。gen
- xorm - 简单而强大的 Go 语言 ORM 框架。
- jackc/pgx - PostgreSQL driver and toolkit for Go。
- go-redis/redis - redis 客户端。
- mongodb
- qiniu/qmgo [534] -
- 介绍:基于官方驱动,设计参考 mgo。
- 缺点:插入时,数据类型不自动初始化为默认值(例:空切片 会插入 nil)
- 使用:Qmgo - 更好用的Go语言MongoDB driver。
- mongodb/mongo-go-driver [5.9k] -
- 介绍:官方驱动。
- 缺点:不支持链式调用。
- 教程:MongoDB Go驱动程序教程
- 接口:API
- 使用:mongodb官方的golang驱动基础使用
- go-mgo/mgo [2.6k] - 已停止维护。老牌的mongodb驱动,支持链式调用。
⭕️ 以上推荐根据顺序优先级!
- qiniu/qmgo [534] -
workflow 工作流
- go-workflow - go版本极简工作流引擎
- workflow-ui - workflow-ui 前端工作流 UI
dashboard 运维
- go trace - go 自带的性能调试工具,并获得程序执行情况的详细视图。
- go pprof - go 自带的性能调试工具,可以生成类似火焰图、堆栈图,内存分析图。
- google/gops - 列出和诊断系统上当前运行的 Go 进程的工具。比如内存使用、堆栈 、垃圾回收、等。
openapi
openapi 3
生成文档
- getkin/kin-openapi - 👍 生成openAPI 2、3文档。swagger2 转 openapi3。介绍
- OpenAPITools/openapi-generator - openapi 2、3 生成器,与语言无关。
- wI2L/fizz - 为gin生成几乎完整的OpenAPI 3规范。
danielgtaylor/huma - 现代 REST API 后端框架,同时可生成 OpenAPI3 规范。
生成代码
deepmap/oapi-codegen - 根据 OpenAPI 3 规范生成 Go 客户端和服务器样板。
验证
cdimascio/gin-openapi - 对 gin 添加中间件,来验证 OpenAPI 3 文档 与实际请求结果是否一致。
swagger 2
生成文档
swaggo/swag - 👍 从注释生成 swagger 2 文档。同时该组织有 gin-swagger、echo-swagger、http-swagger 对应框架的工具
go-swagger/go-swagger - 从注释生成 swagger 2 文档,同时还可生成生成模版文件。
生成代码
mikkeloscar/gin-swagger - 给定 REST API 的 swagger 规范,可以生成模版文件,只需实现 API 的核心业务逻辑。
验证
资料区 💾
教程
- 《Go语言圣经(中文版)》- 电子书版
- 《Go 语言设计与实现》 - 电子书版
- Go语言入门教程,Golang入门教程(非常详细)- C语言中文网
- 连载一 Golang介绍与环境安装 - 👍 17篇连载。从环境搭建到http、图片、文件、最终部署。
blob
weekly
- golangweekly - 日报
- golang-open-project/blob - 👍 这个用于收集和分类 golang 开放项目的存储库