嗯~世界上第二好的語言,這里有你可能想要的????在 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
指導原則
-
簡單性
復雜性把可讀的程序變得不可讀,復雜性終結了很多軟件項目。
-
可讀性
代碼是給人看的,代碼閱讀時長遠超編寫。程序必須可維護,那可讀是第一步。
-
生產率
擁有眾多的工具集和基礎庫,可以很簡單方便的完成絕大多數工作。
編譯速度足夠快,擁有動態語言的高效,但卻不會面臨動態語言不可靠的問題。
自帶編程規范,使得團隊代碼一致,也幫助開發者發現和避免潛在的錯誤。
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語言愛好者周刊
- 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 - 一個命令行的信息儀表盤,可以定制顯示內容
路由
- 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
郵件
- Gomail - 郵件發送包
- scorredoira/email
消息
文件
- 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
模板引擎
- 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
文檔
- swag - Swagger for Go
- gin-swagger - Swagger for Gin
- go-swagger - Swagger 2.0 implementation for go
數學計算
日期時間
配置
- GoDotEnv -
.env
配置文件解析 - yaml
- toml -
TOML
解析&編碼包 - INI -
INI
配置文件解析 - Viper - 支持
JSON
,TOML
,YAML
,HCL
,Java
等配置文件 - Multiconfig
- configor
- envconfig
- confd - 配置管理工具
爬蟲
- Crawlab - 基於Golang的分布式爬蟲管理平台,支持Python、NodeJS、Go、Java、PHP等多種編程語言以及多種爬蟲框架
- Colly - 網絡爬蟲框架
- Pholcus - 支持分布式的高並發、重量級爬蟲軟件
- go_spider
- goquery
- Muffet - 網站鏈接檢查器
- Creeper
數據庫相關
-
- 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 語言驅動
-
- 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
- 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
- gometalinter - 代碼質量檢查分析工具
- Task - 類似於
Make
的構建工具 - gin - 熱編譯工具,自動監測文件變化而重新編譯並重啟,方便開發調試 Web 應用
調試
- go-spew - 變量打印工具
- Delve - Debug 工具
- repr - 變量打印工具
- pp - 彩色變量打印工具
- gops - 谷歌官方出品的 Go 程序監控調試工具
- pprof
- go-callvis - 可視化Go程序的調用圖
- q - 自動打印變量類型並且格式化輸出
- Litter
- errcheck - 檢測未處理的錯誤(errors)
- Staticcheck - 一系列的 Go 代碼靜態分析工具
測試
- 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 - 包測試報告生成工具
錯誤處理
安全
- Kunpeng - 開源POC檢測框架
UUID
- go.uuid - UUID 庫
- SEQSVR - Go + MySQL 實現的分布式 ID 生成服務
- cpuid - CPU feature identification for Go
- 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 - 分布式追蹤系統
統計分析
容器技術
機器學習
- 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
依賴注入
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
持續集成/部署
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 語言解釋器
自定義解釋器
- 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
查詢語言
游戲相關
桌面開發
- 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 - 代碼檢查分析
工具
- goenv - Go 版本管理
- GoLand - IDE 軟件
IntelliJ系列軟件Go語言插件