Go 资源整理,这里有你想要的💊
source link: https://www.tuicool.com/articles/YRv6z27
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
嗯~世界上第二好的语言,这里有你可能想要的:pill:
在 GitHub 上稳定更新,觉得不错请点个 Star :heart:
如转载分享,请保留出处,谢谢 :laughing:
原文地址: https://shockerli.net/post/go-awesome
GitHub: https://github.com/shockerli/go-awesome
国内官网镜像(访问快~): https://golang.google.cn
GitHub: https://github.com/golang/go
Wiki: https://github.com/golang/go/wiki
指导原则
-
简单性 > 复杂性把可读的程序变得不可读,复杂性终结了很多软件项目。
-
可读性 > 代码是给人看的,代码阅读时长远超编写。程序必须可维护,那可读是第一步。
-
生产率 > 拥有众多的工具集和基础库,可以很简单方便的完成绝大多数工作。 > 编译速度足够快,拥有动态语言的高效,但却不会面临动态语言不可靠的问题。 > 自带编程规范,使得团队代码一致,也帮助开发者发现和避免潜在的错误。
Awesome
- GitHub Topic for Go
- Awesome Go
- golang-open-source-projects - 含描述的中文版 Awesome Go
- Awesome Go Storage - Go 存储相关开源项目
- awesome-go-China - 专门收集华人写的开源项目
- Go Patterns - Go 版本的设计模式
- go-algorithms - Go 版本的数据结构和算法
- 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 作者
- bep
- spf13
- Uber - Open Source Software at Uber
- Gorilla web toolkit
- Stretchr - Tame your unstructured data
- Containous
文档
- Go 官方入门指南
- Go 语言高级编程
- Go 专家编程
- Go 编程语言
- Golang 标准库文档(官方/中文)
-
Go 语言标准库
在线阅读
- 《The Way to Go》中文版
- Go 语言圣经(中文版)
- Go语言入门教程
- Go 实战开发
- Go Web 应用开发
- Go 学习技能树
- 实效 Go 编程
- Go 语言语法详解笔记
- Go 语言学习资料与社区索引
- Go database/sql tutorial
- GO 命令教程
- 深入解析 Go
- Go 语言博客实践
- 学习 Go 语言
- Go 夜读 - Go 标准包、开源项目源代码阅读讲解
- Go2编程指南
- Go database/sql tutorial - Go 数据库(database/sql)开发使用教程
- Go Web Examples - Go Web 开发示例
- Go Assembly - 通过示例介绍 Go 汇编功能
- Ultimate Go - 终极 Go 学习指南,包含大量文档化的代码和程序分析
指南
文章
- Go语言爱好者周刊
- Go的50度灰:Golang新开发者要注意的陷阱和常见错误
- Go 程序的性能优化及 pprof 的使用
- gops - Go语言程序查看和诊断工具
- Go源码分析——http.ListenAndServe()是如何工作的
- GoConvey 框架使用指南
- GoStub 框架使用指南
- GoMock 框架使用指南
- Monkey 框架使用指南
付费教程
- 基于 Go 语言构建企业级的 RESTful API 服务 - 掘金小册
- 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 开发框架
- Revel
- echo
- chi
-
Faygo
-
国产
- Teleport - Socket 框架
-
GoFrame
-
国产
- QOR - 系列应用开发组件包
- Buffalo
-
DotWeb
-
国产
- REST Layer - REST API framework
- Honeytrap
- Ponzu
- utron
- muxie
- go-admin - 与 laravel-admin 类似的后台管理快速开发框架
中间件
- Negroni - Web 中间件
- csrf - CSRF 中间件
-
handlers
- A collection of useful handlers for Go’s
net/http
package
并发
- 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 - 一个命令行的信息仪表盘,可以定制显示内容
路由
- HttpRouter
- mux - URL 路由和调度器
- gocraft/web
网络
-
fasthttp
- 比
net/http
快 10 倍的 HTTP 工具包 - Resty - HTTP & REST 客户端包
- DNS - DNS 库
- CoreDNS - DNS 服务器
- Caddy - Web 服务器
-
RoadRunner
- PHP 应用服务器、进程管理器、负载均衡,用于替代
Nginx + FPM
- Træ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 - 短网址服务
- httpstat
WebSocket
- Gorilla 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 - 邮件发送包
- scorredoira/email
消息
文件
- 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
模板引擎
- goTemplateBenchmark - 给各 Go 模板引擎做性能测试,当然也就包含了最全的模板引擎包
- Jet - 速度很快
- amber - HTML 模板引擎
- fasttemplate - Simple and fast template engine for Go
- quicktemplate
- mustache
- Ace
文本
- 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 - 代码语法高亮
- Emoji
- prose - natural language processing library
- minify - Web 静态资源压缩(HTML/JS/CSS/JSON)
- Lute - 结构化的 Markdown 引擎
- docx2md 转换 Word 为 Markdown
文档
- swag - Swagger for Go
- gin-swagger - Swagger for Gin
- go-swagger - Swagger 2.0 implementation for go
数学计算
日期时间
配置
-
GoDotEnv
-
.env
配置文件解析 - yaml
-
toml
-
TOML
解析&编码包 -
INI
-
INI
配置文件解析 -
Viper
- 支持
JSON
,TOML
,YAML
,HCL
,Java
等配置文件 - Multiconfig
- configor
- envconfig
- confd - 配置管理工具
爬虫
- Crawlab - 基于Golang的分布式爬虫管理平台,支持Python、NodeJS、Go、Java、PHP等多种编程语言以及多种爬虫框架
- Colly - 网络爬虫框架
- Pholcus - 支持分布式的高并发、重量级爬虫软件
- go_spider
- goquery
- Muffet - 网站链接检查器
- Creeper
数据库相关
-
GORM
- gorm2sql - 根据 Model Struct 生成建表语句
- Xorm - 支持 MySQL、PostgreSQL、SQLite3 以及 MsSQL
- GoRose
- Go-MySQL-Driver
-
sqlx
-
database/sql
扩展包 - qb - the database toolkit for go
- Redigo - Redis 客户端
- go-redis
- mongo-go-driver - MongoDB 官方出品的 Go 语言驱动
-
mgo
- globalsign/mgo - The MongoDB driver for Go
- mgo使用指南
- 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
- gocraft/dbr
- Gaea - 小米开源的基于 MySQL 协议的数据库中间件
- OctoSQL - 支持多数据库的 SQL 查询工具
- goose - 数据库迁移工具
- ent - An Entity Framework For Go
数据库引擎
- etcd - KV 分布式存储
- InfluxDB
- 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 - 全文搜索引擎
表单
- validator
- 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
缓存
- GCache
- bbolt - key/value store
- go-cache - KV 内存缓存
- gomemcache - Memcache 客户端
- cache2go
图片
- 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
- gometalinter - 代码质量检查分析工具
-
Task
- 类似于
Make
的构建工具 - gin - 热编译工具,自动监测文件变化而重新编译并重启,方便开发调试 Web 应用
调试
- go-spew - 变量打印工具
- Delve - Debug 工具
- repr - 变量打印工具
- pp - 彩色变量打印工具
- gops - 谷歌官方出品的 Go 程序监控调试工具
- pprof
- go-callvis - 可视化Go程序的调用图
- q - 自动打印变量类型并且格式化输出
- Litter
- errcheck - 检测未处理的错误(errors)
- Staticcheck - 一系列的 Go 代码静态分析工具
测试
- GoConvey - 含Web界面的单元测试框架
- GoMock - 谷歌出品的Mock测试框架
- GoStub
- Monkey
- Ginkgo - BBD 测试框架
- fperf - 压测工具
- gocheck
- Testify
- gotests - Generate Go tests from your source code
- TestSQL - 根据 SQL 创建语句生成测试数据
- httpmock - HTTP Mock
- Goblin BDD 测试框架
- Faker - Struct Data Fake Generator
- go-tprof - 包测试报告生成工具
错误处理
安全
- Kunpeng - 开源POC检测框架
UUID
- go.uuid - UUID 库
- SEQSVR - Go + MySQL 实现的分布式 ID 生成服务
- cpuid - CPU feature identification for Go
- google/uuid - Google 开源的 uuid 包
- gofrs/uuid
- snowflake - Twitter snowflake IDs
日志&收集
- Logrus - 日志记录包
- zerolog
- zap - Uber 开发的日志记录包
- Seelog
- logkit - 七牛开源的日志收集工具
- gogstash - 类似于 Logstash 的日志收集器
- lumberjack
监控
- OpenFalcon - 小米开源的监控系统
- Prometheus - 监控系统
- Grafana - 分析监视平台, 支持 Graphite, Elasticsearch, OpenTSDB, Prometheus, InfluxDB 等数据源
- TeaWeb - 一款集静态资源、缓存、代理、统计、监控于一体的可视化智能WebServer
- Jaeger - 分布式追踪系统
统计分析
容器技术
机器学习
- goml - 机器学习库
- GoLearn - 一个 “开箱即用” 的机器学习库
- glow - 易用的分布式计算系统
- Gobot - 机器人和物理计算语言库
- Olivia - 神经网络
- Pico - 基于像素强度比较的物体检测纸张的纯 Go 脸部检测库
算法
- GoDS
- Dragonboat - 多组 Raft 共识算法库
- golang-lru - LRU 算法实现
数据结构
- go-datastructures
- Play-with-Data-Structures - 「玩转数据结构」课程的 Go 语言实现版本
- HashMap
- SipHash - SipHash-2-4
依赖注入
JSON
- GJSON - JSON 解释器
- SJSON - JSON 修改工具
- fastjson - fast JSON parser and validator for Go
- jsonparser
- ffjson
- json-iterator - 滴滴开源的 JSON 解析器
依赖管理
-
goproxy.io
-
GOPROXY
代理服务 - goproxy.cn - 更适合国内用户的代理服务
- Gopm - Go 包管理工具
- govendor - Vendor 包管理工具
- gom - 包版本管理工具
微服务
- Istio [ 中文文档 ] - 跨语言微服务框架
- goa
- Micro - 微服务工具
- Go kit - Go 微服务工具集
- GoKit CLI - Go kit 脚手架
- gogo
- Go-Chassis
- Go Micro - 微服务框架
- Kite
持续集成/部署
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 语言解释器
自定义解释器
- Math-Engine - 使用 Go 实现的数学表达式解析计算引擎库,学习语法解析很适用
- Gval - 表达式计算
- expression-parsing
- goexp - Recursive descent expression parser in Go
- goastch - Go AST 语法解析
- tdop
- swallow
- Anko
- Expr - 编译&执行字符串中的表达式
- Tengo - 用 Go 编写的脚本语言
- V - Go 编写的语言
- kumarUjjawal/bison
查询语言
游戏相关
桌面开发
- 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
- revive - 代码检查分析
工具
- goenv - Go 版本管理
- GoLand - IDE 软件
- IntelliJ系列软件Go语言插件
资源站点
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK