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

大牛

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 - 一個命令行的信息儀表盤,可以定製顯示內容
  • go-prompt - 命令行交互式輸入

路由

網絡

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

文檔

數學計算

日期時間

  • 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

緩存

圖片

  • 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 - 跨平臺編譯工具(因 1.5 版本開始已自帶交叉編譯,故已不再維護)
  • Task - 類似於 Make 的構建工具
  • codegangsta/gin - 熱編譯工具,自動監測文件變化而重新編譯並重啓,方便開發調試 Web 應用

優雅升級

代碼分析

調試

  • go-spew - 變量打印工具
  • Delve - Debug 工具
  • repr - 變量打印工具
  • pp - 彩色變量打印工具
  • gops - 谷歌官方出品的 Go 程序監控調試工具
  • pprof
  • go-callvis - 可視化Go程序的調用圖
  • q - 自動打印變量類型並且格式化輸出
  • Litter

測試

錯誤處理

安全

硬件

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 語言解釋器
  • properties - Java properties scanner for Go
  • gobasic - A BASIC interpreter written in golang

自定義解釋器

查詢語言

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

工具

資源站點


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

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章