Go 语言优秀资源整理

78次阅读
没有评论

官网: https://golang.org

国内官网镜像(访问快): 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

大牛/组织

Go 语言方面的大牛,或者优秀 Go 项目的组织

大牛

组织

文档

指南

文章

付费教程

成品项目

  • 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 框架

业务框架

  • 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 – 低代码框架

项目骨架

DDD 框架

TCP 框架

  • zinx – TCP并发服务器框架

中间件

  • Negroni – Web 中间件
  • csrf – CSRF 中间件
  • handlers – A collection of useful handlers for Go’s net/http package

并发

命令行

参数解析

  • 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 – 终端文本阅读器,可替代 lessmoretail -f 等
  • trdsql – 可对 CSV/LTSV/JSON/TBLN 等文件执行 SQL 查询和导出
  • vhs – 终端录像工具,提供了在终端中录制和回放终端会话的功能,类似于将终端会话记录为视频的方式

路由

网络

  • 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

即时通信

  • Centrifugo – 实时消息服务器,可以与任何语言编写的应用程序后端结合使用
  • goim – 支持集群的 im 及实时推送服务
  • Tinode – 即时消息服务器,通过 websocket/JSON 或 gRPC/TCP 等协议传输
  • WebRTC – WebRTC 实现
  • Berty – 安全的点对点通讯软件
  • Keybase – 即时通讯工具 Keybase 全平台客户端
  • gotify – 基于 WebSocket 的 PUSH 通知服务
  • nakama – 用于社交/实时游戏/实时应用的分布式服务端程序,自带面板、用户、聊天、存储、社交等功能
  • OpenIM

网关

序列化

  • 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

邮件

消息队列

  • NSQ – 实时分布式消息平台
  • NATS – 云原生消息中间件
  • amqp – AMQP 0.9.1 客户端
  • sarama – Kafka 客户端

文件/存储

  • 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 – 备份工具,使用现代的加密方法对数据进行安全的备份,支持

模板引擎

代码生成

文本处理

Markdown

HTML/CSS

其他

文档

数学计算

  • decimal – 解决浮点数计算精度问题
  • fixed
  • apd – decimal 包
  • mathfmt – 将 LaTeX 语法的注释转换为数学公式格式
  • q – 量子计算模拟器
  • accounting – 货币格式化

日期时间

  • now
  • when – 自然日期时间解析
  • Carbon – Carbon 时间处理库的 Go 语言实现
  • strftime – 时间格式化
  • dateparse – 解析任意未知格式的时间字符串

配置

爬虫

  • Crawlab – 基于Golang的分布式爬虫管理平台,支持Python、NodeJS、Go、Java、PHP等多种编程语言以及多种爬虫框架
  • Colly – 网络爬虫框架
  • Pholcus – 支持分布式的高并发、重量级爬虫软件
  • go_spider
  • Muffet – 网站链接检查器
  • Creeper
  • Geziyor – 支持 JS 渲染的快速爬虫框架
  • Apollo – 一个爬虫工具
  • ferret – 声明式 Web 数据抓取
  • gocrawl
  • Antch
  • katana – 爬虫&蜘蛛框架

数据库

SQL解析

分布式事务

  • go-saga – Saga 分布式事务实现
  • DTM – 跨语言的分布式事务管理服务,支持TCC、Saga、XA等

数据库相关

  • 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
  • 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

数据库客户端

数据库引擎

  • 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

缓存

搜索推荐

表单

Auth

加密/解密

  • 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 – 发票生成工具,可通过参数和配置文件进行创建和管理各种类型的发票

图片识别

图表

构建编译

  • 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

优雅升级

代码分析

  • 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

测试

错误处理

  • 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 存储库中查找敏感信息和密钥的开源工具

系统信息

UUID

日志

监控告警

  • 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 开源的监控系统

统计分析

  • Fathom – Web 站点统计
  • Veneur – 分布式实时数据处理管道
  • gonum – 科学计算相关

容器技术

  • moby – Docker
  • docker-ce
  • Rancher – 全栈化企业级容器管理平台
  • Gorsair
  • docui – TUI Client for Docker
  • Podman – 管理和运行任何符合 OCI 规范的容器和容器镜像
  • Skopeo – 镜像管理工具
  • Buildah – 构建 OCI 容器镜像的工具
  • go-docker – 用 Go 实现 Docker 核心功能
  • Packer – 轻量级的镜像定义工具
  • cosign – 容器签名和验证
  • SlimToolkit – 检查、缩小和调试容器

集群管理

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 – 有限状态机

数据结构

依赖注入

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 显示

依赖管理

微服务

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

持续集成/部署

  • 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 扩展

限流器

编译器

  • 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

自定义解释器

  • 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 代码生成

编辑器

运行器

  • gore – 在线运行 Go 代码
  • nodebook – 在线运行多种语言
  • go-pry – 像 Python、R、PHP 等在终端交互式输入与运行 Go 代码

查询语言

  • 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 签名和公证

桌面应用

移动端

协程/线程

  • 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 – 分布式任务系统

流处理

微信

  • weapp – 微信小程序 SDK
  • wechat – WeChat SDK for Go
  • wechat-go – 微信 Web 版 API 的 Go 实现

SDK

  • gopay – QQ、微信(WeChat)、支付宝(AliPay)的Go版本SDK
  • alipay – 支付宝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

工具

资源站点

参考https://github.com/shockerli/go-awesome?tab=readme-ov-file

正文完
 
评论(没有评论)