最后更新于2019.11.22
Go 语言优秀资源整理,为项目落地加速🏃
在 GitHub 上稳定更新,觉得不错请点个 Star ❤️
如转载分享,请保留出处,谢谢 😆
国内官网镜像(访问快~): https://golang.google.cn
GitHub: https://github.com/golang/go
开发者平台: https://go.dev
指导原则
-
简单性
复杂性把可读的程序变得不可读,复杂性终结了很多软件项目。
-
可读性
代码是给人看的,代码阅读时长远超编写。程序必须可维护,那可读是第一步。
-
生产率
拥有众多的工具集和基础库,可以很简单方便的完成绝大多数工作。
编译速度足够快,拥有动态语言的高效,但却不会面临动态语言不可靠的问题。
自带编程规范,使得团队代码一致,也帮助开发者发现和避免潜在的错误。
Awesome
golang-open-source-projects - 含描述的中文版 Awesome Go
Awesome Go Storage - Go 存储相关开源项目
awesome-go-China - 专门收集华人写的开源项目
Go Patterns - Go 版本的设计模式
go-algorithms - Go 版本的数据结构和算法
Go 学习之路 - Go 学习资料汇集
大牛
Go 语言方面的大牛,或者优秀 Go 项目的组织
mattn - 写了数百个 Go 项目,盛产优质项目
Unknwon - gogs/macaron 等项目作者,《The Way to Go》译者
Jinzhu - gorm/QOR 等作者
valyala - fasthttp/fastjson 等作者
vmihailenco - go-redis/go-pg 等作者
kataras - iris 作者
Uber - Open Source Software at Uber
Stretchr - Tame your unstructured data
文档
Go 夜读 - Go 标准包、开源项目源代码阅读讲解
Go database/sql tutorial - Go 数据库(database/sql)开发使用教程
Go Web Examples - Go Web 开发示例
Go Assembly - 通过示例介绍 Go 汇编功能
Ultimate Go - 终极 Go 学习指南,包含大量文档化的代码和程序分析
Go 教程 - 腾讯云开发者手册
指南
文章
付费教程
Go语言核心36讲 - 极客时间
成品项目
studygolang - Go 语言中文网
Hugo - 静态网站生成器
喧喧 - 由
然之协同提供的面向企业即时通信解决方案mkcert - 生成本地 HTTPS 加密证书的工具
Rainbond - 基于Docker、Kubernetes等容器技术的开源PaaS
NYADB2 - Go 实现的关系型数据库, 值得用于学习
EiBlog -
国产博客pan-light - 不限速的百度网盘客户端, 基于 Go + Qt5 开发
学习项目
1m-go-websockets - 该项目演示了如何用 Go 编写一个可以提供超过一百万个
websockets连接、运行内存小于 1GB 的服务器Go by Example - 通过实例学习 Go
开源类库
框架
Macaron - 一款具有高生产力和模块化设计的 Go Web 框架
国产Beego - 一个使用 Go 的思维来帮助您构建并开发 Go 应用程序的开源框架
国产Gin - 轻量 Web 框架
Iris - Web 开发框架
Faygo -
国产Teleport - Socket 框架
GoFrame -
国产QOR - 系列应用开发组件包
DotWeb -
国产REST Layer - REST API framework
go-admin - 与 laravel-admin 类似的后台管理快速开发框架
中间件
Negroni - Web 中间件
csrf - CSRF 中间件
handlers - A collection of useful handlers for Go's
net/httppackage
并发
SizedWaitGroup - 并发控制
concurrent - concurrency utilities
命令行
urfave/cli - 命令行程序构建工具
Cobra - 命令行构建包
GoTTY - 基于Web的命令行实时共享
progressbar - 在终端上输出进度条
Color - 命令行文字颜色
termui - 终端仪表盘
gosu - 以指定的用户权限来运行脚本
tui - 终端 UI
gotop - 类 top 系统监控显示
go-colorable - Colorable writer for Windows
go-isatty - TTY 环境判断
fzf - 命令行下的文件 Finder
flaggy - 命令参数解析
go-daemon - daemon 进程包
pflag - 命令行参数处理
PIXterm - 在命令行终端中绘图
WTF - 一个命令行的信息仪表盘,可以定制显示内容
go-prompt - 命令行交互式输入
路由
mux - URL 路由和调度器
网络
fasthttp - 比
net/http快 10 倍的 HTTP 工具包Resty - HTTP & REST 客户端包
DNS - DNS 库
CoreDNS - DNS 服务器
Caddy - Web 服务器
RoadRunner - PHP 应用服务器、进程管理器、负载均衡,用于替代
Nginx + FPMTræfik - 反向代理&负载均衡
GoReplay - 流量收集&回放
Vegeta - HTTP 负载压测工具
hey - Web 压测工具
bombardier - Web 压测工具
p2pspider - 种子嗅探器
goim - 支持集群的 im 及实时推送服务
Proxy - golang 实现的高性能代理服务器
ProxyPool - 采集免费的代理资源为爬虫提供有效的IP代理
frp - 可用于内网穿透的高性能的反向代理应用
torrent - BitTorrent 相关工具库
httpteleport - Teleports 10Gbps http traffic over 1Gbps networks
FIND3 - WiFi 设备发现
SubFinder - 子域名发现工具
ggz - 短网址服务
WebSocket
websocketd - Go 开发的一键搭建 WebSocket 服务器命令行工具
ws - WebSocket 开发包
melody - WebSocket 服务框架
网关
GoKu API Gateway CE - eoLinker 开源的 API 网关
序列化
vmihailenco/msgpack - 支持 msgpack
go/codec - 支持 msgpack/binc/cbor/json
protobuf - Go 版本的 Protocol Buffers
Objx - 操作 map, slice, JSON 等数据的包
RPC
邮件
Gomail - 邮件发送包
消息
文件
Syncthing - 文件同步
fsnotify - 文件系统监控工具
gohttpserver - HTTP 静态文件服务器
XLSX - Excel 读写包
Excelize - 360 开源的 Excel 工具包
SeaweedFS - 分布式文件系统
go-fastdfs - 分布式文件存储服务
Dragonfly - 基于 P2P 的分布式文件系统
filetype - 检测文件类型
cae - 实现 ZIP/TAR.GZ 解压缩
compress - Optimized compression packages
Afero - 文件操作包
fsync - 文件/目录同步
filebrowser - Web File Browser
Bigfile - 文件传输管理系统
statik - 静态文件服务
模板引擎
goTemplateBenchmark - 给各 Go 模板引擎做性能测试,当然也就包含了最全的模板引擎包
Jet - 速度很快
amber - HTML 模板引擎
fasttemplate - Simple and fast template engine for Go
文本
Blackfriday - Markdown 解析器
gpy - Go 语言汉字转拼音工具
html2text - HTML 转 text
go-hashids - hashids 的 Go 版本
go-pinyin - 汉语拼音转换工具 Go 版
mahonia - 字符集编码转换
pangu.go - Go 版本的 pangu,给中英文之间加空格
goorgeous - A Go ORG syntax parser to HTML
go-diff - Go 版本的 diff 工具包
Chroma - 代码语法高亮
prose - natural language processing library
minify - Web 静态资源压缩(HTML/JS/CSS/JSON)
Lute - 结构化的 Markdown 引擎
docx2md 转换 Word 为 Markdown
Inflection - Pluralizes and singularizes English nouns
文档
swag - Swagger for Go
gin-swagger - Swagger for Gin
go-swagger - Swagger 2.0 implementation for go
数学计算
日期时间
配置
GoDotEnv -
.env配置文件解析toml -
TOML解析&编码包INI -
INI配置文件解析Viper - 支持
JSON,TOML,YAML,HCL,Java等配置文件confd - 配置管理工具
HCL - configuration language
env - 解析 ENV 环境变量到结构体中
爬虫
Crawlab - 基于Golang的分布式爬虫管理平台,支持Python、NodeJS、Go、Java、PHP等多种编程语言以及多种爬虫框架
Colly - 网络爬虫框架
Pholcus - 支持分布式的高并发、重量级爬虫软件
Muffet - 网站链接检查器
数据库相关
gorm2sql - 根据 Model Struct 生成建表语句
Xorm - 支持 MySQL、PostgreSQL、SQLite3 以及 MsSQL
sqlx -
database/sql扩展包qb - the database toolkit for go
Redigo - Redis 客户端
mongo-go-driver - MongoDB 官方出品的 Go 语言驱动
globalsign/mgo - The MongoDB driver for Go
amqp - Go client for AMQP 0.9.1
xo - a command-line tool to generate Go code based on a database schema or a custom query
kingshard - MySQL Proxy
SOAR - 对SQL进行优化和改写的自动化工具
gh-ost - GitHub 开源的在线更改 MySQL 表结构的工具
go-mssqldb - MSSQL 驱动
pq - PostgreSQL 驱动
SQLer - write APIs using direct SQL queries with no hassle, let's rethink about SQL
Gaea - 小米开源的基于 MySQL 协议的数据库中间件
OctoSQL - 支持多数据库的 SQL 查询工具
goose - 数据库迁移工具
ent - An Entity Framework For Go
数据库引擎
etcd - KV 分布式存储
CockroachDB - SQL database
Cayley - 图数据库
RadonDB - 基于 MySQL 研发的新一代分布式关系型数据库
AresDB - Uber 开源的 GPU 驱动的实时分析存储&查询引擎
leveldb - LevelDB 的 Go 实现
Dgraph - 分布式图数据库
搜索
wukong - 全文搜索引擎
go-elasticsearch - 官方 ES 客户端
elastic - Elasticsearch 客户端
go-mysql-elasticsearch - Sync MySQL data into elasticsearch
gse - Go 语言分词
sego - Go 中文分词
Riot - 全文搜索引擎
表单
go-tagexpr - 字节跳动开源的结构体标签表达式解释器
schema - converts structs to and from form values
Auth
Casbin - 权限控制管理
pam-ussh - Uber's SSH certificate pam module
jwt-go - JWT for Go
sessions - 后端 SESSION 服务
securecookie - cookie 加密/解密
Goth - Multi-Provider Authentication for Go
缓存
图片
barcode - 条形码/二维码生成器
picfit - 图片操作、裁剪、管理服务器
gmfs - 图片操作、裁剪、管理服务器
besticon - favicon 服务
Caire - 图片操作库
Imaging - 图片操作库
gocaptcha - 验证码生成
go-is-svg - 校验是否为 SVG 图片
identicon - 根据用户的 IP 、邮箱名等任意数据为用户产生漂亮的随机头像
图表
go-echarts - Echarts 图表库
构建编译
Mage - a Make/rake-like build tool using Go
GoReleaser - Go 多平台二进制文件打包、并支持发布到 Homebrew 的工具
goxc - 跨平台编译工具(因 1.5 版本开始已自带交叉编译,故已不再维护)
Task - 类似于
Make的构建工具codegangsta/gin - 热编译工具,自动监测文件变化而重新编译并重启,方便开发调试 Web 应用
优雅升级
代码分析
reviewdog - Code Review 机器人
revive - 代码检查分析
GolangCI-Lint - 代码质量检查分析工具
errcheck - 检测未处理的错误(errors)
Staticcheck - 一系列的 Go 代码静态分析工具
Golint - Google 官方出品的代码质量检测工具
gocloc - 分语言代码行数统计
调试
go-spew - 变量打印工具
Delve - Debug 工具
repr - 变量打印工具
pp - 彩色变量打印工具
gops - 谷歌官方出品的 Go 程序监控调试工具
go-callvis - 可视化Go程序的调用图
q - 自动打印变量类型并且格式化输出
测试
GoConvey - 含Web界面的单元测试框架
GoMock - 谷歌出品的Mock测试框架
Ginkgo - BBD 测试框架
fperf - 压测工具
gotests - Generate Go tests from your source code
TestSQL - 根据 SQL 创建语句生成测试数据
httpmock - HTTP Mock
Goblin - BDD 测试框架
Faker - Struct Data Fake Generator
go-tprof - 包测试报告生成工具
错误处理
安全
Kunpeng - 开源POC检测框架
硬件
go-hardware - 收集了一堆关于硬件信息的包
cpuid - CPU 信息
UUID
go.uuid - UUID 库
SEQSVR - Go + MySQL 实现的分布式 ID 生成服务
google/uuid - Google 开源的 uuid 包
snowflake - Twitter snowflake IDs
日志&收集
监控
OpenFalcon - 小米开源的监控系统
Prometheus - 监控系统
Grafana - 分析监视平台, 支持 Graphite, Elasticsearch, OpenTSDB, Prometheus, InfluxDB 等数据源
TeaWeb - 一款集静态资源、缓存、代理、统计、监控于一体的可视化智能WebServer
Jaeger - 分布式追踪系统
统计分析
容器技术
机器学习
goml - 机器学习库
GoLearn - 一个 "开箱即用" 的机器学习库
glow - 易用的分布式计算系统
Gobot - 机器人和物理计算语言库
Olivia - 神经网络
Pico - 基于像素强度比较的物体检测纸张的纯 Go 脸部检测库
算法
Dragonboat - 多组 Raft 共识算法库
golang-lru - LRU 算法实现
数据结构
Play-with-Data-Structures - 「玩转数据结构」课程的 Go 语言实现版本
SipHash - SipHash-2-4
golang-set - The missing set collection
依赖注入
JSON
GJSON - JSON 解释器
SJSON - JSON 修改工具
fastjson - fast JSON parser and validator for Go
json-iterator - 滴滴开源的 JSON 解析器
依赖管理
goproxy.io -
GOPROXY代理服务goproxy.cn - 更适合国内用户的代理服务
Gopm - Go 包管理工具
govendor - Vendor 包管理工具
gom - 包版本管理工具
微服务
持续集成/部署
Git
gogs - 类似于 GitLab 的 Git 服务器
Gitea - 由 gogs 分叉出的 Git 服务器
go-git - Go 实现的 Git 操作
gitin - commit/branch/status explorer for git
hub - GitHub 命令行工具
git-o-matic - 一个监控 Git 仓库变化和自动 pull/push 的工具
限流器
解释器
participle - 通用的自定义语法解析包
GopherLua - VM and compiler for Lua in Go
go-lua - A Lua VM in pure Go
php-parser - PHP AST 语法解析
otto - JavaScript 解释器
goja - ECMAScript 5.1(+) implementation in Go
gpython - Python Interpreter on Go
starlark-go - Starlark in Go
avo - Generate x86 Assembly with Go
wagon - WebAssembly 解释器
GopherJS - 把 Go 代码编译成 JavaScript 代码
Yaegi - Go 语言解释器
properties - Java properties scanner for Go
gobasic - A BASIC interpreter written in golang
自定义解释器
Math-Engine - 使用 Go 实现的数学表达式解析计算引擎库,学习语法解析很适用
Gval - 表达式计算
goexp - Recursive descent expression parser in Go
goastch - Go AST 语法解析
Expr - 编译&执行字符串中的表达式
Tengo - 用 Go 编写的脚本语言
V - Go 编写的语言
查询语言
游戏相关
桌面开发
Lorca - 用 Go 编写 HTML5 桌面程序,依赖 Chrome 进行 UI 渲染,但却不把 Chrome 打包到应用中
webview - 用 Go 构建跨平台的桌面软件
walk - Windows GUI toolkit
go-gtk - Go bindings for GTK
ui - Platform-native GUI library for Go
fyne - Cross platform GUI in Go based on Material Design
go-gl - Go bindings for OpenGL (generated via glow)
therecipe/qt - 基于 Qt 的跨全平台 UI 包
任务/定时器
Grift - Go based task runner
微信
weapp - 微信小程序 SDK
未归类
Robotgo - Golang 跨平台自动化系统,控制键盘鼠标位图和读取屏幕,窗口句柄以及全局事件监听
cron - a cron library for go
goCron - A Golang Job Scheduling Package
com - 工具包
php2go - Go 实现的 140+ 个 PHP 函数功能包
gommon - Common packages for Go
Go Report Card - Go 项目质量分析报告工具
i18n -
i18n多语言工具包Paginater - 分页工具
gls - Goroutine local storage
go-version - 版本号比较
reflect2 - reflect api without runtime reflect.Value cost
mapstructure - Go library for decoding generic map values into native Go structures
copier - struct 之间拷贝值
Cast - 数据类型转换
Metabolize - Decodes HTML meta tags into a Golang struct
otp - 一次性密码工具包(One Time Password utilities)
feeds - RSS 内容生成
gofeed - RSS & Atom feeds 内容解析
wechat-go - 微信 Web 版 API 的 Go 实现
misspell - 常拼写错误的英语单词
Standard Go Project Layout - Go 项目目录结构示例
CRDT - CRDT(Convergent and Commutative Replicated Data Types)最终一致性算法的实现
script - Making it easy to write shell-like scripts in Go
工具
资源站点
Golang sizeof tips - 输入结构体定义,会显示内存布局
