博客 / 詳情

返回

Go 語言優秀資源整理,為項目落地加速🏃

一直在更新,部分內容在SF被屏蔽,故不再此繼續維護,請以GitHub為準

Go 資料

Go 語言優秀資源整理,為項目落地加速🏃

在 GitHub 上穩定更新,覺得不錯請點個 Star ❤️

如轉載分享,請保留出處,謝謝 😆

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

GitHub: https://github.com/shockerli/...


官網: https://golang.org

國內官網鏡像(訪問快~): https://golang.google.cn

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

開發者平台: https://go.dev

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

官方博客: 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

大牛

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
  • lestrrat-go
  • HashiCorp
  • juju
  • tidwall

文檔

  • 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
  • The Little Go Book (中文版)
  • Learning Go — from zero to hero
  • go-internals - 深入理解 Go
  • Learn Go with Tests
  • Go基礎教程
  • 7天用Go從零實現系列
  • Golang - 100天從新手到大師 - 某培訓機構的部分教程內容
  • algo - 107+ 編碼面試問題,包括詳細的解決方案,測試用例和程序分析
  • over-golang - Go 學習筆記
  • over-algorithm - Go 算法筆記
  • learngo - 1000+ Go 示例、練習和測試
  • go-leetcode - LeetCode 實現
  • 玩轉 GO - 《Mastering GO》中文譯本
  • leetcode-cookbook - LeetCode in Go

指南

  • 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 Training - 大量優質 Go 相關文章、視頻等資料
  • Go語言愛好者週刊
  • Go 夜讀 - Go 標準包、開源項目源代碼閲讀講解
  • Go-Questions - Go 語言學習入門和進階知識
  • Go的50度灰:Golang新開發者要注意的陷阱和常見錯誤
  • Go 程序的性能優化及 pprof 的使用
  • gops - Go語言程序查看和診斷工具
  • Go源碼分析——http.ListenAndServe()是如何工作的
  • GoConvey 框架使用指南
  • GoStub 框架使用指南
  • GoMock 框架使用指南
  • Monkey 框架使用指南

付費教程

  • 基於 Go 語言構建企業級的 RESTful API 服務 - 掘金小冊
  • Go語言核心36講 - 極客時間

成品項目

  • studygolang - Go 語言中文網
  • mkcert - 生成本地 HTTPS 加密證書的工具
  • Rainbond - 基於Docker、Kubernetes等容器技術的開源PaaS
  • NYADB2 - Go 實現的關係型數據庫, 值得用於學習
  • EiBlog - 國產 博客
  • pan-light - 不限速的百度網盤客户端, 基於 Go + Qt5 開發
  • BaiduPCS-Go - 百度網盤客户端
  • daily-warm - 每天定時發郵件給你關心的人
  • pipe - 博客平台
  • mdr - 命令行下的 Markdown 閲讀工具
  • miniflux - Feed 閲讀器
  • 鏈滴筆記 - 桌面端筆記應用
  • wayback - 網頁快照備份

靜態網站生成器

  • Hugo
  • jrnl
  • plenti
  • verless

學習項目

  • 1m-go-websockets - 該項目演示瞭如何用 Go 編寫一個可以提供超過一百萬個 websockets 連接、運行內存小於 1GB 的服務器
  • Go by Example - 通過實例學習 Go

開源類庫

Web 框架

  • 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
  • Buffalo - 快速生成 Web 項目的開發工具
  • go-web-framework-benchmark
  • fiber - 一種 Express 風格的、基於 fasthttp 的 HTTP Web 框架
  • aah
  • go-zero - 好未來開源的 Web 框架

業務框架

  • GoAdminGroup/go-admin - 後台管理快速開發框架,與 laravel-admin 類似
  • wenjianzhang/go-admin - 基於 Gin + Vue 實現的後台框架
  • gin-vue-admin - 基於 Gin + Vue 實現的後台框架
  • goxygen - 基於 Go, React, MongoDB 技術實現的全棧應用生成器
  • nging - Go語言通用後台管理框架
  • snake - 業務API框架

項目骨架

  • Standard Go Project Layout - Go 項目目錄結構示例
  • go-starter - Adobe 的 Go 工程模板
  • go-clean-arch
  • go-rest-api - Go RESTful API Starter Kit

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 - 命令行構建包
  • progressbar - 在終端上輸出進度條
  • cheggaaa/pb - 終端進度條
  • mpb - 支持多個進度條
  • 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 - 命令行交互式輸入
  • peco - 交互式過濾工具
  • termenv - 終端應用程序的高級 ANSI 樣式和顏色支持
  • asciigraph - 在終端中繪製 ASCII 字符的圖表
  • spinner - 涵蓋70多種符號或進度條的控制器
  • tablewriter - 終端中輸出表格內容
  • clop - 命令行解析包
  • go-flags - 命令行參數解析
  • termdash - 基於 Go Terminal 的儀表板系統
  • kong - 命令行解析
  • bubbletea - TUI 框架
  • pty - PTY for Go
  • vtclean - 從終端輸出字符串中解析出純文本

終端工具

  • vgrep - 支持滾動分頁的 grep
  • GoTTY - 基於Web的命令行實時共享

路由

  • HttpRouter
  • mux - URL 路由和調度器
  • gocraft/web
  • go-querystring - 轉換結構體為URL請求參數
  • CleverGo

網絡

  • DNS - DNS 庫
  • CoreDNS - DNS 服務器
  • RoadRunner - PHP 應用服務器、進程管理器、負載均衡,用於替代 Nginx + FPM
  • GoReplay - 流量收集&回放
  • Sharingan - 滴滴開源的流量錄製回放工具
  • Glorp - HTTP 攔截&重放的 CLI 工具
  • httpteleport - Teleports 10Gbps http traffic over 1Gbps networks
  • FIND3 - WiFi 設備發現
  • SubFinder - 子域名發現工具
  • ggz - 短網址服務
  • httpstat
  • grab - 文件下載
  • go-netty - 網絡框架
  • gnet - 事件驅動 Go 網絡框架
  • httplab - The interactive web server
  • yamux - Multiplexer
  • sftp - SFTP support for the go.crypto/ssh package
  • evio - 事件驅動網絡框架(reactor 模式)
  • gaio - 事件驅動網絡框架(proactor 模式)
  • httpretty - 在終端上漂亮地打印出 HTTP 請求
  • blocky - 作為局域網 DNS 代理攔截廣告
  • lossy - 模擬 net.PacketConn 和 net.Conn 接口的帶寬,延遲和數據包丟失
  • go-libp2p - P2P
  • go-ipfs-api - IPFS
  • go-multiaddr - multiaddr

HTTP壓測

  • Vegeta - HTTP 負載壓測工具
  • hey - Web 壓測工具
  • bombardier - Web 壓測工具
  • go-wrk

HTTP

  • fasthttp - 比 net/http 快 10 倍的 HTTP 工具包
  • Resty - HTTP & REST 客户端包
  • gout - HTTP 客户端
  • gentleman - HTTP 客户端
  • goz
  • UserAgent - 解析 HTTP User Agent
  • purell - URL 規範工具包

WebSocket

  • gorilla/websocket
  • nhooyr/websocket - 官方推薦的包
  • websocketd - Go 開發的一鍵搭建 WebSocket 服務器命令行工具
  • ws - WebSocket 開發包
  • melody - WebSocket 服務框架
  • neffos - 一個快速且可擴展的 WebSocket 框架

即時通信

  • Centrifugo - 實時消息服務器,可以與任何語言編寫的應用程序後端結合使用
  • goim - 支持集羣的 im 及實時推送服務
  • Tinode - 即時消息服務器,通過 websocket/JSON 或 gRPC/TCP 等協議傳輸
  • WebRTC - WebRTC 實現

網關

  • GoKu API Gateway CE - eoLinker 開源的 API 網關

序列化/解壓縮

  • vmihailenco/msgpack - 支持 msgpack
  • go/codec - 支持 msgpack/binc/cbor/json
  • golang/protobuf - Go 版本的 Protocol Buffers
  • gogo/protobuf - golang/protobuf 的擴展替代品
  • Objx - 操作 map, slice, JSON 等數據的包
  • snappy - Go 語言版本的 Snappy

RPC

  • gRPC-Go - gRPC 官方包
  • gorpc
  • gorilla/rpc - 構建基於 HTTP 的 RPC 服務,比如 JSON-RPC
  • Lile - gRPC 服務構建包
  • rpcx
  • Twirp - 基於 Protobuf 的 RPC 框架,與 gRPC 類似
  • lile - gRPC 服務生成工具
  • dubbo-go

郵件

  • gomail - 郵件發送包
  • scorredoira/email
  • Hermes - Go 版本的 mailgen 引擎,根據配置生成 HTML 格式的郵件

消息

  • NSQ - 實時分佈式消息平台
  • NATS - 雲原生消息中間件

文件

  • MinIO - 對象存儲服務器
  • Syncthing - 文件同步
  • fsnotify - 文件系統監控工具
  • reflex - 監聽文件變更並執行命令
  • gohttpserver - HTTP 靜態文件服務器
  • XLSX - Excel 讀寫包
  • Excelize - 360 開源的 Excel 工具包
  • gopdf - PDF 生成
  • rsc/pdf - PDF reader
  • SeaweedFS - 分佈式文件系統
  • go-fastdfs - 分佈式文件存儲服務
  • Dragonfly - 基於 P2P 的分佈式文件系統
  • filetype - 檢測文件類型
  • cae - 實現 ZIP/TAR.GZ 解壓縮
  • archiver - 多格式支持的解壓縮包
  • compress - Optimized compression packages
  • Afero - 文件操作包
  • fsync - 文件/目錄同步
  • filebrowser - Web File Browser
  • Bigfile - 文件傳輸管理系統
  • statik - 靜態文件服務
  • filetype - 文件類型與 MIME 檢測

模板引擎

  • goTemplateBenchmark - 給各 Go 模板引擎做性能測試,當然也就包含了最全的模板引擎包
  • Jet - 速度很快
  • amber - HTML 模板引擎
  • fasttemplate - Simple and fast template engine for Go
  • quicktemplate
  • mustache
  • Ace
  • Sprig
  • pongo2 - Django 語法風格的模板引擎

代碼生成

  • esc

文本處理

Markdown
  • Blackfriday - Markdown 解析器
  • Lute - 結構化的 Markdown 引擎
  • goldmark - Markdown 解析器
  • docx2md - 轉換 Word 為 Markdown
  • glamour - 命令行下渲染 Markdown
  • go-md2man - 轉換 Markdown 為 man 手冊內容
HTML
  • DOM - HTML DOM 節點操作
  • obelisk - 保存 Web 網頁為 HTML 單頁面
  • html2text - HTML 轉 text
  • go-readability - 讓 HTML 可讀性更高
其他
  • 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)
  • Inflection - Pluralizes and singularizes English nouns
  • autocorrect - 自動給中英文之間加入合理的空格並糾正專用名詞大小寫
  • bleve - modern text indexing
  • etree - XML 解析&生成
  • feeds - RSS 內容生成
  • gofeed - RSS & Atom feeds 內容解析
  • sitemap - sitemap.xml 生成
  • gogrep - 通過語法樹搜索 Go 源碼
  • PipeIt - 文本轉換,清理和提取工具
  • regexp2 - 全功能正則表達式引擎。如果標準庫的 regexp 滿足不了你,可以嘗試使用 regexp2
  • html2article - 基於文本密度的 html2article 實現
  • hostctl - hosts 命令行管理工具
  • go-shellwords - 解析命令行中字段
  • woke - 檢查文本文件中是否存在歧視詞彙
  • go-password-validator - 密碼強度校驗器
  • xurls - 從文本中提取 URL

文檔

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

數學計算

  • decimal - 解決浮點數計算精度問題
  • fixed
  • apd - decimal 包
  • mathfmt - 將 LaTeX 語法的註釋轉換為數學公式格式

日期時間

  • now
  • when - 自然日期時間解析
  • Carbon - Carbon 時間處理庫的 Go 語言實現
  • strftime - 時間格式化

配置

  • 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
  • goquery
  • Muffet - 網站鏈接檢查器
  • Creeper

數據庫

數據庫相關
  • usql - 幾乎支持全部 SQL 與 NoSQL 數據庫的命令行工具
  • GORM - GORM V2

    • GORM V1
    • gorm2sql - 根據 Model Struct 生成建表語句
  • Xorm
  • XormPlus - Xorm 的定製增強版本
  • GoRose
  • sqlx - database/sql 擴展包
  • dbq - 數據庫操作
  • gendry - 滴滴開源的SQL Builder
  • Squirrel - SQL Builder
  • qb - the database toolkit for go
  • redigo - Redis 客户端
  • go-redis
  • mgo

    • globalsign/mgo - The MongoDB driver for Go
    • mgo使用指南
  • amqp - Go client for AMQP 0.9.1
  • kingshard - MySQL Proxy
  • SOAR - 對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 - 數據庫遷移工具
  • ent - An Entity Framework For Go
  • pingcap/parser - 兼容 MySQL 的 SQL 解析
  • xsqlparser - SQL 解析
  • sqlparser - SQL 解析
  • godb - a Go query builder and struct mapper
  • go-nulltype
  • go-mysql - MySQL 工具集
  • SQLittle - 純讀取 SQLite 文件
  • Bifrost - MySQL 同步到 Redis、ClickHouse 等服務的異構中間件
  • elasticsql - 轉換 SQL 成 Elasticsearch DSL
數據庫驅動
  • Go-MySQL-Driver - MySQL 驅動
  • go-mssqldb - MSSQL 驅動
  • pq - PostgreSQL 驅動
  • mongo-go-driver - MongoDB 官方出品的 Go 語言驅動
  • clickhouse-go - ClickHouse 官方 Go 語言客户端
  • go-sqlite3 - SQLite3 驅動
數據庫引擎
  • etcd - KV 分佈式存儲
  • InfluxDB - 時間序列數據庫
  • Prometheus - 服務監控系統 & 時間序列數據庫
  • Thanos - 支持 Prometheus 簡化部署、高可用、分佈式存儲
  • CockroachDB - SQL database
  • Cayley - 圖數據庫
  • RadonDB - 基於 MySQL 研發的新一代分佈式關係型數據庫
  • TiDB - 分佈式關係型數據庫,兼容 MySQL 協議
  • AresDB - Uber 開源的 GPU 驅動的實時分析存儲&查詢引擎
  • leveldb - LevelDB 的 Go 實現
  • Dgraph - 分佈式圖數據庫
  • rqlite - 基於 SQLite 的輕量級分佈式關係數據庫
  • gaeadb
  • BadgerDB - KV 數據庫
  • LBADD - 用 Go 實現的分佈式 SQL 數據庫
  • go-memdb - 建立在不可變 Radix 樹上的內存數據庫
  • VectorSQL - 應用於 IoT 和大數據的 DBMS 數據庫,類似於 ClickHouse
  • BuntDB - 基於內存的KV數據庫,支持磁盤持久化、ACID事務
  • TinySQL - 迷你分佈式關係型數據庫
  • groupcache - 分佈式緩存
  • Tile38 - GEO 數據庫
  • Redcon - 兼容 Redis 協議的自定義 Redis 服務,採用 BuntDB 和 Tile38 實現存儲
  • genji - 文檔內嵌型數據庫

搜索

  • wukong - 全文搜索引擎
  • go-elasticsearch - 官方 ES 客户端
  • elastic - Elasticsearch 客户端
  • go-mysql-elasticsearch - Sync MySQL data into elasticsearch
  • gse - Go 語言分詞
  • sego - Go 中文分詞
  • gojieba - "結巴"中文分詞的 Go 語言版本
  • Riot - 全文搜索引擎
  • simplefts - 超簡單的全文搜索引擎實現

表單

  • 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
  • jwt - JWT 輕量級實現
  • sessions - 後端 SESSION 服務
  • securecookie - cookie 加密/解密
  • Goth - Multi-Provider Authentication for Go
  • branca - 號稱比 JWT 更安全的 token 解決方案

緩存

  • GCache
  • bbolt - key/value store
  • BigCache
  • go-cache - KV 內存緩存
  • gomemcache - Memcache 客户端
  • cache2go

視頻

  • goav - FFmpeg 視頻處理
  • lal - 直播流媒體網絡傳輸服務器
  • bililive-go - 直播錄製工具
  • screego - 通過瀏覽器共享開發者屏幕

圖形處理

  • barcode - 條形碼/二維碼生成器
  • picfit - 圖片操作、裁剪、管理服務器
  • gmfs - 圖片操作、裁剪、管理服務器
  • besticon - favicon 服務
  • Caire - 圖片操作庫
  • Imaging - 圖片操作庫
  • gocaptcha - 驗證碼生成
  • go-is-svg - 校驗是否為 SVG 圖片
  • identicon - 根據用户的 IP 、郵箱名等任意數據為用户產生漂亮的隨機頭像
  • prominentcolor - 識別圖片的主要顏色
  • dchest/captcha - 生成和驗證圖片或音頻驗證碼
  • bimg - 圖片處理
  • imaginary - 圖片處理服務
  • primitive - 用原始幾何圖形繪製圖形
  • orly - 生成你自己的O'RLY動物書封面
圖片識別
  • go-face - 面部識別

圖表

  • go-echarts - Echarts 圖表庫
  • gonum/plot - 圖形繪製
  • pinhole - 3D 線框圖繪製
  • globe - 地球線框圖繪製
  • ink - Go 中的 2D 圖形框架
  • go-plantuml - 基於 Go 源碼生成 plantuml 圖
  • go-diagrams - 通過代碼生成圖表

構建編譯

  • Mage - a Make/rake-like build tool using Go
  • GoReleaser - Go 多平台二進制文件打包、並支持發佈到 Homebrew 的工具
  • goxc - 跨平台編譯工具(因 1.5 版本開始已自帶交叉編譯,故已不再維護)
  • Task - 類似於 Make 的構建工具
  • codegangsta/gin - 熱編譯工具
  • Air - 熱編譯工具
  • gowatch - 熱編譯工具
  • Fresh - 熱編譯工具
  • dh-make-golang - 自動構建 Debian 包
  • pkger - 將靜態文件打包成 Go 二進制文件
  • mewn - 靜態文件嵌入打包到二進制文件
  • gobinaries - 不用安裝Go就能編譯安裝Go編寫的程序
  • NFPM - deb、rpm、apk 等打包工具

優雅升級

  • tableflip - Web 服務升級
  • selfupdate - 二進制文件自動升級

代碼分析

  • 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 - 幫助二進制分析和開發的庫

調試

  • go-spew - 變量打印工具
  • Delve - Debug 工具
  • gdlv - Delve 界面版本
  • repr - 變量打印工具
  • pp - 彩色變量打印工具
  • ffmt - 變量打印工具
  • gops - 谷歌官方出品的 Go 程序監控調試工具
  • pprof
  • go-callvis - 可視化Go程序的調用圖
  • q - 自動打印變量類型並且格式化輸出
  • Litter
  • RDebug - 滴滴開源的一款用於 RD 研發、自測、調試的實用工具
  • debugcharts - Go 內存佔用可視化調試工具
  • gcvis - 實時可視化 gctrace
  • pkg/profile
  • statsviz - 在瀏覽器中實時查看 Go 應用程序運行時統計信息(GC,MemStats 等)

測試

  • GoConvey - 含Web界面的單元測試框架
  • GoMock - 谷歌出品的Mock測試框架
  • GoStub
  • Monkey
  • SuperMonkey - 讓私有方法可測
  • Ginkgo - BBD 測試框架
  • fperf - 壓測工具
  • gocheck
  • Testify
  • gotests - 根據源碼自動生成測試文件
  • TestSQL - 根據 SQL 創建語句生成測試數據
  • httpmock - HTTP Mock
  • Goblin - BDD 測試框架
  • bxcodec/faker - Struct Data Fake Generator
  • gofakeit - 隨機數據生成器
  • dmgk/faker
  • go-tprof - 包測試報告生成工具
  • go-fuzz - randomized testing for Go
  • gofight - Testing API Handler
  • sqlmock - 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 風格測試框架

錯誤處理

  • 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 - 支持堆棧、狀態碼的錯誤處理

安全

  • Kunpeng - 開源POC檢測框架
  • nmap - 安全審計工具 nmap 開發包
  • Hetty - 用於安全研究的 HTTP 工具包,具有 Web 接口和代理日誌查看器的攔截 HTTP 代理

系統信息

  • go-hardware - 收集了一堆關於硬件信息的包
  • cpuid - CPU 信息
  • gopsutil - ps 功能包
  • go-sysinfo - 系統信息
  • go-locale - 跨平台語言檢測庫

UUID

  • go.uuid - UUID 庫
  • SEQSVR - Go + MySQL 實現的分佈式 ID 生成服務
  • google/uuid - Google 開源的 uuid 包
  • gofrs/uuid
  • snowflake - Twitter snowflake IDs

日誌

  • logr - 日誌包標準接口
  • Logrus - 日誌記錄包
  • zerolog
  • zap - Uber 開發的日誌記錄包
  • Seelog
  • logkit - 七牛開源的日誌收集工具
  • gogstash - 類似於 Logstash 的日誌收集器
  • lumberjack - 日誌文件切割
  • file-rotatelogs - 日誌文件切割
  • go-syslog - 極速 Syslog 解析器

監控

  • OpenFalcon - 小米開源的監控系統
  • Prometheus - 服務監控系統 & 時間序列數據庫
  • Grafana - 分析監視平台, 支持 Graphite, Elasticsearch, OpenTSDB, Prometheus, InfluxDB 等數據源

    • grabana - 用 Go 代碼快速創建 grafana dashboards
  • TeaWeb - 一款集靜態資源、緩存、代理、統計、監控於一體的可視化智能WebServer
  • Jaeger - 分佈式追蹤系統
  • go-osstat - 系統指標統計
  • grafterm - Metrics dashboards on terminal
  • mymon - MySQL 運行監控

統計分析

  • Fathom - Web 站點統計
  • Signal - Web 站點統計
  • Veneur - 分佈式實時數據處理管道
  • gonum - 科學計算相關

容器技術

  • moby - Docker
  • docker-ce
  • Rancher - 全棧化企業級容器管理平台
  • Gorsair
  • docui - TUI Client for Docker
  • Podman - 管理和運行任何符合 OCI 規範的容器和容器鏡像
  • Skopeo - 鏡像管理工具
  • Buildah - 構建 OCI 容器鏡像的工具
  • go-docker - 用 Go 實現 Docker 核心功能

集羣管理

  • Nomad - 集羣管理器和調度器
  • kubernetes - 容器調度管理平台
  • OpenShift Origin - Red Hat 開發的容器化軟件解決方案

機器學習

  • goml - 機器學習庫
  • GoLearn - 一個 "開箱即用" 的機器學習庫
  • glow - 易用的分佈式計算系統
  • Gobot - 機器人和物理計算語言庫
  • Olivia - 神經網絡
  • Pico - 基於像素強度比較的物體檢測紙張的純 Go 臉部檢測庫

算法

  • GoDS - Go 實現了多種數據結構
  • Dragonboat - 多組 Raft 共識算法庫
  • eliben/raft - Raft 算法
  • hashicorp/raft - Raft 算法
  • golang-lru - LRU 算法實現
  • tinylru
  • finn - Fast Raft framework using the Redis protocol for Go
  • xorfilter
  • priyankchheda/algorithms - 各種算法的 Go 語言實現
  • meow - Meow hash
  • btree - B-Tree
  • basalt - 高性能的分佈式的專門空間優化的 Bitmap 服務, 杜絕 Bloomfilter 和 CuckooFilter 的誤判
  • go-blurhash - BlurHash,是模糊圖片的一種哈希算法
  • xxhash - xxHash 哈希算法實現

數據結構

  • 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
  • tinybtree - B-tree
  • dataframe-go - 用於數據統計和操作的包
  • go-set - 集合工具包

依賴注入

  • Wire
  • 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/gjsontidwall/sjson 的功能
  • hujson - 支持註釋的 JSON 解碼
  • pkg/json - JSON Decoder
  • ColorJSON - 終端中打印彩色 JSON

依賴管理

  • goproxy.io - GOPROXY 代理服務
  • goproxy.cn - 更適合國內用户的代理服務
  • Gopm - Go 包管理工具
  • govendor - Vendor 包管理工具
  • gom - 包版本管理工具
  • rvflash/goup - 檢查包版本是否有更新
  • owenthereal/goup - Go 多版本管理

微服務

  • Istio [中文文檔] - 大型微服務系統管理工具
  • goa
  • Micro - 微服務工具
  • Go kit - Go 微服務工具集
  • GoKit CLI - Go kit 腳手架
  • gogo
  • go-chassis
  • Go Micro - 微服務框架
  • Kite
  • Kratos - B站開源的微服務框架
  • Temporal - 微服務編排平台

Serverless

  • OpenFaaS - Serverless Functions Made Simple(功能服務化的 FaaS 框架)
  • fn - 事件驅動的 FaaS
  • riff - 基於 Kubernetes 的 FaaS
  • Nuclio - 實時事件與數據的 Serverless 框架
  • Flogo - 事件驅動的 Serverless 框架
  • Dapr
  • kubeless
  • Fission - 基於 Kubernetes 的 Serverless
  • pulumi
  • Knative
  • fx

持續集成/部署

  • CDS - 持續集成服務
  • gopub
  • CodePub
  • syncd - 代碼部署工具
  • Drone - 基於 Docker 的持續發佈平台
  • Cyclone - 持續集成&發佈平台
  • tbls - 用於記錄數據庫文檔的 CI 友好工具

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 命令增強版,支持文件和分支名稱自動完成、命令和標誌建議

限流器

  • Tollbooth - Simple middleware to rate-limit HTTP requests
  • ratelimit
  • RateLimit
  • go-rate
  • Circuit - 熔斷器
  • uber-go/ratelimit
  • Sentinel - 阿里巴巴開源的面向分佈式服務架構的流量控制組件 Go 語言版本
  • gohalt - 限流

編譯器

  • TinyGo - 一個適用於微控制器、WebAssembly 和命令行工具的 Go 編譯器
  • llir/llvm - LLVM 編譯器
  • jit-compiler - JIT 編譯器

解釋器

  • 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 - 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
  • golisp - Lisp 解釋器
  • dst - Go Decorated Syntax Tree
PHP
  • php-parser - PHP AST 語法解析
  • deuill/go-php - PHP bindings for Go
  • goridge - High-performance PHP-to-Golang IPC bridge
  • RoadRunner - 高性能PHP應用服務器,支持負載均衡及進程管理
自定義解釋器
  • 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 語言

代碼生成

  • jennifer - Go 代碼生成

編輯器

  • micro - 基於終端的編輯器
  • sourcegraph - 代碼搜索&導航

運行器

  • gore - 在線運行 Go 代碼
  • nodebook - 在線運行多種語言

查詢語言

  • graphql - Go 實現的 GraphQL
  • graphql-go
  • GQLEngine - 基於 graphql-go 實現
  • RQL - REST 資源查詢語言
  • Thunder - GraphQL 服務構建框架
  • gqlgen - 構建 GraphQL 服務器的包
  • super-graph - 無需編寫代碼即可在 Go 項目中構建複雜的 GraphQL API

遊戲相關

  • Nano - 遊戲開發框架
  • Leaf
  • einx
  • CloudRetro - 遊戲雲服務框架

桌面開發

  • Lorca - 用 Go 編寫 HTML5 桌面程序,依賴 Chrome 進行 UI 渲染,但卻不把 Chrome 打包到應用中
  • webview - 用 Go 構建跨平台的桌面軟件
  • 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 包

移動端

  • golang/mobile - Go support for Mobile devices

協程管理

  • ants - goroutine 池
  • tunny
  • go-workers - 安全地併發運行一組 worker,通過 channel 進行輸入輸出
  • Machine - 受 errgroup.Group 啓發的協程管理

任務/定時器

  • Grift - Go based task runner
  • cron - a cron library for go
  • goCron - A Golang Job Scheduling Package
  • jobrunner
  • CurlyQ - 後台任務處理庫
  • overtalk/task - 任務的管理&執行,支持自定義次數的重發
  • PPGo_Job - 定時任務管理系統
  • gocelery - Celery 的 Go 語言實現
  • Machinery - 通過分佈式消息實現異步任務調度
  • benthos - 普通任務的流處理器

微信

  • weapp - 微信小程序 SDK
  • wechat - WeChat SDK for Go
  • wechat-go - 微信 Web 版 API 的 Go 實現

區塊鏈

  • Hyperledger Fabric - 基於區塊鏈的超級賬本
  • go-ethereum - 以太坊協議的官方 Go 語言實現
  • bbgo - 用 Go 編寫的加密貨幣交易框架
  • btcd - 比特幣實現

開發輔助包

  • 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 - Go library for decoding generic map values into native Go structures
  • 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 - 靜態競爭檢測器

代碼生成

  • ChimeraCoder/gojson - 根據 JSON 生成結構體
  • db2struct - 根據表結構生成結構體
  • smallnest/gen - 根據表結構生成結構體
  • sqlc - 根據 SQL 語句生成 Go 代碼
  • xo - 根據表結構或查詢語句自動生成 Go 代碼

系統開發

  • LinuxKit - 為容器構建安全、便攜、可移植操作系統的工具包

未歸類

  • go-playground - 比官方更好用的 Go Playground
  • Robotgo - Golang 跨平台自動化系統,控制鍵盤鼠標位圖和讀取屏幕,窗口句柄以及全局事件監聽
  • go-homedir
  • i18n - i18n 多語言工具包
  • Paginater - 分頁工具
  • gls - Goroutine local storage
  • go-version - 版本號比較
  • go-semver - 語義版本
  • 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 類型
  • rose - 在 HTML 中嵌入和運行 Go 代碼
  • esbuild - JavaScript 構建打包工具
  • clipboard - 跨平台的粘貼板實現
  • Timeliner - 蒐集整理個人在社交網站上的數據並索引成時間線
  • hc - HomeKit 平台開發框架

logo

  • Gophers....

工具

  • syndbg/goenv - Go 版本管理
  • wfarr/goenv - Go 版本管理
  • GoLand - IDE 軟件
  • Visual Studio Code

資源站點

  • Go 101
  • Go 語言中文網
  • Golang 中國
  • go-zh
  • Golang sizeof tips - 輸入結構體定義,會顯示內存佈局
  • Golang Programs
  • Golang bot

感謝您的閲讀,覺得內容不錯,點個贊吧 😆

原文地址: https://shockerli.net/post/go-awesome/
user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.