Go 语言优秀资源整理,为项目落地加速

最后更新于2019.11.22

Go 语言优秀资源整理,为项目落地加速

在 GitHub 上稳定更新,觉得不错请点个 Star ❤️

如转载分享,请保留出处,谢谢

原文地址: 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

开发者平台: https://go.dev

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 教程 - 腾讯云开发者手册

指南

  • Uber Go Style Guide
  • Go 编程语言规范
  • 实效 Go 编程
  • Go Code Review Comments
  • Go Code Convention

文章

  • 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 - 一个命令行的信息仪表盘,可以定制显示内容
  • go-prompt - 命令行交互式输入

路由

  • 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

  • gRPC-Go - gRPC 官方包
  • gorpc
  • gorilla/rpc - 构建基于 HTTP 的 RPC 服务,比如 JSON-RPC
  • Lile - gRPC 服务构建包
  • rpcx
  • Twirp

邮件

  • Gomail - 邮件发送包
  • scorredoira/email

消息

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

文件

  • 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
  • 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
  • Inflection - Pluralizes and singularizes English nouns

文档

  • swag - Swagger for Go
  • gin-swagger - Swagger for Gin
  • go-swagger - Swagger 2.0 implementation for go

数学计算

  • decimal - 解决浮点数计算精度问题
  • fixed

日期时间

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

配置

  • GoDotEnv - .env 配置文件解析
  • yaml
  • toml - TOML 解析&编码包
  • INI - INI 配置文件解析
  • Viper - 支持 JSON, TOML, YAML, HCL, Java 等配置文件
  • Multiconfig
  • configor
  • envconfig
  • confd - 配置管理工具
  • HCL - configuration language
  • env - 解析 ENV 环境变量到结构体中

爬虫

  • 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
  • BigCache
  • 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 - 跨平台编译工具(因 1.5 版本开始已自带交叉编译,故已不再维护)
  • Task - 类似于 Make 的构建工具
  • codegangsta/gin - 热编译工具,自动监测文件变化而重新编译并重启,方便开发调试 Web 应用

优雅升级

  • tableflip

代码分析

  • reviewdog - Code Review 机器人
  • revive - 代码检查分析
  • GolangCI-Lint - 代码质量检查分析工具
  • errcheck - 检测未处理的错误(errors)
  • Staticcheck - 一系列的 Go 代码静态分析工具
  • Golint - Google 官方出品的代码质量检测工具
  • GoReporter
  • go-critic
  • gocloc - 分语言代码行数统计

调试

  • go-spew - 变量打印工具
  • Delve - Debug 工具
  • repr - 变量打印工具
  • pp - 彩色变量打印工具
  • gops - 谷歌官方出品的 Go 程序监控调试工具
  • pprof
  • go-callvis - 可视化Go程序的调用图
  • q - 自动打印变量类型并且格式化输出
  • Litter

测试

  • 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 - 包测试报告生成工具

错误处理

  • errors
  • errorx

安全

  • Kunpeng - 开源POC检测框架

硬件

  • go-hardware - 收集了一堆关于硬件信息的包
  • cpuid - CPU 信息

UUID

  • go.uuid - UUID 库
  • SEQSVR - Go + MySQL 实现的分布式 ID 生成服务
  • 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 - 分布式追踪系统

统计分析

  • Fathom - Web 站点统计
  • Signal - Web 站点统计

容器技术

  • Rancher - 全栈化企业级容器管理平台
  • Gorsair
  • docui - TUI Client for Docker

机器学习

  • 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
  • Bigslice
  • golang-set - The missing set collection

依赖注入

  • Wire
  • dig
  • Fx

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

持续集成/部署

  • CDS - 持续集成服务
  • gopub
  • CodePub
  • syncd - 代码部署工具
  • Drone - 基于 Docker 的持续发布平台
  • Cyclone - 持续集成&发布平台

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 的工具

限流器

  • Tollbooth - Simple middleware to rate-limit HTTP requests
  • ratelimit
  • RateLimit
  • go-rate
  • Circuit - 熔断器
  • uber-go/ratelimit

解释器

  • 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 - 表达式计算
  • expression-parsing
  • goexp - Recursive descent expression parser in Go
  • goastch - Go AST 语法解析
  • tdop
  • swallow
  • Anko
  • Expr - 编译&执行字符串中的表达式
  • Tengo - 用 Go 编写的脚本语言
  • V - Go 编写的语言
  • kumarUjjawal/bison
  • Monkey

查询语言

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

游戏相关

  • Nano - 游戏开发框架
  • Leaf
  • einx

桌面开发

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

工具

  • goenv - Go 版本管理
  • GoLand - IDE 软件
  • IntelliJ系列软件Go语言插件

资源站点

  • Go 语言中文网
  • Golang 中国
  • go-zh
  • Golang sizeof tips - 输入结构体定义,会显示内存布局

 

你可能感兴趣的:(Go 语言优秀资源整理,为项目落地加速)