国内官网镜像(访问快): https://golang.google.cn
GitHub: https://github.com/golang/go
开发者平台: https://go.dev
Wiki: https://github.com/golang/go/wiki
官方博客: https://blog.golang.org
指导原则
- 简单性复杂性把可读的程序变得不可读,复杂性终结了很多软件项目。
- 可读性代码是给人看的,代码阅读时长远超编写。程序必须可维护,那可读是第一步。
- 生产率拥有众多的工具集和基础库,可以很简单方便的完成绝大多数工作。 编译速度足够快,拥有动态语言的高效,但却不会面临动态语言不可靠的问题。 自带编程规范,使得团队代码一致,也帮助开发者发现和避免潜在的错误。
Awesome
- GitHub Topic for Go
- Awesome Go
- golang-open-source-projects – 含描述的中文版 Awesome Go
- Awesome Go Storage – Go 存储相关开源项目
- awesome-go-China – 专门收集华人写的开源项目
- Go Patterns – Go 版本的设计模式
- sevenelevenlee/go-patterns – 设计模式
- GoF 设计模式
- greyireland/algorithm-pattern – 算法模板
- go-algorithms – Go 版本的数据结构和算法
- Go 学习之路 – Go 学习资料汇集
- Go 开发者路线图
- ReposHub-Go
- VisuAlgo – 数据结构和算法动态可视化
大牛/组织
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
- tidwall
组织
- Gorilla web toolkit
- loov
- HashiCorp
- lestrrat-go
- Uber – Open Source Software at Uber
- Stretchr – Tame your unstructured data
- Containous
- Charm – 提供一系列优秀的命令行工具和库
文档
- Proposing Changes to Go – Go 语言设计文档
- Go 语言设计与实现
- Go 语言原本
- Go 101 (中文版)
- 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 语言
- Go2编程指南
- Go database/sql tutorial – Go 数据库(database/sql)开发使用教程
- Go Web Examples – Go Web 开发示例
- Go Assembly – 通过示例介绍 Go 汇编功能
- Ultimate Go – 终极 Go 学习指南,包含大量文档化的代码和程序分析
- Go 教程 – 腾讯云开发者手册
- Golang 开发笔记
- golang-notes – Go 源码阅读笔记
- The Little Go Book (中文版)
- Learning Go — from zero to hero
- go-internals – 深入理解 Go
- Learn Go with Tests
- Go基础教程
- 7天用Go从零实现系列
- Go 语言高性能编程
- Golang – 100天从新手到大师 – 某培训机构的部分教程内容
- hoanhan101/algo – 107+ 编码面试问题,包括详细的解决方案,测试用例和程序分析
- over-golang – Go 学习笔记
- over-algorithm – Go 算法笔记
- learngo – 1000+ Go 示例、练习和测试
- go-leetcode – LeetCode 实现
- 玩转 GO – 《Mastering GO》中文译本
- leetcode-cookbook – LeetCode in Go
- Golang修养之路
- Go语法树入门
- Go Concurrency Patterns – Go 并发模式场景集合
- yezihack/algo – 数据结构与算法
- golang-cheat-sheet-cn – GitHub上最流行的Golang代码速查表中文翻译版本
指南
- Uber Go Style Guide
- The Go Programming Language Specification (中文老版)
- 实效 Go 编程
- Go Code Review Comments
- Go Code Convention
- Go FAQ 101
- Go Details 101
- Go Tips 101
- Go Quizzes 101
- go-advices
- go-perfbook – 编写和优化Go代码
- Practical Go: Real world advice for writing maintainable Go programs (Go 语言实践:编写可维护的程序的建议)
- Go 安全指南 – 腾讯发布的《代码安全指南》Go 语言篇
- Go Concurrency Guide
- Go Recipes – 一些技巧
文章
- Go Training – 大量优质 Go 相关文章、视频等资料
- Go语言爱好者周刊
- Go 夜读 – Go 标准包、开源项目源代码阅读讲解
- Go-Questions – Go 语言学习入门和进阶知识
- Go的50度灰:Golang新开发者要注意的陷阱和常见错误
- Go 程序的性能优化及 pprof 的使用
- gops – Go语言程序查看和诊断工具
- Go源码分析——http.ListenAndServe()是如何工作的
- GoConvey 框架使用指南
- GoStub 框架使用指南
- GoMock 框架使用指南
- Monkey 框架使用指南
- The Evolution of a Go Programmer – Go 程序员的进化之路
付费教程
- 基于 Go 语言构建企业级的 RESTful API 服务 – 掘金小册
- Go语言核心36讲 – 极客时间
成品项目
- Shiori – 书签管理
- studygolang – Go 语言中文网
- mkcert – 生成本地 HTTPS 加密证书的工具
- cfssl – Cloudflare 开源的 PKI 和 TLS 工具集
- Rainbond – 基于Docker、Kubernetes等容器技术的开源PaaS
- NYADB2 – Go 实现的关系型数据库, 值得用于学习
- EiBlog – 博客
- pan-light – 不限速的百度网盘客户端, 基于 Go + Qt5 开发
- BaiduPCS-Go – 百度网盘客户端(命令行)
- daily-warm – 每天定时发邮件给你关心的人
- pipe – 博客平台
- mdr – 命令行下的 Markdown 阅读工具
- miniflux – Feed 阅读器
- golinks – 创建自定义书签、命令、搜索等
- 链滴笔记 – 桌面端笔记应用
- wayback – 网页快照备份
- bbs-go – 开源社区
- OpenSCRM – 基于Go和React的企业微信私域流量管理系统
- Answer – 问答社区
- listmonk – 资讯、邮件列表管理工具(Web)
- 1Panel – Linux 服务器运维管理面板
- Artalk – 自托管评论系统
- memos – 笔记服务,具有移动客户端、浏览器扩展等生态
静态网站生成器
学习项目
- 1m-go-websockets – 该项目演示了如何用 Go 编写一个可以提供超过一百万个
websockets
连接、运行内存小于 1GB 的服务器 - Go by Example – 通过实例学习 Go
- IAM – 身份识别与访问管理系统(教学项目)
- 100-go-mistakes – 100 个 Go 常见错误
开源类库
Web 框架
- Macaron – 一款具有高生产力和模块化设计的 Go Web 框架
国产
- Beego – 一个使用 Go 的思维来帮助您构建并开发 Go 应用程序的开源框架
国产
- Gin – 轻量 Web 框架
- Iris – Web 开发框架
- Revel
- echo
- Faygo –
国产
- Teleport – Socket 框架
- GoFrame –
国产
- QOR – 系列应用开发组件包
- DotWeb –
国产
- REST Layer – REST API framework
- Honeytrap
- Ponzu
- utron
- muxie
- Buffalo – 快速生成 Web 项目的开发工具
- go-web-framework-benchmark
- fiber – 一种 Express 风格的、基于 fasthttp 的 HTTP Web 框架
- aah
- go-zero – 好未来开源的 Web 框架
- pingcap/fn – 支持绑定任何方法,构建成 POST+JSON 接口
- flamego –
unknwon
开发的又一款 Web 框架 - REST Layer – REST API 框架
- rk-boot
业务框架
- YAO – 使用 JSON 即可创建数据库模型、编写 API 接口、描述管理后台界面的应用引擎
- GoAdminGroup/go-admin – 后台管理快速开发框架,与 laravel-admin 类似
- wenjianzhang/go-admin – 基于 Gin + Vue 实现的后台框架
- gin-vue-admin – 基于 Gin + Vue 实现的后台框架
- goxygen – 基于 Go, React, MongoDB 技术实现的全栈应用生成器
- nging – Go语言通用后台管理框架
- snake – 业务API框架
- PocketBase – 带有后台管理面板、文件和权限管理、集成 SQLite 数据库的单一文件后端服务开发框架,支持 Dart 和 JS SDK 快速开发 APP
- DoTenX – 低代码框架
项目骨架
- Standard Go Project Layout – Go 项目目录结构示例
- go-starter – Adobe 的 Go 工程模板
- go-clean-arch
- go-rest-api – Go RESTful API Starter Kit
- Create Go App CLI – 通过命令行创建前后端项目的开发骨架
- clean-gin – 基于 Gin 构建的整洁架构项目骨架
- golang-repo-template – 一个包含了很多实践的项目模板
DDD 框架
- Wild Workouts – DDD、整洁架构、CQRS的示例项目
- Clean Architecture in Go – 整洁架构示例
- freedom – 基于六边形架构的框架
- esim – 基于六边形架构的微服务框架
- go-cleanarch – Go 整洁架构规则校验工具
TCP 框架
- zinx – TCP并发服务器框架
中间件
- Negroni – Web 中间件
- csrf – CSRF 中间件
- handlers – A collection of useful handlers for Go’s
net/http
package
并发
- SizedWaitGroup – 并发控制
- concurrent – concurrency utilities
命令行
参数解析
- urfave/cli – 命令行程序构建工具
- Cobra – 命令行构建包
- flaggy – 命令参数解析
- pflag – 命令行参数处理
- kong – 命令行解析
- clop – 命令行解析包
- go-flags – 命令行参数解析
- mow.cli
- go-arg – 基于结构体Tag解析命令行参数
输出展示
- progressbar – 在终端上输出进度条
- cheggaaa/pb – 终端进度条
- mpb – 支持多个进度条
- Color – 命令行文字颜色
- gookit/color – 命令行色彩使用库
- termui – 终端仪表盘
- tui – 终端 UI
- termenv – 终端应用程序的高级 ANSI 样式和颜色支持
- asciigraph – 在终端中绘制 ASCII 字符的图表
- spinner – 涵盖70多种符号或进度条的控制器
- tablewriter – 终端中输出表格内容
- PIXterm – 在命令行终端中绘图
- WTF – 一个命令行的信息仪表盘,可以定制显示内容
- termdash – 基于 Go Terminal 的仪表板系统
- bubbles – TUI 组件
- bubbletea – TUI 框架
- PTerm – 支持图表、表格、进度条、树等终端输出展示
- Lip Gloss – 终端布局、样式
- gum
- glow – 终端渲染展示 Markdown
- Slides – 终端渲染展示 Markdown
- tview – Terminal UI
- ASCIIPlayer – 在终端中通过 ASCII 输出图片或视频,支持 png、jpeg、gif、mp4、avi 等格式
- go-pretty – 终端渲染表格、列表、进度条等
- tcell
其他
- gosu – 以指定的用户权限来运行脚本
- gotop – 类 top 系统监控显示
- go-colorable – Colorable writer for Windows
- go-isatty – TTY 环境判断
- fzf – 终端模糊查询神器,支持多平台
- go-daemon – daemon 进程包
- go-prompt – 命令行交互式输入
- peco – 交互式过滤工具
- pty – PTY for Go
- vtclean – 从终端输出字符串中解析出纯文本
- Survey – 交互式输入
终端工具
- vgrep – 支持滚动分页的
grep
- GoTTY – 基于Web的命令行实时共享
- Jump – 根据习惯快速跳转目录
- GoFish – 一个受 Homebrew 启发的跨平台软件管理工具,支持 Linux 和 Windows
- viddy – 增强版
watch
命令 - miller – 一个类似 sed、awk、cut、join 和 sort 的工具,用来处理基于命名索引的数据
- assh – SSH 增强工具
- duf – 比
df
更好用的磁盘使用率工具 - ov – 终端文本阅读器,可替代
less
、more
、tail -f
等 - trdsql – 可对 CSV/LTSV/JSON/TBLN 等文件执行 SQL 查询和导出
- vhs – 终端录像工具,提供了在终端中录制和回放终端会话的功能,类似于将终端会话记录为视频的方式
路由
- HttpRouter
- mux – URL 路由和调度器
- chi
- gocraft/web
- go-querystring – 转换结构体为URL请求参数
- gorilla/schema – converts structs to and from form values
- CleverGo
- rewrite – rewrite 中间件
- BunRouter – 支持中间件、错误处理、路由优先级、兼容
net/http
接口
网络
- DNS – DNS 库
- CoreDNS – DNS 服务器
- RoadRunner – PHP 应用服务器、进程管理器、负载均衡,用于替代
Nginx + FPM
- FrankenPHP – PHP 应用服务器
- GoReplay – 流量收集&回放
- Sharingan – 滴滴开源的流量录制回放工具
- Glorp – HTTP 拦截&重放的 CLI 工具
- p2pspider – 种子嗅探器
- torrent – BitTorrent 相关工具库
- rain – BitTorrent 客户端和库
- httpteleport – Teleports 10Gbps http traffic over 1Gbps networks
- FIND3 – WiFi 设备发现
- SubFinder – 子域名发现工具
- ggz – 短网址服务
- httpstat
- grab – 文件下载
- go-getter – 可使用 URL 作为输入的主要形式从各种来源下载文件或目录
- go-netty – 网络框架
- gnet – 事件驱动 Go 网络框架
- netpoll – 专注于 RPC 场景的 Non-blocking I/O 网络库
- httplab – The interactive web server
- yamux – Multiplexer
- sftp – SFTP support for the
go.crypto/ssh
package - goftp – FTP 客户端
- SFTPGo – 功能齐全且可高度配置的SFTP服务器,可选择支持HTTP/S、FTP/S和WebDAV。支持的存储后端包括:本地文件系统、加密的本地文件系统、S3(兼容)对象存储、Google Cloud Storage、Azure Blob Storage以及其他SFTP服务器。
- evio – 事件驱动网络框架(reactor 模式)
- gaio – 事件驱动网络框架(proactor 模式)
- httpretty – 在终端上漂亮地打印出 HTTP 请求
- blocky – 作为局域网 DNS 代理拦截广告
- lossy – 模拟 net.PacketConn 和 net.Conn 接口的带宽,延迟和数据包丢失
- go-libp2p – P2P
- go-ipfs-api – IPFS
- gomobile-ipfs – 为移动终端提供IPFS网络访问支持
- go-multiaddr – multiaddr
- kcp-go – 可靠的 UDP 通讯包
- gliderlabs/ssh – 像
net/http
一样轻松搭建 SSH 服务器 - netaddr – 网络地址处理
- sx – 网络扫描命令工具
- echoip – IP 地址查找服务
- EasyTCP – TCP Server 框架
- GoPacket – 网络捕获抓包
- croc – 两台电脑之间传输文件
- cmux – 监听同一个端口,启动多种协议服务
- GeoIP2 Reader for Go – 解析&读取 MaxMind GeoLite2 和 GeoIP2 数据库
- dns.toys – DNS 服务器
- Apache Traffic Control – CDN 流量控制
- NextTrace – 可视化路由追踪工具
- pget – 文件下载工具,可多连接下载
- CloudflareSpeedTest – 测试 Cloudflare CDN 延迟和速度,获取最快 IP
LDAP
网络代理
- Caddy – 类似 Nginx 的 Web 服务器
- Traefik – 反向代理&负载均衡
- snail007/goproxy – golang 实现的高性能代理服务器
- ProxyPool – 采集免费的代理资源为爬虫提供有效的IP代理
- frp – 可用于内网穿透的高性能的反向代理应用
- nps – 一款轻量级、高性能、功能强大的内网穿透代理服务器
- Pomerium – 基于身份的反向代理
- V2Ray
- V2Fly – V2Ray 的社区版本
- Tailscale – WireGuard 解决方案
- Clash – 支持多种协议的多平台代理客户端
- elazarl/goproxy – HTTP 代理
- oxy – Go middlewares for HTTP servers & proxies
- ouqiang/goproxy – Go HTTP(S)代理库, 支持中间人代理解密HTTPS
- pgrok – 提供给穷人的内网穿透
HTTP压测
HTTP
- fasthttp – 比
net/http
快 10 倍的 HTTP 工具包 - Resty – HTTP & REST 客户端包
- gout – HTTP 客户端
- gentleman – HTTP 客户端
- goz
- UserAgent – 解析 HTTP User Agent
- purell – URL 规范工具包
- go-autorest – HTTP 管道请求方式的客户端
- Req – HTTP 客户端
- cors – CORS Handler
- CertMagic – 为任意 Go 程序自动加上 HTTPS,TLS 证书签发、更新全自动
WebSocket
- gorilla/websocket
- nhooyr/websocket – 官方推荐的包
- websocketd – Go 开发的一键搭建 WebSocket 服务器命令行工具
- ws – WebSocket 开发包
- melody – WebSocket 服务框架
- neffos – 一个快速且可扩展的 WebSocket 框架
- fastws
即时通信
- Centrifugo – 实时消息服务器,可以与任何语言编写的应用程序后端结合使用
- goim – 支持集群的 im 及实时推送服务
- Tinode – 即时消息服务器,通过 websocket/JSON 或 gRPC/TCP 等协议传输
- WebRTC – WebRTC 实现
- Berty – 安全的点对点通讯软件
- Keybase – 即时通讯工具 Keybase 全平台客户端
- gotify – 基于 WebSocket 的 PUSH 通知服务
- nakama – 用于社交/实时游戏/实时应用的分布式服务端程序,自带面板、用户、聊天、存储、社交等功能
- OpenIM
网关
- GoKu API Gateway CE – eoLinker 开源的 API 网关
- Easegress
- Manba
- Tpk
- BFE – 基于百度统一接入前端开源的七层流量接入系统
序列化
- vmihailenco/msgpack – 支持 msgpack
- go/codec – 支持 msgpack/binc/cbor/json
- golang/protobuf – Go 版本的 Protocol Buffers
- gogo/protobuf –
golang/protobuf
的扩展替代品 - Objx – 操作 map, slice, JSON 等数据的包
- msgp – MessagePack 代码生成器
- Buf – protoc 替代品
- protoc-gen-doc – Google Protocol Buffers 文档生成插件,支持 HTML、JSON、DocBook、Markdown 和自定义模板
解压缩
- snappy – Go 语言版本的 Snappy
- cae – 实现 ZIP/TAR.GZ 解压缩
- archiver – 多格式支持的解压缩包
- compress – Optimized compression packages
- Brotli
- xz –
xz
压缩格式读写包
RPC
- gRPC-Go – gRPC 官方包
- Go gRPC Middleware – gRPC 常用中间件
- gorpc
- gorilla/rpc – 构建基于 HTTP 的 RPC 服务,比如 JSON-RPC
- Lile – gRPC 服务构建包
- rpcx
- Twirp – 基于 Protobuf 的 RPC 框架,与 gRPC 类似
- dubbo-go – Dubbo Go 版本
- Kitex
- gRPCurl – 像 cURL 一样通过命令行访问 gRPC 服务
- protoc-gen-doc – 文档生成插件
- gRPC-Gateway – 读取 gRPC 服务定义并生成一个反向代理服务器,同时提供 gRPC 和 RESTful 风格的 API
邮件
- gomail – 邮件发送包
- scorredoira/email
- Hermes – Go 版本的 mailgen 引擎,根据配置生成 HTML 格式的邮件
- Go-Guerrilla – SMTP 邮件服务器
- MailHog – 基于Web和API的SMTP测试工具
- Maddy – 邮件服务器
- jordan-wright/email
- Mox – 邮件服务器
- Pop – 邮件发送工具,支持交互式和参数式
- email-verifier – 邮箱校验,无需发送邮件
消息队列
文件/存储
- MinIO – 对象存储服务器
- rclone – 不同云存储之间同步文件
- Syncthing – 文件同步
- fsnotify – 文件系统监控工具
- reflex – 监听文件变更并执行命令
- gohttpserver – HTTP 静态文件服务器
- XLSX – Excel 读写包
- Excelize – 360 开源的 Excel 工具包
- gopdf – PDF 生成
- rsc/pdf – PDF reader
- SeaweedFS – 分布式文件系统
- go-fastdfs – 分布式文件存储服务
- Dragonfly – 基于 P2P 的分布式文件系统
- filetype – 检测文件类型
- Afero – 文件操作包
- fsync – 文件/目录同步
- filebrowser – Web File Browser
- Bigfile – 文件传输管理系统
- filetype – 文件类型与 MIME 检测
- go-app-paths – 跨平台检索目录文件
- copy – 拷贝文件夹
- lakeFS – 类 Git 文件对象存储
- Duplicacy – 无锁云备份工具,支持几乎所有存储方式
- CasaOS – 家庭云系统
- AList – 支持多存储的文件列表程序
- UniPDF – PDF 读写处理
- mimetype – MIME 类型与文件扩展检测
- gocryptfs – 加密 overlay 文件系统
- restic – 备份工具,使用现代的加密方法对数据进行安全的备份,支持
模板引擎
- goTemplateBenchmark – 给各 Go 模板引擎做性能测试,当然也就包含了最全的模板引擎包
- Jet – 速度很快
- amber – HTML 模板引擎
- fasttemplate – Simple and fast template engine for Go
- quicktemplate
- mustache
- Ace
- Sprig – 常用模板方法
- pongo2 – Django 语法风格的模板引擎
- plush
代码生成
文本处理
Markdown
- Blackfriday – Markdown 解析器
- Lute – 结构化的 Markdown 引擎
- goldmark – Markdown 解析器
- docx2md – 转换 Word 为 Markdown
- glamour – 命令行下渲染 Markdown
- go-md2man – 转换 Markdown 为 man 手册内容
- gomarkdown/markdown
- html-to-markdown – 转换 HTML 为 Markdown
HTML/CSS
- DOM – HTML DOM 节点操作
- obelisk – 保存 Web 网页为 HTML 单页面
- html2text – HTML 转 text
- go-readability – 让 HTML 可读性更高
- gomponents – 声明式视图组件,可以渲染成 HTML5
- daz – HTML 组件组合,渲染 HTML
- html-strip-tags-go – 去除 HTML 标签
- bluemonday – XSS 探测
- cascadia – CSS 选择器
- htmlquery – XPath 语法查询 HTML
- xmlquery – XPath 语法查询 XML
- xpath – XPath 语法
- goquery – jQuery 语法查询 HTML
- css – CSS 选择器
其他
- go-runewidth – 字符长度计算
- gpy – Go 语言汉字转拼音工具
- go-hashids – hashids 的 Go 版本
- go-pinyin – 汉语拼音转换工具 Go 版
- mahonia – 字符集编码转换
- pangu.go – Go 版本的 pangu,给中英文之间加空格
- goorgeous – A Go ORG syntax parser to HTML
- sergi/go-diff – Go 版本的 diff 工具包
- sourcegraph/go-diff – Go 版本的 diff 工具包
- Chroma – 代码语法高亮
- syntaxhighlight – 代码高亮
- kyokomi/emoji
- enescakir/emoji
- golang/freetype – Freetype font rasterizer
- prose – natural language processing library
- minify – Web 静态资源压缩(HTML/JS/CSS/JSON/XML/SVG)
- Inflection – Pluralizes and singularizes English nouns
- autocorrect – 自动给中英文之间加入合理的空格并纠正专用名词大小写
- bleve – modern text indexing
- etree – XML 解析&生成
- go-xml
- feeds – RSS 内容生成
- gofeed – RSS & Atom feeds 内容解析
- sitemap – sitemap.xml 生成
- yarr – RSS 阅读软件
- gogrep – 通过语法树搜索 Go 源码
- PipeIt – 文本转换,清理和提取工具
- regexp2 – 全功能正则表达式引擎。如果标准库的 regexp 满足不了你,可以尝试使用 regexp2
- html2article – 基于文本密度的 html2article 实现
- hostctl –
hosts
命令行管理工具 - go-shellwords – 解析命令行中字段
- woke – 检查文本文件中是否存在歧视词汇
- go-password-validator – 密码强度校验器
- xurls – 从文本中提取 URL
- whatlanggo – 自然语言探测
- go-enry – 检测编程语言
- fuzzy – 字符串模糊匹配
- godlp – 数据脱敏
- Zoekt – 文本搜索引擎
文档
- swag – Swagger for Go
- gin-swagger – Swagger for Gin
- go-swagger – Swagger 2.0 implementation for go
数学计算
- decimal – 解决浮点数计算精度问题
- fixed
- apd – decimal 包
- mathfmt – 将 LaTeX 语法的注释转换为数学公式格式
- q – 量子计算模拟器
- accounting – 货币格式化
日期时间
配置
- GoDotEnv –
.env
配置文件解析 - go-yaml/yaml
- ghodss/yaml
- toml –
TOML
解析&编码包 - INI –
INI
配置文件解析 - Viper – 支持
JSON
,TOML
,YAML
,HCL
,Java
等配置文件 - fig
- Multiconfig
- configor
- envconfig
- confd – 配置管理工具
- HCL – configuration language
- env – 解析 ENV 环境变量到结构体中
- configor
- koanf
- go-toml – TOML
- butler – Adobe 开源的配置管理系统
- envsubst – 环境变量替换
爬虫
- Crawlab – 基于Golang的分布式爬虫管理平台,支持Python、NodeJS、Go、Java、PHP等多种编程语言以及多种爬虫框架
- Colly – 网络爬虫框架
- Pholcus – 支持分布式的高并发、重量级爬虫软件
- go_spider
- Muffet – 网站链接检查器
- Creeper
- Geziyor – 支持 JS 渲染的快速爬虫框架
- Apollo – 一个爬虫工具
- ferret – 声明式 Web 数据抓取
- gocrawl
- Antch
- katana – 爬虫&蜘蛛框架
数据库
SQL解析
- pingcap/parser – 兼容 MySQL 的 SQL 解析
- xsqlparser – SQL 解析
- sqlparser – SQL 解析
- vitess-sqlparser – SQL 解析
- dbml-go – DBML 解析
分布式事务
数据库相关
- usql – 几乎支持全部 SQL 与 NoSQL 数据库的命令行工具
- GORM – GORM V2
- GORM V1
- gorm2sql – 根据 Model Struct 生成建表语句
- gorm-sharding – 基于 Conn 层做 SQL 拦截、AST 解析、分表路由、自增主键填充,对使用者透明
- Xorm
- XormPlus – Xorm 的定制增强版本
- GoRose
- sqlx –
database/sql
扩展包 - dbq – 数据库操作
- gendry – 滴滴开源的SQL Builder
- ozzo-dbx
- Squirrel – Fluent SQL Builder
- qb – the database toolkit for go
- mgo
- globalsign/mgo – The MongoDB driver for Go
- mgo使用指南
- kingshard – MySQL Proxy
- SOAR – 对SQL进行优化和改写的自动化工具
- SQLE – SQL 审核工具
- Vitess – 用于部署、扩展和管理大型MySQL实例集群的数据库解决方案
- gh-ost – GitHub 开源的在线更改 MySQL 表结构的工具
- SQLer – write APIs using direct SQL queries with no hassle, let’s rethink about SQL
- gocraft/dbr
- Gaea – 小米开源的基于 MySQL 协议的数据库中间件
- OctoSQL – 支持多数据库的 SQL 查询工具
- goose – 数据库迁移工具
- migrate – 数据库迁移工具
- dbmate – 数据库迁移工具
- ent – An Entity Framework For Go
- godb – a Go query builder and struct mapper
- go-nulltype
- go-mysql – MySQL 工具集
- SQLittle – 纯读取 SQLite 文件
- Bifrost – MySQL 同步到 Redis、ClickHouse 等服务的异构中间件
- elasticsql – 转换 SQL 成 Elasticsearch DSL
- POP – 基于 sqlx 封装的数据库 ORM 工具
- REL – Modern Database Access Layer for Go
- RDB – Redis RDB 文件解析和生成工具,支持转 JSON、转 AOF、寻找 Big Key、生成 RDB 文件及绘制内存火焰图等功能
- Bytebase – 基于网络、零配置、无依赖的数据库 Schema 变更和版本控制管理工具
- Bun – SQL 优先的 ORM,写 SQL 的方式写 Go 代码,支持 PostgreSQL、MySQL、MSSQL、SQLite
数据库客户端
- Go-MySQL-Driver – MySQL 驱动
- go-mssqldb – MSSQL 驱动
- pq – PostgreSQL 驱动
- mongo-go-driver – MongoDB 官方出品的 Go 语言驱动
- qmgo – MongoDB 客户端
- clickhouse-go – ClickHouse 官方 Go 语言客户端
- go-clickhouse – ClickHouse 客户端
- go-sqlite3 – SQLite3 驱动
- gohbase – HBase 客户端
- redigo – Redis 客户端
- go-redis – Redis 客户端
- rueidis – Redis 客户端
- redsync – 基于 Redis 的分布式锁
- redislock – 基于 Redis 的分布式锁
- Tiny RDM – Redis 桌面客户端
数据库引擎
- etcd – KV 分布式存储
- InfluxDB – 时间序列数据库
- Prometheus – 服务监控系统 & 时间序列数据库
- tstorage – 时间序列数据库
- Thanos – 支持 Prometheus 简化部署、高可用、分布式存储
- CockroachDB – 分布式 SQL 数据库
- Cayley – 图数据库
- RadonDB – 基于 MySQL 研发的新一代分布式关系型数据库
- TiDB – 分布式关系型数据库,兼容 MySQL 协议
- AresDB – Uber 开源的 GPU 驱动的实时分析存储&查询引擎
- leveldb – LevelDB 的 Go 实现
- Dgraph – 分布式图数据库
- rqlite – 基于 SQLite 的轻量级分布式关系数据库
- gaeadb
- BadgerDB – KV 数据库,支持 ACID 事务
- LBADD – 用 Go 实现的分布式 SQL 数据库
- go-memdb – 建立在不可变 Radix 树上的内存数据库
- VectorSQL – 应用于 IoT 和大数据的 DBMS 数据库,类似于 ClickHouse
- BuntDB – 基于内存的KV数据库,支持磁盘持久化、ACID事务
- TinySQL – 迷你分布式关系型数据库
- Tile38 – GEO 数据库
- Redcon – 兼容 Redis 协议的自定义 Redis 服务,采用 BuntDB 和 Tile38 实现存储
- genji – 文档内嵌型数据库
- Dolt – 像 Git 一样操作数据库
- rosedb – 简洁、高效的 KV 数据库,支持多种数据结构
- LinDB – 分布式时序数据库
- mandodb – 一个示例项目,作者介绍如何从零开始实现一个小型的时序数据库
- go-mysql-server – 解析 MySQL 协议并优化 SQL 的数据库引擎
- Milvus – 向量数据库
- FerretDB – MangoDB 替代品
- LotusDB – 快速 KV 存储引擎,兼容 LSM 和 B+ 树
- NutsDB – 可持久化、事务的内嵌 KV 数据库
- Olric
缓存
- GCache
- bbolt – key/value store
- BigCache
- go-cache – KV 内存缓存
- gomemcache – Memcache 客户端
- cache2go
- ristretto
- fastcache
- FreeCache
- godis – Go 语言实现的 Redis 服务器和分布式集群
- groupcache – 分布式缓存
- cachego – 支持 Redis、Bolt 等缓存接口
- diskv – 基于硬盘的 KV 存储
- Pebble – 被 CockroachDB 使用的 KV 存储
搜索推荐
- wukong – 全文搜索引擎
- go-elasticsearch – 官方 ES 客户端
- elastic – Elasticsearch 客户端
- go-mysql-elasticsearch – Sync MySQL data into elasticsearch
- gse – Go 语言分词
- sego – Go 中文分词
- gojieba – “结巴”中文分词的 Go 语言版本
- Riot – 全文搜索引擎
- simplefts – 超简单的全文搜索引擎实现
- Blast – 全文搜索(
Archived
) - Fuzzy Search – 文本模糊搜索
- gorse – 单节点训练和分布式预测推荐系统引擎
- gofound – 全文搜索引擎
- ZincSearch – 全文搜索引擎
- Bluge – 文本分词
表单
- validator
- ozzo-validation – 使用代码指定规则,而非Tag
- go-tagexpr – 字节跳动开源的结构体标签表达式解释器
- govalidator
Auth
- Casbin – 权限控制管理
- pam-ussh – Uber’s SSH certificate pam module
- jwt-go – JWT for Go
- kataras/jwt – JWT 轻量级实现
- cristalhq/jwt
- sessions – 后端 SESSION 服务
- securecookie – cookie 加密/解密
- Goth – Multi-Provider Authentication for Go
- branca – 号称比 JWT 更安全的 token 解决方案
- gin-jwt – Gin 框架的 JWT 中间件
- Authboss – Web Auth 系统
- ZITADEL – 身份认证系统,支持各种认证模式
加密/解密
- 2fa – Two-factor authentication on the command line
- age – 文件加密工具(库)
- CIRCL – Cloudflare Interoperable, Reusable Cryptographic Library
视频
- goav – FFmpeg 视频处理
- lal – 直播流媒体网络传输服务器
- bililive-go – 直播录制工具
- screego – 通过浏览器共享开发者屏幕
- livego – 直播服务器
- Monibuca – 流媒体服务器开发框架
- olive – 支持虎牙等平台的直播录制
- lux – 各大视频网站的视频下载工具
图形处理
- barcode – 条形码/二维码生成器
- picfit – 图片操作、裁剪、管理服务器
- gmfs – 图片操作、裁剪、管理服务器
- besticon – favicon 服务
- Caire – 图片操作库
- Imaging – 图片操作库
- gocaptcha – 验证码生成
- base64Captcha – 验证码
- go-is-svg – 校验是否为 SVG 图片
- identicon – 根据用户的 IP 、邮箱名等任意数据为用户产生漂亮的随机头像
- prominentcolor – 识别图片的主要颜色
- dchest/captcha – 生成和验证图片或音频验证码
- bimg – 图片处理
- imaginary – 图片处理服务
- primitive – 用原始几何图形绘制图形
- orly – 生成你自己的O’RLY动物书封面
- smartcrop – 智能裁剪图片
- gift – 图片滤镜
- Germanium – 给代码生成图片
- Go Graphics – 2D 图片渲染
- canvas – 矢量图绘制
- formulae – 数学公式解析、计算、图表绘制
- imagor – 图像处理服务器
- Triangula – 给图片增加三角形纹样风格的滤镜
- D2 – 一种将文本转换成图形的图表脚本语言
- ImGo – 简洁、链式调用的图像处理库
- Invoice – 发票生成工具,可通过参数和配置文件进行创建和管理各种类型的发票
图片识别
- go-face – 面部识别
图表
- go-echarts – Echarts 图表库
- gonum/plot – 图形绘制
- pinhole – 3D 线框图绘制
- globe – 地球线框图绘制
- ink – Go 中的 2D 图形框架
- go-plantuml – 基于 Go 源码生成 plantuml 图
- go-diagrams – 通过代码生成图表
- GoCity – 3D 展示城市
构建编译
- Mage – 类似于 Makefile 的命令行工具,用于构建和运行 Go 项目
- GoReleaser – Go 多平台二进制文件打包、并支持发布到 Homebrew 的工具
- goxc – 跨平台编译工具(因 1.5 版本开始已自带交叉编译,故已不再维护)
- Task – 类似于
Make
的构建工具 - codegangsta/gin – 热编译工具
- Air – 热编译工具
- gowatch – 热编译工具
- Fresh – 热编译工具
- dh-make-golang – 自动构建 Debian 包
- gobinaries – 不用安装Go就能编译安装Go编写的程序
- nFPM – deb、rpm、apk 等打包工具
- Gox – Go 跨端编译工具
- garble – 混淆代码
- gobfuscate – 混淆代码
- go-appimage – Go 语言实现 AppImage 打包工具
静态资源内嵌
- pkger – 将静态文件打包成 Go 二进制文件
- mewn – 静态文件嵌入打包到二进制文件
- statik – 静态文件嵌入
- go.rice
- go-bindata – 将静态文件转换成 Go 代码文件
- vfsgen – 将静态文件打包成
http.FileSystem
类型进行访问 - packr
优雅升级
- tableflip – Web 服务升级
- selfupdate – 二进制文件自动升级
- overseer
- go-github-selfupdate – 依托 GitHub 自动升级
代码分析
- reviewdog – Code Review 机器人
- revive – 代码检查分析
- GolangCI-Lint – 代码质量检查分析工具
- errcheck – 检测未处理的错误(errors)
- Staticcheck – 一系列的 Go 代码静态分析工具
- Golint – Google 官方出品的代码质量检测工具
- GoReporter
- go-critic
- gocloc – 分语言代码行数统计
- coca – 代码统计分析
- Go Report Card – Go 项目质量分析报告工具
- ddsv-go – 死锁检测工具
- golang/perf – 官方性能量化分析工具
- GoPlantUML – 为 Go 项目生成 PlantUML 类图
- gosize – 分析Go二进制文件大小
- shotizam – 分析 Go 二进制文件的大小并输出到 SQLite3
- goconst – 查找可以被常量替换的重复字符串
- sploit – 帮助二进制分析和开发的库
- perf – Perf Utilities for Go
- fgprof – Go 性能分析工具
- conprof – 协程分析
- statsview – 实时 Go 运行时统计数据可视化分析器
- codesearch – 代码搜索工具
- Pyroscope – 可视化程序性能监控工具,支持多种语言
- gosec – 代码安全性检查工具
- gokart – 代码静态分析工具
- gofumpt –
gofmt
增强版代码格式化工具 - NoVerify – PHP 代码分析工具
- fieldalignment – 结构体字段内存对齐分析和自动修复工具
- Bearer – 代码安全扫描工具
调试
- go-spew – 变量打印工具
- Delve – Debug 工具
- gdlv – Delve 界面版本
- Weaver – 跟踪 Go 程序执行链路
- repr – 变量打印工具
- pp – 彩色变量打印工具
- ffmt – 变量打印工具
- gops – 谷歌官方出品的 Go 程序监控调试工具
- pprof
- go-callvis – 可视化Go程序的调用图
- q – 自动打印变量类型并且格式化输出
- Litter
- RDebug – 滴滴开源的一款用于 RD 研发、自测、调试的实用工具
- debugcharts – Go 内存占用可视化调试工具
- gcvis – 实时可视化 gctrace
- pkg/profile
- statsviz – 在浏览器中实时查看 Go 应用程序运行时统计信息(GC,MemStats 等)
- autopprof – 自动分析 pprof
- stack – 捕获、操作、格式化调用栈信息
- pretty – 打印变量
- go-deadlock – 对
(RW)Mutex
进行注入,并提供死锁检测 - mmcloughlin/profile
- gcnotifier – 当发生 GC 时通知
- grmon – 命令行监控显示 goroutines
- valast – 打印输出变量的
go/ast
结构,类似于 PHP 的var_export
函数 - lensm – Go 汇编与源码对照查看工具
- holmes – 基于规则的自动 Go Profile Dumper
测试
- GoConvey – 含Web界面的单元测试框架
- GoMock – 谷歌出品的Mock测试框架
- GoStub
- Monkey – (Archived) Monkey patching in Go
- gomonkey – 猴子补丁,对函数、变量等进行打桩,方便单元测试,Fork 自 Monkey
- SuperMonkey – 让私有方法可测
- mockery – 自动为接口生成 mock 代码
- Ginkgo – BBD 测试框架
- fperf – 压测工具
- gocheck
- Testify
- gotests – 根据源码自动生成测试文件
- TestSQL – 根据 SQL 创建语句生成测试数据
- httpmock – HTTP Mock
- Goblin – BDD 测试框架
- go-faker/faker – Struct Data Fake Generator
- gofakeit – 随机数据生成器
- dmgk/faker
- go-tprof – 包测试报告生成工具
- go-fuzz – randomized testing for Go
- gofight – Testing API Handler
- sqlmock – SQL 测试
- sqlbench – SQL
- silk – 基于 Markdown 的接口测试
- gock – HTTP mock 测试
- godog – BDD 测试框架 Cucumber 的 Go 版本
- endly – E2E(端到端)测试
- is – 迷你测试框架
- Terratest – 基础设施测试,比如 Docker
- agouti – Web 驱动的验收测试框架
- httpexpect – 端到端 HTTP & REST 测试框架
- gocov – 测试覆盖率
- miniredis – Redis 数据测试
- htmltest – HTML 测试
- gnomock – 无需 mock 的 Go 代码测试框架
- gunit – xUnit 风格测试框架
- quicktest
- k6 – 负载测试工具
- go-cover-treemap – 将覆盖率测试结果转换成 TreeMap 图
- ZTF – 禅道开源的自动化测试框架
- Moq – 为接口生成 Mock 代码
错误处理
- errors
- errorx
- errwrap – Go tool to wrap and fix errors with the new
%w
verb directive - erris – Linter for errors.Is and errors.As
- eris – 旨在通过错误包装,堆栈跟踪和输出格式为你提供对错误处理的更多控制
- errlog – 使用静态和堆栈跟踪分析来快速确定哪个函数调用导致的错误
- juju/errors
- go-fault – GitHub 官方出品,基于标准库 http 中间件的故障注入库
- merry – 支持堆栈、状态码的错误处理
- cockroachdb/errors – 功能强大、可替代
errors
和github.com/pkg/errors
的错误处理包 - go-multierror – 支持错误列表
安全
- Kunpeng – 开源POC检测框架
- nmap – 安全审计工具
nmap
开发包 - Hetty – 用于安全研究的 HTTP 工具包,具有 Web 接口和代理日志查看器的拦截 HTTP 代理
- Fibratus – Windows 内核漏洞利用和跟踪工具
- Secure – HTTP 安全中间件
- nuclei – 基于YAML语法模板的定制化快速漏洞扫描器
- Gitleaks – 用于在 Git 存储库中查找敏感信息和密钥的开源工具
系统信息
- go-hardware – 收集了一堆关于硬件信息的包
- cpuid – CPU 信息
- gopsutil –
ps
功能包 - go-sysinfo – 系统信息
- go-locale – 跨平台语言检测库
- go-ps – 系统进程信息
- psgo –
ps
命令实现 - ghw – 硬件信息
- machineid – 获取机器ID
UUID
- go.uuid – UUID 库
- SEQSVR – Go + MySQL 实现的分布式 ID 生成服务
- google/uuid – Google 开源的 uuid 包
- gofrs/uuid
- snowflake – Twitter snowflake IDs
- sonyflake – Sony 版本的 Twitter’s Snowflake
- ulid – ULID Go 语言实现
- ksuid – K-Sortable Globally Unique IDs
- go-nanoid – NanoID 实现
- xid – 全局唯一 ID 生成器
日志
- logr – 日志包标准接口
- Logrus – 日志记录包
- zerolog
- zap – Uber 开发的日志记录包
- Seelog
- logkit – 七牛开源的日志收集工具
- gogstash – 类似于 Logstash 的日志收集器
- lumberjack – 日志文件切割
- file-rotatelogs – 日志文件切割
- go-syslog – 极速 Syslog 解析器
- glog
监控告警
- OpenFalcon – 小米开源的监控系统
- Prometheus – 服务监控系统 & 时间序列数据库
- Grafana – 分析监视平台, 支持 Graphite, Elasticsearch, OpenTSDB, Prometheus, InfluxDB 等数据源
- grabana – 用 Go 代码快速创建 grafana dashboards
- Jaeger – 分布式追踪系统
- go-osstat – 系统指标统计
- grafterm – Metrics dashboards on terminal
- mymon – MySQL 运行监控
- PingMe – 支持多消息平台的服务可用性报警命令工具
- supervisord – Go 语言实现 Supervisor
- Grafana Tempo – 分布式追踪系统
- EaseProbe – 服务探活工具并通知
- Uptrace – APM 工具,支持 OpenTelemetry 追踪、指标和日志
- Nightingale – 滴滴基于 OpenFalcon 开源的监控系统
统计分析
容器技术
- moby – Docker
- docker-ce
- Rancher – 全栈化企业级容器管理平台
- Gorsair
- docui – TUI Client for Docker
- Podman – 管理和运行任何符合
OCI
规范的容器和容器镜像 - Skopeo – 镜像管理工具
- Buildah – 构建
OCI
容器镜像的工具 - go-docker – 用 Go 实现 Docker 核心功能
- Packer – 轻量级的镜像定义工具
- cosign – 容器签名和验证
- SlimToolkit – 检查、缩小和调试容器
集群管理
- Nomad – 集群管理器和调度器
- OpenShift Origin – Red Hat 开发的容器化软件解决方案
Kubernetes
- kubernetes – 容器调度管理平台
- k0s – 最小体积的 k8s 发行版
- sealos – 一条命令部署 Kubernetes 高可用集群
- KubeEye – 通过配置规则发现 Kubernetes 上的各种问题
- endpoints-operator – K8S内部服务访问外部服务的具备探活功能的4层LB
机器学习
- goml – 机器学习库
- GoLearn – 一个 “开箱即用” 的机器学习库
- glow – 易用的分布式计算系统
- Gobot – 机器人和物理计算语言库
- Olivia – 神经网络
- Pico – 基于像素强度比较的物体检测纸张的纯 Go 脸部检测库
- tfgo – Tensorflow in Go
- Prophecis – 微众银行自研的一站式云原生机器学习平台
- AID – 机器学习ops平台,发现、部署、优化
- SQLFlow – SQL引擎+AI引擎
人工智能
- go-openai – OpenAI API Go 客户端 SDK
- LocalAI – 低成本的硬件上运行模型计算的本地计算框架,支持多种模型,提供兼容 OpenAI 接口协议的 REST API
算法
- GoDS – Go 实现了多种数据结构
- Dragonboat – 多组 Raft 共识算法库
- eliben/raft – Raft 算法
- hashicorp/raft – Raft 算法
- Graft – Raft 算法
- golang-lru – LRU 算法实现
- tinylru
- finn – Fast Raft framework using the Redis protocol for Go
- xorfilter
- priyankchheda/algorithms – 各种算法的 Go 语言实现
- meow – Meow hash
- basalt – 高性能的分布式的专门空间优化的 Bitmap 服务, 杜绝 Bloomfilter 和 CuckooFilter 的误判
- go-blurhash – BlurHash,是模糊图片的一种哈希算法
- xxhash – xxHash 哈希算法实现
- go-multihash – 各种 Hash 算法实现
- memberlist – 基于 gossip 协议实现的管理集群成员和成员失败检测的开发包
- backoff – 指数退避算法(Exponential Backoff)
- FSM – 有限状态机
数据结构
- go-datastructures
- Play-with-Data-Structures – 「玩转数据结构」课程的 Go 语言实现版本
- HashMap
- SipHash – SipHash-2-4
- Bigslice
- golang-set – The missing set collection
- rbang – R!tree 实现
- rtreego – R-tree
- google/btree – B-Tree
- tinybtree – B-tree
- dataframe-go – 用于数据统计和操作的包
- go-set – 集合工具包
- orderedmap – 有序字典
- trie
- Slim – 空间高利用率的数据结构
- bitset – 位集合及其操作
- bloom – Bloom filters
- roaring – 压缩位图
- go-immutable-radix – Radix 树
依赖注入
- go-autowire – 使用注解自动生成 wire – 依赖注入
- dig
- Fx
JSON
- GJSON – JSON 解释器
- SJSON – JSON 修改工具
- fastjson – fast JSON parser and validator for Go
- jsonparser
- ffjson
- json-iterator – 滴滴开源的 JSON 解析器
- gojsonq – JSON/YAML/XML/CSV 等数据查询
- easyjson
- go-jsonc – 将带注释的 JSON 转为无注释的
- jin – JSON 操作工具包,同时具有标准库和类似
tidwall/gjson
和tidwall/sjson
的功能 - hujson – 支持注释的 JSON 解码
- pkg/json – JSON Decoder
- ColorJSON – 终端中打印彩色 JSON
- jid – JSON 数据解析读取工具
- jsonc – 支持注释与逗号
- sonic – 字节跳动开源的 JSON 解析器&修改器
- go-json
- jsonquery – XPath 语法查询 JSON
- fx – 命令行 JSON 显示
依赖管理
- goproxy.io –
GOPROXY
代理服务 - goproxy.cn – 更适合国内用户的代理服务
- Gopm – Go 包管理工具
- govendor – Vendor 包管理工具
- gom – 包版本管理工具
- rvflash/goup – 检查包版本是否有更新
- owenthereal/goup – Go 多版本管理
- Athens –
GOPROXY
代理服务
微服务
- Istio [中文文档] – 大型微服务系统管理工具
- goa
- Micro – 微服务工具
- Go Micro – 微服务框架
- Go kit – Go 微服务工具集
- GoKit CLI – Go kit 脚手架
- gogo
- go-chassis
- Kite
- Kratos – B站开源的微服务框架
- Temporal – 微服务编排平台
- Serf – 服务编排管理平台
- Open Policy Agent – 通用策略引擎,CNCF 孵化项目
- gizmo – 微服务工具集
- MOSN – 用于边缘和服务网格的云原生网络数据平面
- Erda – 为企业提供 DevOps、微服务治理、多云管理的 PaaS
- Service Weaver
- Consul – 服务发现、配置管理中心服务
- Traefik Mesh – 简单的服务网格
Serverless
- OpenFaaS – Serverless Functions Made Simple(功能服务化的 FaaS 框架)
- faasd – 轻量级 FaaS 引擎
- fn – 事件驱动的 FaaS
- riff – 基于 Kubernetes 的 FaaS
- Nuclio – 实时事件与数据的 Serverless 框架
- Flogo – 事件驱动的 Serverless 框架
- Dapr – 微软开源的云和边缘计算的微服务构件
- kubeless
- Fission – 基于 Kubernetes 的 Serverless
- pulumi
- Knative
- fx
- IronFunctions
- schollz/faas – 让任何包的函数变成一个 HTTP 接口
- Vanus – 无服务事件流处理系统
devops
- act – 本地运行 GitHub Actions
持续集成/部署
- CDS – 持续集成服务
- gopub
- CodePub
- syncd – 代码部署工具
- Drone – 基于 Docker 的持续发布平台
- Cyclone – 持续集成&发布平台
- tbls – 用于记录数据库文档的 CI 友好工具
- Woodpecker – Fork 自 Drone
- Dagger – 基于容器的 CI/CD 工具
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 的工具
- gitbase – SQL 的方式查询 Git 日志
- git-chglog –
CHANGELOG
管理工具 - chglog –
CHANGELOG
管理工具 - lazyhub – GitHub 的终端 UI 客户端
- goaction – 在 Go 中编写 GitHub Action
- bit – Git 命令增强版,支持文件和分支名称自动完成、命令和标志建议
- go-github – GitHub API 操作库
- askgit – 通过 SQL 访问 Git 仓库信息
- git2graph – 根据 Git 仓库提交记录生成结构图
- lazygit – Git 终端 UI
- gh-dash – GitHub CLI(
gh
)漂亮终端面板 - Soft Serve – 命令行式自托管 Git 服务器
- Git LFS – 处理大文件的 Git 扩展
限流器
- Tollbooth – Simple middleware to rate-limit HTTP requests
- ratelimit
- RateLimit
- go-rate
- Circuit – 熔断器
- uber-go/ratelimit
- Sentinel – 阿里巴巴开源的面向分布式服务架构的流量控制组件 Go 语言版本
- gohalt – 限流
- gobreaker – 熔断器
- ulule/limiter
编译器
- TinyGo – 一个适用于微控制器、WebAssembly 和命令行工具的 Go 编译器
- minigo – A Go compiler from scratch
- llir/llvm – LLVM 编译器
- jit-compiler –
JIT
编译器 - Go+ – 七牛云开源面向数据科学的语言,完全兼容Go语言
解释器
语言解释器
- participle – 通用的自定义语法解析包
- GopherLua – VM and compiler for Lua in Go
- go-lua – A Lua VM in pure Go
- DCLua – Go Lua Compiler and VM
- otto – JavaScript 解释器
- goja – ECMAScript 5.1(+) 实现
- v8go – Execute JavaScript from Go
- gpython – Python Interpreter on Go
- Grumpy – 转换 Python 为 Go 代码,谷歌开源
- starlark-go – Starlark in Go
- avo – x86 汇编程序构建器
- wagon – WebAssembly 解释器
- GopherJS – 把 Go 代码编译成 JavaScript 代码
- Yaegi – Go 语言解释器
- properties – Java properties scanner for Go
- jvm.go – JVM
- gobasic – A BASIC interpreter written in golang
- golisp –
Lisp
解释器 - dst – Go Decorated Syntax Tree
- mvdan/sh – Shell 解析、格式化、接口
- tdewolff/parse – 通用词法分析器 Lexer,并内置支持解析 HTML/CSS/JSON/XML/JS/SVG 语法
- Joker – Clojure
PHP
- z7zmey/php-parser – PHP AST 语法解析
- deuill/go-php – PHP bindings for Go
- goridge – High-performance PHP-to-Golang IPC bridge
- RoadRunner – 高性能PHP应用服务器,支持负载均衡及进程管理
- VKCOM/php-parse – PHP AST 语法解析
自定义解释器
- CUE – Configure Unify Execute(Validate and define text-based and dynamic configuration)
- cel-go – Common Expression Language(CEL 的 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
- Monkey
- govaluate
- Compiler – 将自定义语法代码编译成 X86-64 Assembly
- elvish – 交互式 Shell 语言
- QLBridge – Go SQL Runtime Engine
- YQL – SQL WHERE 风格的规则引擎
- Flux – InfluxDB 数据语言
- Spiker – Go 编写的简单规则表达式执行器,支持自定义函数和流程控制,适用于业务规则复杂的场景
- gocc – 解析器生成器,可以将指定的文法转换为 Go 语言的解析器程序代码,用于编译和解析特定类型的源代码
代码生成
- jennifer – Go 代码生成
- ifacemaker – 根据结构体方法生成接口
- gg – Go 代码生成
编辑器
- micro – 基于终端的编辑器
- sourcegraph – 代码搜索&导航
运行器
查询语言
- graphql – Go 实现的 GraphQL
- graphql-go
- GQLEngine – 基于 graphql-go 实现
- RQL – REST 资源查询语言
- Thunder – GraphQL 服务构建框架
- gqlgen – 构建 GraphQL 服务器的包
- super-graph – 无需编写代码即可在 Go 项目中构建复杂的 GraphQL API
游戏相关
桌面开发
GUI
- Lorca – 用 Go 编写 HTML5 桌面程序,依赖 Chrome 进行 UI 渲染,但却不把 Chrome 打包到应用中
- webview – 用 Go/C/C++ 构建跨平台的桌面软件
- walk – Windows GUI toolkit
- go-gtk – Go bindings for GTK
- andlabs/ui – Platform-native GUI library for Go
- fyne – Material Design 风格的 GUI
- go-gl – Go bindings for OpenGL (generated via glow)
- therecipe/qt – 基于 Qt 的跨全平台 UI 包
- giu – 基于 Dear ImGui 的跨平台 GUI 框架
- go-app – 一个 WebAssembly 框架,用于使用 Go,HTML 和 CSS 构建 GUI 应用
- wails – 使用 Go 和 Web 技术创建桌面应用程序
- chromedp – 纯 Go 语言实现的驱动浏览器的 Chrome DevTools Protocol,可用于爬虫、反爬虫、测试等场景
- Rod – 一个为简化自动化和爬虫设计的 devtools driver,利用浏览器的 devtools 可编程接口来操控浏览器
- go-astilectron – 基于 Electron 的跨平台开发
- Gio – 跨平台 UI 框架,支持移动应用
- nucular – 基于 Gio 的实现
- GoVCL – 跨平台的 GUI 包
- vugu – WebAssembly UI 框架
- GoGi – 2D/3D GUI 框架
- systray – 跨平台支持菜单栏管理
- go-flutter – 绑定 Flutter 到桌面应用
- NuxUI
桌面辅助包
- pkg/browser – 在浏览器中打开文件、URL
- MacDriver – macOS 原生 API
- gon – 为 macOS 签名和公证
桌面应用
移动端
- golang/mobile – Go support for Mobile devices
协程/线程
- ants – 协程池
- tunny
- go-workers – 安全地并发运行一组 worker,通过 channel 进行输入输出
- Machine – 受 errgroup.Group 启发的协程管理
- thread
- conc – 更好用的结构化并发控制
- zeropool – 零回收、类型安全的协程池
- workerpool – 无阻塞队列任务池
- pond – 协程池
任务/定时器
- RxGo – Go 版 ReactiveX,简单方便的处理异步数据流
- Grift – Go based task runner
- cron – a cron library for go
- gocron – 任务定时调度器
- jobrunner
- CurlyQ – 后台任务处理库
- overtalk/task – 任务的管理&执行,支持自定义次数的重发
- PPGo_Job – 定时任务管理系统
- gocelery – Celery 的 Go 语言实现
- Machinery – 通过分布式消息实现异步任务调度
- dkron – 分布式任务调度系统
- Grit – 基于 MultiTree 实现的任务管理
- Asynq – 异步分布式任务队列
- cronsun – 分布式任务系统
流处理
- benthos
- gostream
- watermill
- go-streams
- goflow
- Cadence (Cadence Web UI) – Uber开源的分布式工作流引擎,主要用于微服务编排和分布式事务等场景
微信
SDK
区块链
- Hyperledger Fabric – 基于区块链的超级账本
- go-ethereum – 以太坊协议的官方 Go 语言实现
- bbgo – 用 Go 编写的加密货币交易框架
- btcd – 比特币实现
开发辅助包
- cvt – 任意数据类型转换,支持自定义类型、提取结构体字段和值
- copier – struct 之间拷贝值
- cast – 数据类型转换
- diff – 结构体&值比较
- go-extend
- com – 工具包
- php2go – Go 实现的 140+ 个 PHP 函数功能包
- gommon – Common packages for Go
- reflect2 – reflect api without runtime reflect.Value cost
- mapstructure – 将 map 值转换到结构体中
- naza – Go语言基础库
- automaxprocs – 自动设置
GOMAXPROCS
- c2go – 将 C 代码转换为 Go 代码的工具
- rnm – 代码重构辅助工具
- memviz – 图形化数据结构
- underscore.go
- go-testdeep – 非常灵活的深度比较包,扩展了 Go 测试包
- go-model –
struct
操作包 - concurrent-map – 并发安全
map
- goleak – 检测 goroutine 泄漏
- guregu/null – SQL/JSON的
null
处理包,提供替代类型 - stats – 标准数字统计
- Chronos – 静态竞争检测器
- collection – 替代原生的 Slice
- rf – 代码重构工具
- bytebufferpool – byte buffers pool
- bpool – byte buffers pool,支持 bytes.Buffers
- mergo – 合并结构体和字典数据
- go-funk – 基于反射实现的常用函数
- lo – 基于 1.18+ 泛型的常用函数
- juniper – 基于泛型实现常用的容器、迭代器、数据流等功能
- mergo – 合并结构体和字典
- xstrings – 字符串相关函数
- pie – slice/map 链式处理
代码生成
- ChimeraCoder/gojson – 根据 JSON 生成结构体
- db2struct – 根据表结构生成结构体
- smallnest/gen – 根据表结构生成结构体
- sqlc – 根据 SQL 语句生成 Go 代码
- xo – 根据表结构或查询语句自动生成 Go 代码
系统开发
- LinuxKit – 为容器构建安全、便携、可移植操作系统的工具包
- go-systemd – 绑定 systemd
- Lima – Linux-on-Mac (“macOS subsystem for Linux”, “containerd for Mac”)
- gopher-os – 一个兼容 Linux 的 64 位 POSIX 风格系统
- gouring – 不依赖 CGO 实现系统调用
未归类
- go-playground – 比官方更好用的 Go Playground
- Robotgo – Golang 跨平台自动化系统,控制键盘鼠标位图和读取屏幕,窗口句柄以及全局事件监听
- go-homedir
- i18n –
i18n
多语言工具包 - go-i18n – 多语言工具包
- Paginater – 分页工具
- gls – Goroutine local storage
- mcuadros/go-version – 版本号比较
- go-semver – 语义版本
- semver – 另一个语义版本
- hashicorp/go-version
- Metabolize – Decodes HTML meta tags into a Golang struct
- otp – 一次性密码工具包(One Time Password utilities)
- misspell – 常拼写错误的英语单词
- CRDT – CRDT(Convergent and Commutative Replicated Data Types)最终一致性算法的实现
- script – Making it easy to write shell-like scripts in Go
- sysadmin-utils
- licenseclassifier – 识别文件中的 LICENSE 类型
- go-license-detector
- rose – 在 HTML 中嵌入和运行 Go 代码
- esbuild – JavaScript 构建打包工具
- clipboard – 剪切板
- clipboard – 剪切板
- clipboard – 剪切板
- Timeliner – 搜集整理个人在社交网站上的数据并索引成时间线
- hc –
HomeKit
平台开发框架 - address – 地址处理库,支持多国语言
- webhook – 可执行 Shell 命令的 Web Hook 服务
- webhookd – 为 Shell 脚本提供 Web Hook 服务
- go-cid – CID spec Go 语言实现
- gorush – APP 消息通知服务
- EventBus – 事件总线
- go-winio – 为 Win32 IO 操作提供接口支持
- fq – 以 jq 语法读取二进制数据/文件
- lego – Let’s Encrypt client and ACME library
logo
工具
- syndbg/goenv – Go 版本管理
- wfarr/goenv – Go 版本管理
- gvm – Go 版本管理
- GoLand – IDE 软件
- Visual Studio Code
资源站点
- Go 101
- Go 语言中文网
- Golang 中国
- go-zh
- Golang sizeof tips – 输入结构体定义,会显示内存布局
- Golang Programs
- Golang bot
参考https://github.com/shockerli/go-awesome?tab=readme-ov-file
正文完
发表至: 未分类
2024-02-11