Go 资源整理,这里有你想要的💊

嗯~世界上第二好的语言,这里有你可能想要的:pill:

GitHub
上稳定更新,觉得不错请点个 Star :heart:
如转载分享,请保留出处,谢谢 :laughing:

原文地址: https://shockerli.net/post/go-awesome

GitHub: https://github.com/shockerli/go-awesome

官网: https://golang.org

国内官网镜像(访问快~): https://golang.google.cn

GitHub: https://github.com/golang/go

Wiki: https://github.com/golang/go/wiki

指导原则

  • 简单性
    > 复杂性把可读的程序变得不可读,复杂性终结了很多软件项目。
  • 可读性
    > 代码是给人看的,代码阅读时长远超编写。程序必须可维护,那可读是第一步。
  • 生产率
    > 拥有众多的工具集和基础库,可以很简单方便的完成绝大多数工作。
    > 编译速度足够快,拥有动态语言的高效,但却不会面临动态语言不可靠的问题。
    > 自带编程规范,使得团队代码一致,也帮助开发者发现和避免潜在的错误。

Awesome

大牛

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

文档

指南

文章

付费教程

成品项目

  • 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

开源类库

框架

中间件

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

并发

命令行

  • 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
    – 一个命令行的信息仪表盘,可以定制显示内容

路由

网络


  • 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

网关

序列化

RPC

邮件

消息

  • Tinode
    – 即时消息服务器,通过 websocket/JSON 或 gRPC/TCP 等协议传输
  • NSQ
    – 分布式消息平台

文件

模板引擎

文本

  • 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

文档

数学计算

日期时间

  • now
  • when
    – 自然日期时间解析

配置

爬虫

  • 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

  • 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
    – 分布式图数据库

搜索

表单

  • 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

缓存

图片

  • barcode
    – 条形码/二维码生成器
  • picfit
    – 图片操作、裁剪、管理服务器
  • gmfs
    – 图片操作、裁剪、管理服务器
  • besticon
    – favicon 服务
  • Caire
    – 图片操作库
  • Imaging
    – 图片操作库
  • gocaptcha
    – 验证码生成
  • go-is-svg
    – 校验是否为 SVG 图片
  • identicon
    – 根据用户的 IP 、邮箱名等任意数据为用户产生漂亮的随机头像

图表

构建编译


  • 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 代码静态分析工具

测试

错误处理

安全

  • Kunpeng
    – 开源POC检测框架

UUID

日志&收集

监控

  • OpenFalcon
    – 小米开源的监控系统
  • Prometheus
    – 监控系统
  • Grafana
    – 分析监视平台, 支持 Graphite, Elasticsearch, OpenTSDB, Prometheus, InfluxDB 等数据源
  • TeaWeb
    – 一款集静态资源、缓存、代理、统计、监控于一体的可视化智能WebServer
  • Jaeger
    – 分布式追踪系统

统计分析

容器技术

机器学习

  • goml
    – 机器学习库
  • GoLearn
    – 一个 “开箱即用” 的机器学习库
  • glow
    – 易用的分布式计算系统
  • Gobot
    – 机器人和物理计算语言库
  • Olivia
    – 神经网络
  • Pico
    – 基于像素强度比较的物体检测纸张的纯 Go 脸部检测库

算法

数据结构

依赖注入

JSON

依赖管理

微服务

持续集成/部署

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 语言解释器

自定义解释器

查询语言

  • graphql
    – Go 实现的 GraphQL
  • RQL
    – REST 资源查询语言
  • Thunder
    – GraphQL 服务构建框架

游戏相关

桌面开发

  • 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
    – 代码检查分析

工具

资源站点