我想很多程序員應該記得 GitHub 上有一個 Awesome - XXX 系列的資源整理。本列表翻譯自awesome-Go Awesome 系列雖然挺全,但基本只對收錄的資源做了極為簡要的介紹,如果有更詳細的中文介紹,對相應開發者的幫助會更大。這也是我們發起這個開源項目的初衷。
歡迎大家為列表貢獻高質量的新資源,提交 PR 時請參照以下要求:
- 請確保推薦的資源自己使用過
- 提交 PR 時請註明推薦理由
資源列表管理收到 PR 請求後,會定期(每週)在微博轉發本週提交的 PR 列表,並在微博上面聽取使用過這些資源的意見。確認通過後,會加入資源大全。
感謝您的貢獻!
本項目的參與者 維護者:tangyouhua
貢獻者:艾凌風
註:名單不分排名,不定期補充更新
煩請諸位參與前看一眼參與指南 。感謝各位貢獻者,你們是最棒的! contributors
##資源列表
用於操作音頻的庫
- flac - 原生 Go FLAC 解碼器
- flac - 原生 Go FLAC 解碼器
- gaad - 原生 Go AAC 比特流解析器
- Go-sox - libsox 的 Go 語言接口
- Go_mediainfo - libmediainfo 的 Go 語言接口
- Gosamplerate - libsamplerate 的 Go 語言接口
- id3v2 - 快速且穩定的 ID3 解析及寫入庫
- mix - 基於序列的 Go 語言混音器,可用於音樂 app。
- mp3 - 原生 Go MP3 解碼器
- music-theory - Go 語言編寫的音樂理論模型
- PortAudio - 音頻 I/O 庫的 Go 語言接口
- portmidi - PortMidi 的 Go 語言接口
- taglib - taglib 的 Go 語言接口
- vorbis - "原生" Go Vorbis 解碼器 (使用 CGo, 但是沒有其他依賴).
- waveform - 一個可以通過音頻流生成波形圖象的包
用來生成認證授權模板的庫
- authboss - 用於 web 開發的組件化認證授權系統。它嘗試儘可能的移除模板代碼以及硬編碼,這使你每次新建 web 項目的時候,可以做到即插即用、配置並開始開發你的 web 英語,而不必每次都重新創建一個認證授權系統。
- casbin - 一個支持接入控制模型(例如:ACL,RBAC,ABAC)的授權庫
- Go-AWS-Auth - AWS 請求籤名庫
- Go-jose - Fairly complete implementation of the JOSE working group's JSON Web Token, JSON Web 簽名以及JSON Web 加密 specs.
- Go-oauth2-server - 使用 Go 語言編寫的獨立、符合標準的 OAuth2 服務器
- Go.auth - 為 Go 語言 web 應用提供的授權 API.
- Gologin - 可以串連使用OAuth1 和 OAuth2 認證服務
- Gorbac - 一個用 Go 語言實現的輕量級RBAC
- Goth - 提供了一種簡潔的、慣用的方式來使用OAuth 和 OAuth2.
- httpauth - HTTP 認證中間件
- jwt - 簡單易用的一個JSON Web Tokens (JWT)的實現
- jwt-auth - JWT 為 Go 語言 HTTP 服務器編寫的 jwt 中間件,有多種配置選項
- jwt-Go - Go 語言實現的JSON Web Tokens (JWT).
- loginsrv - JWT 登錄微服務,可以繼承OAuth2 (Github), htpasswd, osiam等後端。
- oauth2 - Goauth2的繼承者。 通用 OAuth 2.0 庫,整合了對JWT, Google APIs, Compute Engine 和 App Engine的支持.
- osin - Go 語言 OAuth2 服務器庫
- permissions2 - 用於追蹤用戶,登錄狀態和許可的庫。使用安全 cookies 和 bcrypt.
- session - Go 語言會話管理(支持 Google App Engine - GAE)
- sessions - 為 Go 語言 HTTP 服務器開發的非常簡單的、高性能的、高可定製的會話服務
- traefik - 反向代理和負載均衡庫,支持多種後端
- yubiGo - Yubikey 客戶端,提供了用於在 Go 語言應用中整合Yubico Yubikey 的 API
用於構建標準或基礎命令行應用的庫
- argv - 用於分隔命令行字元串並將其作為參數的 Go 語言庫,使用 bash 的語法
- cli - 功能強大,使用簡單的命令行軟件包,基於Golang tag
- cli-init - 提供一種簡單、易上手的方式 來使用 Go 語言編寫命令行程序
- climax - 一個更為人性化的命令行工具,繼承了 Go command 的精神
- cobra - 用於現代 Go 語言命令行交互的工具
- complete - 使用 Go 語言編寫的 bash 命令補全工具以及 Go 命令補全工具
- docopt.Go - 能令你會心一笑的命令行參數解析器
- drive - 命令行的 Google Drive 客戶端
- flag - 簡單、強大的命令行選項解析庫,支持 Go 語言子命令
- Go-arg - 使用 Go 語言編寫的基於結構的命令行參數解析庫
- Go-flags - Go 語言命令行選項解析器
- kingpin - 命令行及標記解析器,支持子命令
- liner - 命令行文本編輯器
- mitchellh/cli - 用於實現命令行交互的 Go 語言庫
- mow.cli - 用於構建命令行程序的庫,支持更加精準的標記及選項解析和驗證
- pflag - Go flag 軟件包的替代品, 實現了POSIX/GNU-風格的 --flags.
- readline - 純 Go 語言實現的 GNU-Readline 支持其大部分功能,基於MIT 協議發佈。
- sflags - 基於結構的 flag 生成器,支持flag, urfave/cli, pflag, cobra, kingpin等其他庫
- ukautz/clif - 一個小型命令行程序開發框架
- urfave/cli - 簡單、快速、有趣的、用於構建 Go 語言命令行程序的軟件包(formerly codegangsta/cli).
- wlog - 簡單的登錄接口,支持跨平台顏色和並發
- wmenu - 為命令行程序提供簡單的菜單結構選項,供用戶進行選擇
用於構建命令行程序以及控制台界面的庫
- aurora - ANSI 終端顏色,支持 fmt.Printf/Sprintf
- chalk - 符合直覺的用於美化命令行輸出的庫
- color - 多功能的用於彩色化命令行輸出的庫
- colourize - 用於實現 ANSI 彩色文本的 Go 語言庫
- Go-ataman - 用於渲染 ANSI 彩色文本模板的庫
- Go-colorable - Windows 上使用的可以輸出彩色文本的庫
- Go-colortext - 用於在終端進行多彩文字輸出的庫
- Go-isatty - Go 語言使用的 isatty
- Gocui - 一個用於構建控制台界面的極簡的 Go 語言庫
- Gommon/color - 多樣的命令行文本
- mpb - 為命令行提供多個進度條的工具
- termbox-Go - Termbox 是一個用於構建跨平台的、與文本的交互界面的庫
- termtables - Ruby 庫的 Go 語言接口
- terminal-tables 用於生成簡單的 ASCII 表格,同時支持 markdown 和 HTML 輸出
- termui - Go 終端控制面板,基於 termbox-Go 並受到了blessed-contrib的啟發
- uilive - 用於實時更新終端輸出的庫
- uiprogress - 一個很靈活的用於渲染進度條的庫
- uitable - 一個用於改善命令行中表格數據可讀性的庫
用於進行配置解析的庫
- config - JSON 或 YAML 配置的封裝,支持環境變數和標記解析
- configure - 可以通過多種途徑進行配置,包括 JSON, 標記位以及環境變數
- env - 解析環境變數為 Go 語言結構體
- envcfg - 解析環境變數為 Go 語言結構體
- envconf - 通過環境變數來配置
- envconfig - 通過環境變數讀取配置
- gcfg - 讀取類 INI 類型的配置文件為 Go 語言結構體,支持自定義變數和節
- GoConfig - 通過命令行的輸入、環境變數、配置文件來初始化一個結構體兵將一個結構體解析為輸入
- Godotenv - Ruby 庫 dotenv 的 Go 語言接口 (通過
.env
來獲取環境變數) - Gofigure - 讓 Go 語言應用程序配置變得簡單
- Gone/jconf - 模組化 JSON 配置工具。允許你將配置參數結構體和使用它的代碼放在一起,而不需要讓主配置文件瞭解所有子模組的細節來進行序列化
- hjson - 人性化的 JSON,一個便於程序員使用和閲讀的配置文件格式。更加輕鬆的語法,更少的錯誤和更多的註釋
- inGo - 將配置標記持久化到一個類似 ini 的文件中
- ini - 用於讀寫INI 文件的庫
- joshbetz/config - 消息配置庫,可以解析環境變數、JSON 文件並根據SIGHUP自動重新載入
- mini -用於解析類 ini 文件的庫
- store - 輕量級配置管理
- viper - 長牙的(這個庫名叫毒蛇)Go 語言配置工具
- xdg -遵守 XDG 標準 的配置工具
幫助你進行持續整合的庫
- drone - Drone 是一個基於 Docker的持續整合平台,使用 Go 語言編寫
- Goveralls - Coveralls.io 是一個持續代碼覆蓋率檢測系統,這個庫提供了 Go 語言的支持
- overalls - 針對多package 的 Go 語言項目,為 Goveralls 這樣的工具生成覆蓋率報告
- roveralls - 回歸覆蓋測試工具
用於對 CSS 文件預處理的工具
- c6 - 高性能、兼容 SAAS 的編譯器
- gcss - 純 Go 語言編寫的 CSS 預處理器
- Go-libsass - 100%兼容 Sass 的庫 libsass 的 Go 語言封裝
通用數據結構及算法
- binpacker - 二進制數據封包拆包工具,幫你構建自定義的二進制數據流
- bit - Go 語言集合數據結構。提供了額外的位操作功能
- bitset - 實現了 bitset 的 Go 語言包.
- bloom - Go 語言實現的布隆過濾器(bloom filter)
- bloom - Go 語言實現的布隆過濾器
- boomfilters - 概率統計數據結構,用於處理大量連續的數據。
- count-min-log - Go 語言實現的 Count-Min-Log sketch 算法(類似 Count-Min sketch 算法,但是使用的內存更少).
- cuckoofilter - Cuckoo 過濾器:一個用go語言實現的計數布隆過濾器的替代品
- encoding - 整型壓縮庫
- Go-adaptive-radix-tree - Go 語言實現的自適應基數樹
- Go-datastructures - 一組有用的、高性能的、線程安全的數據結構
- Go-geoindex - 基於內存存儲的地理索引
- Go-rquad - 區域四叉樹,支持有效點位置和領域發現
- Gods - Go 語言數據結構、容器、集合、列表、棧、鍵值對、 BidiMaps、樹、HashSet 等
- Golang-set - 線程安全和非線程安全的高性能集合
- Goskiplist - Go 語言實現的跳躍表
- Gota - 為go語言實現了數據幀,序列以及數據噪音的方法
- hilbert - 用於映射空間填充曲線(例如希爾伯特曲線和皮亞諾曲線)和數值的庫。
- hyperloglog - HyperLogLog implementation with Sparse, LogLog-Beta bias correction and TailCut space reduction.
- levenshtein - 編輯距離(levenshtein distance)和相似性度量, 可以自定義編輯代價和and Winkler-like bonus for common prefix.
- levenshtein - Go 語言實現計算編輯距離
- mafsa - Go 語言實現的 MA-FSA ,包含最小完美哈希
- merkletree - 實現了梅克爾樹,提供了一種高效、安全的數據結構內容驗證方法
- roaring - 實現了壓縮 bitsets 的Go語言庫
- skiplist - Go語言實現的跳躍表
- trie - Go語言實現的Trie樹
- ttlcache - In-memory LRU string-interface{} map with expiration for Golang
- willf/bloom - 實現了布隆過濾器的庫
- Go 語言實現的數據庫*
- BigCache - 為 gigabytes 量級數據設計的高效鍵/值緩存
- bolt - 底層鍵值數據庫
- buntdb - 快速,可嵌入的,內存鍵值數據庫,可定義索引及 spatial
- cache2Go - 基於內存存儲的鍵值緩存,支持自動基於超時的自動失效
- cockroach - 可擴展的、一致的事務型數據庫
- couchcache - RESTful 緩存微服務,基於Couchbase
- dgraph - 可擴展的、分佈式的、低延時、高吞吐的圖數據庫
- diskv - 具有 disk-backed 功能的持久化鍵值存儲
- eliasdb - 無依賴、事物型圖數據庫,支持 REST API、短語搜索以及類 SQL 的查詢語言
- forestdb - ForestDB 的 Go 語言藉口
- GCache - 支持緩存過期、 LFU、 LRU 和 ARC 的緩存庫
- geocache - 基於內存存儲的緩存,適用於分佈式部署的應用
- Go-cache - 內存鍵值存儲/緩存庫,適用於單機程序
- Goleveldb - 使用 Go 語言實現的 LevelDB
- groupcache - Groupcache 是一個緩存及緩存填充庫,在很多情況下用於替代 memcached.
- influxdb - 用於計量、事件及實時分析的、可擴展的數據庫
- ledisdb - Ledisdb 是一個高性能 NoSQL 數據庫,類似 Redi
- leviGo - LeviGo 是 LevelDB的 Go 語言封裝
- moss - Moss 是一個簡單的 LSM 鍵值存儲引擎,100% Go 語言實現
- piladb - 輕量級 RESTful 數據庫引擎,基於堆棧結構
- prometheus - 監控系統及時間序列數據庫
- rqlite - 基於 SQLite 的輕量級的、分佈式的關係型數據庫
- Scribble - 小巧的 JSON 文件存儲
- tempdb - 臨時數據的鍵值對存儲
- tidb - TiDB 是一個分佈式的 SQL 數據庫。受到了 Google F1的啟發
- tiedot - 基於 Go 語言的 NoSQL 數據庫
- Tile38 - 地理位置數據庫及實時地理圍欄
數據庫遷移
- darwin - 數據庫模式進化庫
- Go-fixtures - 類似 DjanGo fixtures,用於 Golang 的內建數據庫/sql 庫
- Goose - 數據庫遷移工具。你可以通過編寫增量 SQL 或 Go 語言腳本來管理你的數據庫
- Gormigrate - 數據庫模式遷移幫助工具,用於 Gorm ORM.
- migrate - 數據庫遷移。命令行及 Go 語言庫
- pravasan - 簡單的遷移,目前支持 MySQL 但是近期打算支持 Postgres, SQLite, MonGoDB 等等
- soda - 數據庫遷移、創建、 ORM等等,用於 MySQL, PostgreSQL, 以及 SQLite.
- sql-migrate - 數據庫遷移工具,允許利用 Go-bindata 將數據庫遷移嵌入應用程序
數據庫工具
- Go-mysql - 用於處理 MySQL 協議及複製的 Go 語言工具集.
- Go-mysql-elasticsearch - 將你的 MySQL 數據自動同步到 Elasticsearch
- kingshard - kingshard 是一個Go語言編寫的高性能 MySQL 數據庫代理
- myreplication - MySql 二進制 log 複製監聽器,支持基於語句和基於行的複製
- orchestrator - MySQL複製拓撲管理器及可視化工具
- pgweb - 基於 Web 的 PostgreSQL 數據庫瀏覽工具
- pREST - 通過任何 PostgreSQL 數據庫提供 RESTful API
- vitess - vitess 提供了能夠使大型 web 服務 MySQL 數據庫的擴展變得更加容易的服務器及工具
用於創建和使用SQL的庫
- dat - Go 語言 Postgres 數據庫工具集
- Dotsql - 一個Go語言庫,幫助你將 sql 文件保存在一個地方並且方便的取用
- Goqu - 地道的 SQL 語句創建器和查詢庫
- iGor - PostgreSQL 的抽象層,支持高級功能以及類 Gorm 的語法
- ozzo-dbx - 提供強大的數據恢復功能以及構建不區分數據庫類型的查詢的能力
- scaneo - 生成用於將數據庫行轉換為任意結構體的 Go 代碼
- sqrl - SQL 查詢創建器,是 Squirrel 的一個分叉版本,進行了性能方面的優化
- Squirrel - 一個幫助你構建 SQL 查詢的庫
- xo - 基於已知的數據庫表或自定義查詢生成地道的 Go 語言代碼,支持 PostgreSQL, MySQL, SQLite, Oracle, 以及 Microsoft SQL Server.
用於連接和操作數據庫的庫
- 關係型數據庫
- avatica - Apache Phoenix/Avatica SQL 驅動
- bgc - 數據庫連接工具包,用於通過 Go 語言訪問 BigQuery
- firebirdsql - Firebird RDBMS SQL 驅動
- Go-adodb - Microsoft ActiveX 對象數據庫驅動
- Go-bqstreamer - BigQuery fast and concurrent stream insert.
- Go-mssqldb - Go 語言Microsoft MSSQL 驅動
- Go-oci8 - Oracle 驅動
- Go-sql-driver/mysql - Go 語言 MySQ L驅動
- Go-sqlite3 - Go 語言的 SQLite3 驅動
- Gofreetds Microsoft MSSQL 驅動。 FreeTDS的go語言封裝
- pgx - PostgreSQL 驅動,支持比 database/sql 更多的特性
- pq - 純 Go 語言編寫的 Postgres 驅動
- NoSQL 數據庫
- aerospike-client-Go - Aerospike 客戶端
- aranGolite - AranGoDB 的輕量級 Go 語言驅動
- asc - 用於go語言連接 Aerospike
- cayley - 支持多種後端的圖數據庫
- dsc - 數據庫連接工具包,支持 SQL, NoSQL 及結構化文件
- dynaGo - DynaGo 是一個符合最小驚奇原則(principle of least surprise)的 DynamoDB 客戶端
- Go-couchbase - Go 語言 Couchbase 客戶的
- Go-couchdb - 另一個 CouchDB HTTP API 的 Go 語言封裝
- Gocb - 官方 Couchbase 的 Go 語言 SDK
- Gocql - Apache Cassandra 的 Go 語言驅動
- Gomemcache - memcache 客戶端庫
- Gorethink - RethinkDB 的 Go 語言驅動
- Goriak - Riak KV 的 Go 語言驅動
- mGo - MonGoDB 驅動,通過簡單的 API 實現了豐富的、經過測試的特性,這些 API 遵循 Go 語言的習慣
- neo4j - Neo4j Rest API 的 Go 語言接口
- Neo4j-Go - Go 語言實現的 Neo4j REST 客戶端
- neoism - Go 語言 Neo4j 客戶端
- rediGo - RediGo 是 Redis 數據庫的 Go 語言客戶端.
- redis - Redis 的 Go 語言客戶端
- redis - 簡單、強大的 Redis 客戶端
- redis - 兼容Redis協議的 TCP 服務器/服務.
- xredis - 類型安全的、可定製的、簡潔易用的 Redis 客戶端
- 搜索及分析數據庫
處理日期和時間的庫
- carbon - 簡單的時間擴展程序,有很多有用的方法,是 PHP Carbon 庫的接口
- durafmt - 持續時間格式化
- feiertage - 一組計算德國公共假期的函數,比如復活節、感恩節等
- Go-persian-calendar - 太陽曆
- Goweek - 處理星期的庫
- now - Now 是一個 Go 語言的時間工具集
- NullTime -時間可以是 NULL 的庫
- timeutil - 為 Go 語言時間包擴展了有用的功能,例如時間間隔和格式化
用於構建分佈式系統的庫
- celeriac - 利用 Go 語言對Celery 的 worker,任務,事件進行交互和監控的庫
- drmaa -集群調度工具的任務提交庫,基於標準 DRMAA
- flowgraph - MPI 風格的讀取,發送協同層
- gleam - 快速、可擴展的分佈式 map/reduce 系統,使用純 Go 語言和 Luajit 編寫,融合了 Go 語言的高並發能力和 Luajit 的高性能,可以獨立或分佈式部署運行。
- glow - 簡單易用、可擴展的大數據處理能力,Map-Reduce 以及執行 DAG(Database Availability Group),所有功能均由Go語言編寫.
- Go-jump - Google "Jump" 一致性哈希函數的藉口
- Go-kit - 為服務工具吧,支持服務發現、負載均衡 、可插拔傳輸以及請求追蹤等
- Gorpc - 簡單、快速、可擴展的 RPC 庫,針對高負載場景
- grpc-Go - Go 語言實現的 gRPC. HTTP/2 基於 RPC.
- hprose - 非常牛逼的 RPC 庫,當前支持 25+ 語言。
- jsonrpc - jsonrpc 包實現了 JSON-RPC 2.0.
- jsonrpc - JSON-RPC 2.0 HTTP 客戶端實現
- KrakenD - 帶有中間件的,高性能 API 網關框架
- micro - 微服務工具套件和分佈式系統平台
- NATS - 輕量級、高性能微服務系統,用於微服務、物聯網以及雲
- raft - Raft 一致性協議的 Go 語言實現, 作者是 HashiCorp.
- raft - Raft 一致性協議的 Go 語言實現, 作者是 CoreOS.
- ringpop-Go - 可擴展、容錯的應用層分片庫
- rpcx - rpcx是一個類似阿里巴巴 Dubbo 和微博 Motan 的分佈式的 RPC 服務框架
- sleuth - 在 HTTP 服務之間進行無主 p2p 自動發現和 RPC通信(使用 ZeroMQ).
- tendermint - 一個高性能的中間件,用於將任何語言編寫的狀態機轉換為一個拜占庭容錯狀態機,使用Tendermint 一致性及區塊鏈協議
- torrent - BitTorrent 客戶端
- dht - BitTorrent Kademlia DHT 的實現.
- Go-peerflix - 視頻流 torrent 客戶端
用於創建和發送電子郵件的庫
- douceur - HTML 郵件中的內聯 CSS
- email - 一個健壯的、靈活的 email 庫
- Go-dkim - DKIM 庫,用於對 email 進行簽名和驗證
- Go-imap - IMAP 庫,用於客戶端和服務器
- Go-message - 用於觸雷互聯網消息格式和郵件的庫
- Gomail - Gomail 是一個非常簡單且強大的庫,用於發送電子郵件
- Hectane - 輕量級 SMTP 客戶端,提供 HTTP API
- hermes - 一個用於生成乾淨、響應式 HTML e-mail 的包
- MailHog - Email 及 SMTP 測試工具,具有 web 及 API 接口
- SendGrid - SendGrid 的 Go 語言庫,用於發送電子郵件
- smtp - SMTP 服務器協議狀態機
在你的 Go 代碼中嵌入其他語言.
- aGora - 一種動態類型的可以嵌入 Go 中的編程語言
- anko - Go 語言編寫的解釋器
- binder - Lua 接口, 基於 Gopher-lua
- gisp - Simple LISP
- Go-duktape - Duktape JavaScript 引擎的 Go 語言接口
- Go-lua - Lua 5.2 虛擬機的純 Go 語言接口
- Go-php - PHP 的 Go 語言接口
- Go-python - CPython C-API 的 Go 語言接口
- Golua - Lua C API。的 Go 語言接口
- Gopher-lua - Go 語言編寫的 Lua 5.1 虛擬機和編譯器
- ngaro - 可嵌入的 Ngaro 虛擬機實現,支持在 Retro 中使用腳步
- otto - Go 編寫的 Javascrip 解釋器
- purl - 嵌入 Go 語言的 Perl 5.18.2
用於處理文件和文件系統的庫
- afero - 一個文件系統的抽象系統
- Go-csv-tag - 使用 tag 導入 csv
- Go-gtfs - 加載 gtfs 文件
- notify - 文件系統提示庫,具有簡單的 API ,類似 os/signal.
- skywalker - 允許你簡單方便的並發瀏覽文件系統
- tarfs - 為 tar 文件實現的
FileSystem
接口
會計及財務庫
- accounting - 金錢及貨幣格式
- decimal - 任意精度、固定點十進制數
- Go-finance - 使用 Go 語言來理解財務市場數據
- Go-money - Fowler 金錢模型的實現
- ofxGo - 查詢 OFX 服務器並解析其響應 (有一個示例的命令行客戶端)
- vat - VAT 驗證及歐洲增值稅率工具
操作表單的庫
- bind - 將表單數據綁定到任意的 Go 變數上
- binding - 將來自 net/HTTP 請求的表單、JSON 數據綁定到結構體
- conform - 檢查用戶輸入並基於結構標籤來清理數據
- form - 解碼 url 中的數據到 Go 語言變數中以及將 Go 語言變數編碼進 url 支持Dual Array 及 Full map
- formam - 將表單數據解碼到結構體
- forms - 框架無關的表單/JSON數據解析驗證庫,支持多部分表單及文件
- Gorilla/csrf - 為 Go 語言 web 應用提供 CSRF 防禦
- nosurf - CSRF 防禦中間件
超讚的遊戲開發庫
- Azul3D - Go 語言編寫的 3D 遊戲引擎
- Ebiten - Go 語言編寫的簡單的 2D 遊戲庫
- enGo - EnGo 是一個開源的 2D 遊戲引擎,遵循實體-組件-系統範式
- GarageEngine - 2d 遊戲引擎,利用 OpenGL 工作
- glop - Glop (Game Library Of Power) 是一個很簡單的跨平台遊戲庫
- Go-astar - Go 語言實現的 A* 尋路算法
- Go-collada - 操作 Collada 文件格式的 Go 語言庫
- Go-sdl2 - Simple DirectMedia Layer的 Go 語言接口
- Go3d - 專注性能的 2D/3D 數學庫
- Gonet - Go 語言實現的遊戲服務器框架
- Leaf - 輕量級遊戲服務器框架
- Pixel - 手工 2D 遊戲引擎庫
- raylib-Go - raylib的 Go 語言接口,簡單、易用的用於學習遊戲編程的庫
- termloop - 終端遊戲引擎,基於 Termbox
一些增強語言的功能的工具例如通過代碼生成支持泛型
- efaceconv - 代碼生成工具,用於高效的將 interface{} 轉換為不可變類型,不需要進行任何內存分配
- gen - 代碼生成工具,用於提供類似泛型的功能
- Go-linq - 類似 .NET LINQ 的查詢方法
- interfaces - 命令行工具,用於生成接口定義
- jennifer - 不適用模板生成任意 Go 語言代碼
- pkgreflect - 用於包作用域反射的 Go 語言預處理器
用於把 Go 語言編譯為其他語言的工具
- Gopherjs - 把 Go 編譯為 JavaScript.
- llGo - 基於 LLVM 的 Go 語言編譯器
- tardisGo - Golang 轉換為 Haxe 進而轉換為 CPP/CSharp/Java/JavaScript 的編譯器.
用於管理和處理Go 語言協程的工具
- Go-floc - 輕鬆編排 Go 語言協程
- Go-flow - 控制 Go 語言協程的執行順序
- Goworker - Goworker 是一個基於 Go 語言的後台worker
- grpool - 輕量級 Go 語言協程池
- pool - 有限消費者協程或無限協程池,用於簡單的處理協程和取消協程
- semaphore - 實現了信號量模式,提供了超時鎖定、解鎖操作,基於通道和上下文。
- tunny - Go 語言協程池
用於構建 GUI 程序的庫
工具包
- app - 使用Go, HTML 和 CSS 進行應用程序開發的庫 支持 MacOS, Windows in progress.
- Go-astilectron - 使用 Go 以及 HTML/JS/CSS 構建應用程序. (基於Electron)
- Go-gtk - GTK 的 Go 語言接口
- Go-qml - QML 對 Go 語言的支持
- Go-sciter - Sciter 的 Go 語言接口 : 支持現代 GUI 程序開發的、嵌入式 HTML/CSS/腳本 引擎。跨平台。
- Goqt - Qt的 Go 語言接口
- Gotk3 - GTK3 的 Go 語言接口
- Gowd - 使用 Go, HTML, CSS 和 NW.js 語言進行快速、簡單的桌面 UI 開發。跨平台
- qt - Qt 的 Go 語言接口 (支持 Windows / macOS / Linux / Android / iOS / Sailfish OS / Raspberry Pi)
- ui - 平台原生 GUI 庫。跨平台
- walk - windows 應用程序開發工具包
交互
- Gosx-notifier - OSX 桌面提醒庫
- robotGo - 跨平台 GUI 自動化;控制滑鼠、鍵盤及其他設備
- systray - 一個跨平台的 Go 語言庫,用於在桌面提醒區域放置按鈕及菜單
- trayhost - 一個跨平台的 Go 語言庫,用於在主機系統任務條區域放置按鈕及菜單
庫、工具以及教程,講解如何操控硬件
參見 Go-hardware 獲取更加全面的信息
用於操作圖象的庫
- bild - 彙集了使用 Go 語言編寫的圖象處理算法
- bimg - 利用 libvips 進行快速高效的圖象處理
- geopattern - 從字元串創建優美的圖樣
- gg - 使用 Go 編寫的 2D 渲染程序
- gift - 一組圖象處理濾波器
- Go-cairo - cairo 圖形庫的 Go 語言接口
- Go-gd - GD 庫的 Go 語言接口
- Go-nude - 使用 Go 語言進行裸替檢測
- Go-opencv - OpenCV 的 Go 語言接口
- Go-webcolors - webcolors 庫的 Go 語言接口
- imagick - ImageMagick 的 MagickWand C 語言 API 的 Go 語言接口
- imaginary - 快速且簡單的 HTTP 微服務,用於圖象縮放
- imaging - 簡單的 Go 語言圖象處理包
- img - 圖象操作工具精選集
- ln - 3D 圖線藝術渲染
- mpo - MPO 3D 照片解碼與轉換工具.
- picfit - 一個使用 Go 語言編寫的圖片縮放服務器
- pt - 光線追蹤引擎
- resize - 使用 Go 語言編寫的具有常見差值功能的圖片縮放工具
- rez - 純 Go 及 SIMD 實現的圖象縮放庫
- smartcrop - 為任意圖片進行剪裁的工具
- svGo - 用於生成 SVG 的 Go 語言庫
- tga - tga 是一個 TARGA 圖象格式解碼/編碼器
用於為物聯網設備編程的庫.
- connectordb - 開源個人數據及物聯網平台
- devices - 物聯網設備套件庫
- eywa - Eywa 是一個持續追蹤所有連接設備的連接管理器
- floGo - FloGo 是一個用於物聯網 Edge App 及整合的開源框架
- gatt - Gatt 是一個用於創建低功耗藍芽外設的庫
- Gobot - Gobot 是一個用於機器人,物理計算以及物聯網的庫
- mainflux - 工業網物聯網消息及設備管理服務器
- sensorbee - 輕量級物聯網流處理引擎
用於生成和操作日誌文件的庫.
- glg - glg 是一個簡單、快速、分級的日誌庫
- glog - 分級記錄日誌的庫
- Go-cronowriter 對日誌文件進行自動循環寫入的庫基於當前日期和時間,類似 cronolog.
- Go-log - 支持多處理器及日誌分級的庫
- Go-log - Go 語言實現的 Log4j
- Go-logger - 支持日誌分級的簡單的日誌工具
- Gologger - 簡單易用的日誌庫,可以在彩色控制台、簡易控制的、文件或 Elasticsearch 中記錄
- Gomol - 支持多種輸出,結構化的日誌模組,可以擴展它的輸出
- Gone/log - 快速、可擴展、全功能、兼容標準庫的日誌庫
- log - 結構化日誌庫
- log - 簡單、可配置、可擴展的結構化日誌庫
- log-voyage - 全功能日誌saas 使用 Go 語言編寫
- log15 - 簡單強大的日誌庫
- logdump - 支持分級的日誌庫
- logex - Go 語言日誌庫,支持追蹤和分級,基於標準庫進行了封裝
- logger - 一個極簡的日誌庫
- logrus - 支持結構化的日誌工具.
- logrusly - logrus 的插件,用於將錯誤發送到 Loggly.
- logutils - 對 Go 語言標準日誌工具進行了擴展,使其更好用
- logxi - 十二要素 app 日誌工具,非常快速,令你開心
- lumberjack - 簡單的循環日誌工具,實現了 io.WriteCloser.
- mlog - 一個簡單的日誌模組,可以分5級並有一個可選的循環日誌文件記錄功能,支持 stdout/stderr 輸出.
- ozzo-log - 高性能日誌庫,支持日誌嚴重級別、分類及過濾。可以將過濾後的信息發送到不同的目的地(例如: 控制台、網絡、郵箱).
- seelog - 一個靈活的、解耦的、格式化的日誌庫
- slf - 簡單日誌門面(The Structured Logging Facade (SLF) ) (類似 SLF4J,但是它是結構化的,並且專為 Go 語言設計)
- slog - 為 Go 語言實現的結構化日誌門面(Structured Logging Facade (SLF) )
- spew - 為 Go 語言的數據結構實現了一個整潔的打印功能,有助於調試
- stdlog - Stdlog 是一個面向對象的庫,提供了分級日誌功能,對於定時任務很有用.
- tail - 這個 Go 語言軟件包力爭模擬 BSD tail 的功能
- xlog - 插件架構以及靈活的日誌系統,具有日誌等級控制,多日誌目標以及自定義日誌格式功能
- xlog - 結構化日誌 for
net/context
aware HTTP handlers ,可以靈活的分發 - zap - 快速的、結構化的、分級的日誌庫
- zerolog - 零分配 JSON 日誌.
機器學習庫
- bayesian - 貝葉斯分類器
- CloudForest - 純 Go 語言編寫的快速、靈活、多線程決策樹
- gaGo - 多種群,靈活的,並行的遺傳算法
- Go-fann - 快速人工神經網絡庫(FANN)的 Go 語言藉口.
- Go-galib - Go 語言編寫的遺傳算法庫
- Go-pr - Go 語言模式識別庫
- Gobrain - Go 語言編寫的神經網絡
- Godist - 多種概率分佈及相關方法
- Goga - Go 語言遺傳算法庫
- GoLearn - Go 語言通用機器學習庫
- Golinear - liblinear 庫的 Go 語言接口
- Goml - 即時go語言機器學習庫
- GoRecommend - Go 語言推薦算法庫
- GorGonia - 基於圖的計算庫,類似於 Theano。提供了一些原型用於構建各種個樣的機器學習和神經網絡算法
- libsvm - libsvm 的 Go 語言版本,基於 LIBSVM 3.14.
- mlGo - 這個項目點目標是在 Go 語言中提供極簡的機器學習算法
- neat - 即插即用的並行 Go 語言框架,用於增強拓撲神經網絡 (NEAT).
- neural-Go - Go 語言實現的多層感知神經網絡,通過反向傳播算法進行訓練.
- probab -概率分佈函數、貝葉斯推理。使用純 Go 語言編寫
- reGommend - 推薦系統及協同過濾引擎
- shield - 貝葉斯文吧分類器,包含靈活的分詞器和存儲後端
實現了消息系統的庫
- CentrifuGo - 實時消息服務器
- dbus - D-Bus的 Go 語言接口
- drone-line - 通過軟件包,docker 或是 Drone CI來發送 Line 通知
- emitter - 通過Go語言的方式發送事件消息,可以使用通配符,斷言,取消發送等優秀特性
- EventBus - 輕量級事件庫,支持非同步
- gaurun-client - Go 語言編寫的 Gaurun 客戶端
- Glue - 健壯的 Go 和 Javascript Socket 庫 (可以用來替代 Socket.io).
- Go-longpoll - 支持長輪詢的發佈與訂閲
- Go-notify - 原生實現的桌面通知規範
- Go-nsq - NSQ 官方 Go 語言庫
- Go-socket.io - Go 語言的 socket.io庫 ,一個實時應用框架.
- Go-vitotrol - Viessmann Vitotrol 服務的 Go 語言客戶端
- Gollum - 一個 n:m 的多路復用器,從不同的源匯聚消息並向目標進行廣播
- Golongpoll - HTTP 長輪詢服務器庫,讓 web 發佈與訂閲變的更簡單.
- Goose - Go 語言實現的服務器端事件發送
- Gopush-cluster - Gopush-cluster 是一個 Go 語言實現的支持集群的comet服務(支持 websocket,和tcp協議)
- Gorush - 通知推送服務器,使用 APNs2 和 Google GCM.
- guble - 一個使用通知推送(Google Firebase Cloud Messaging, Apple Push Notification services, SMS)、websockets 、REST API 的消息服務器。提供了分佈式操作和消息持久化特性
- machinery - 非同步任務隊列,基於分佈式消息處理
- manGos - 純 Go 語言實現的 Nanomsg ("Scalable Protocols")
- melody - 用於處理 websocket 會話的一個極簡框架,包括廣播和自動 ping/pong 處理
- NATS Go Client - 輕量級高性能發佈訂閲(publish-subscribe) 以及分佈式消息隊列系統,這個一個Go語言庫.
- nsq-event-bus - 針對 NSQ 的主題和頻道進行了簡單的封裝
- oplog - 原生的 oplog/replication 系統,用於 REST APIs
- pubsub - 一個簡單的 pubsub 軟件包
- RapidMQ - RapidMQ 是一個輕量級,可靠的本地消息隊列管理庫
- sarama - 用於 Apache Kafka 的庫
- Uniqush-Push - 基於 Redis 的統一推服務,用於服務器端向移動客戶端推送消息
- zmq4 - ZeroMQ version 4的 GO 語言接口。也有適用於version 3 及 version 2的
一些暫時無法歸類的庫
- alice - GO 語言依賴注入容器
- archiver - 用於製作和解壓 .zip 和 .tar.gz 文件的庫和命令
- autoflags - 通過結構體自動定義命令行標記的go語言軟件包
- avgRating - 利用 Wilson Score 方程計算平均分及評級
- banner - 在你的go語言應用中添加炫酷的橫幅
- battery - 跨平台電源信息庫
- bitio - 高度優化的比特級讀寫
- browscap_Go - Browser Capabilities Project的 GO 語言庫
- conv - conv 提供了一種快速且符合直覺的 GO 語言類型轉換
- datacounter - Greaders/writer/HTTP.ResponseWriter 計數器
- errors - 提供簡單的錯誤處理
- Go-chat-bot - IRC、Slack、Telegram 聊天機器人
- Go-commons-pool - 通用對象池
- Go-multierror - 這個 Go 語言庫用於將一系列的錯誤作為一個整體來顯示
- Go-openapi - 一些用於處理和利用 open-api 的庫集合
- Go-resiliency - GO 語言彈性模式
- Go-sarah - 用於構建聊天機器人的框架,支持 LINE, Slack, Gitter等等
- Go-shortid - 超短的、唯一的、非序列的、對 url 友好的 id
- Go-unarr - 解壓縮庫,可用於 RAR, TAR, ZIP 以及 7z 歸檔文件.
- Go.uuid - 全球唯一標示符的實現(UUID),同時支持生成和解析
- Gofakeit - Go 語言編寫的隨機數據生成器
- Goid - 生成和解析符合 RFC4122 規定的 V4 UUIDs.
- Gopsutil - 用於獲取進程和系統資源利用率(cpu,內存,磁碟)的庫,跨平台
- Gosms - 你本地的SMS 網關,可以用來發送 SMS
- Gountries - 一個用來展示國家及其行政區劃數據的庫
- hanu - 用於編寫 Slack 聊天機器人的庫
- health - 簡單易用、可擴展的健康檢查庫
- indiGo - 唯一id生成器,使用 Sonyflake 並通過Base58進行編碼
- jobs - 持久化且靈活的後台任務庫
- margelet - 用於創建 Telegram 聊天機器人的庫
- secdl - Lighttpd ModSecDownload alGorithm ported to Go to secure download urls.
- slacker - 用於編寫 Slack 聊天機器人的庫,非常易用
- stats - 監控 Go 內存狀態及系統狀態,通過UDP將數據發送到任何地方
- uuid - 生成,編解碼 UUIDs v1 ,具有快速的或或密鑰級隨機節點標識
- VarHandler - Generate boilerplate HTTP input and ouput handling.
- werr - Error Wrapper creates an wrapper for the error type in Go which captures the File, Line and Stack of where it was called.
- xkg - X Keyboard Grabber
- xstrings - 一些有用的字元串函數的集合
用於處理人類語言的庫
- dpar - 基於變換的統計依賴關係解析器
- Go-eco - 相似性,相異性及距離度量;差異性,均勻度和不均勻度測量;物種多樣性估計;群落線模型
- Go-i18n - 軟件包及相關工具,用於處理本地化文本
- Go-mystem - Yandex.Mystem 的 CGo 接口, Yandex.Mystem 是一個俄語詞彙形態學分析器
- Go-nlp - 在進行自然語言工作時用於處理離散概率分佈一些工具,以及其他的一些有用的工具
- Go-stem - 波特詞幹算法的一個實現
- Go-unidecode - Unicode 文本音譯為 ASCII 文本
- Go2vec - 利用 Go 語言讀取和處理 word2vec
- Gojieba - 結巴分詞的 Go 語言實現的 jieba ,結巴分詞是一個用於中文的分詞算法
- Golibstemmer - snowball libstemmer 庫的 Go 語言接口,包括了對 porter 2 的支持
- Gounidecode - Go 語言的 Unicode 直譯器 (通常稱之為 unidecode)
- icu - icu4c C 庫的 CGo 接口,包括了檢測和轉換函數。保證了 version 50.1 版本的兼容性
- libtextcat - libtextcat C 庫的 CGo 接口。保證了version 2.2 版本的兼容性
- MMSEGo - Go 語言實現的 MMSEG (一個中文分詞算法)
- nlp - 從字元串中提取特定的值並填充結構體
- paicehusk - Go 語言實現的 Paice/Husk 詞幹算法
- porter - Martin Porter 實現的 C 語言版本的 Porter 詞幹算法的 Go 語言接口,非常直觀
- porter2 - 非常快速的 Porter 2 stemmer.
- prose - 文本處理庫,支持詞語切分、詞性標記、命名實體提取等功能
- RAKE.Go - 快速自動關鍵字提取算法(Rapid Automatic Keyword Extraction:RAKE)的 Go 語言接口
- segment - 一個用於進行 Unicode 文本分割的庫,實現了 Unicode Standard Annex #29中描述的功能
- sentences - 語句標記器:將文欄位落轉換為語句列表
- shamoji - shamoji 是一個Go語言編寫的詞過濾軟件包
- snowball - Snowball 分詞器的Go語言接口,提供了分詞提取的功能 Snowball native.
- stemmer - Go 語言分詞器軟件包,包括了英語和德語分詞器
- textcat - 基於 n-gram 的 Go 語言文本分類軟件包,支持utf-8 和 raw 文本
- whatlangGo - Go 語言的自然語言檢測包。支持84種語言和24種書寫 (如拉丁,西里爾等書寫系統)。
- when - 英語、俄語的自然語言日期、時間表達解析器,可以插入規則
用於在不同網絡層工作的庫
- arp - 實現了 ARP 協議,遵循 RFC 826.
- buffstreams - 簡單易用的 protocolbuffer 數據流,基於 TCP
- canopus - CoAP 客戶端/服務器實現 (RFC 7252)
- dhcp6 - dhcp6 實現了一個DHCPv6 服務器,遵循RFC 3315.
- dns - 用於處理 DNS 的 Go 語言庫
- ether - 跨平台 Go 語言庫,用於發送和接收以太幀
- ethernet - ethernet 實現了IEEE 802.3 Ethernet II 幀以及IEEE 802.1Q VLAN 標籤的組裝和剝離.
- fasthttp - fasthttp 是一個快速的 HTTP 實現,是 net/http的10倍性能
- ftp - ftp 實現了一個 FTP 客戶端,遵循 RFC 959.
- Go-getter - 一個用於通過 URL 從多種源下載文件或目錄的 Go 語言庫
- Go-stun - Go 語言實現的 STUN 客戶端 (RFC 3489 及 RFC 5389).
- Gobgp - Go 語言實現的BGP
- Golibwireshark - Golibwireshark 使用 libwireshark 庫來解析 pcap 文件並且分析數據
- Gopacket - 用於報文處理的庫
- Gopcap - libpcap的 Go 語言封裝
- Goshark - Goshark 使用 tshark 來對 IP 報文進行解碼並創建數據結構用於分析報文
- Gosnmp -用於執行 SNMP 操作的庫
- Gotcp - 用於快速編寫 tcp 應用的庫
- grab - 管理文件下載的 Go 語言庫
- graval - 試驗性的 FTP 服務器框架
- jaziGo - JaziGo 是一個 Go 語言編寫的工具,用於獲取多種網絡設備的配置.
- kcp-Go - KCP - 快速可靠的 ARQ 協議.
- kcptun - 超級簡單、快速的 udp 通道,基於KCP 協議
- lhttp - 強大的 websocket 框架,可以更簡單的構建你自己的 IM 服務器*
- linkio - 接口讀寫速度模擬器
- llb - 一個非常簡單但快速的後端代理服務器。對於快速重定向到預定義域名很有用,無內存分配,響應速度快
- mdns - 簡單的 mDNS (組播 DNS) 客戶端/服務器庫
- mqttPaho - Paho 客戶端提供了一個 MQTT 客戶端庫,用於通過TCP, TLS 或 WebSockets 和 MQTT broker 建立連接
- portproxy - 簡單的 TCP 代理,加入了對CORS 的支持
- publicip - publicip 庫會返回你的公網 ip 地址 (互聯網出口).
- raw - raw 允許你在設備驅動層讀寫網絡接口的數據
- sftp - sftp 實現了https://filezilla-project.org/specs/draft-ietf-secsh-filexfer-02.txt.中描述的 SSH 文件傳輸協議
- ssh - 用於創建 SSH 服務器的高級 API (封裝crypto/ssh).
- sslb - 一個超簡單的負載均衡庫,僅僅是一個為了獲取一些性能目標的小項目
- tcp_server - 一個用於快速創建 tcp 服務器的庫
- utp - Go uTP 微傳輸協議的實現
- water - 簡單的 TUN/TAP 庫
- winrm - Go WinRM 客戶端,用於在 Windows 設備上遠程執行命令
- xtcp - TCP 服務器框架,支持同時全雙工通信。可以優雅的關閉,自定義協議
用於操作OpenGL的庫.
- gl - OpenGL的 Go 語言接口
- glfw - GLFW 3 的 Go 語言接口
- Goxjs/gl - Go 語言跨平台 OpenGL 接口(OS X, Linux, Windows, browsers, iOS, Android).
- Goxjs/glfw - Go 語言跨平台 glfw 庫,用於創建 OpenGL 上下文並接收事件
- mathgl - Go 語言 3D 數學庫,專注於3D,受到 GLM 啟發
實現對象關係映射或數據映射技術的庫
- beeGo orm - 一個強大的 Go 語言 orm 框架,支持 pq/mysql/sqlite3.
- Go-pg - PostgreSQL ORM ,專注PostgreSQL 特定功能及性能
- Go-store - 簡單快速的基於Redis 的鍵值對存儲庫
- Gomodel - 輕量級、快速的、類 orm 庫,幫助你和數據庫進行交互
- GoRM - 超棒的 Go 語言 ORM 庫,對開發者非常友好
- Gorp - 關係持久的、類 orm 的 Go 語言庫
- pop/soda - 數據庫遷移、創建、ORM 等等,支持 MySQL, PostgreSQL, 以及 SQLite.
- QBS - 利用結構體進行標準查詢,是一個 Go 語言 ORM
- reform - 一個更優秀的 ORM,基於非空接口和代碼生成
- SQLBoiler - ORM 生成器。為你的數據庫表單生成一個功能全面、快速的 ORM
- upper.io/db - 通過使用封裝了成熟的數據庫驅動的適配器,來使用單一接口與不同的數據源進行交互
- Xorm - 簡單、強大的 Go 語言 orm
- Zoom - 超快的數據存儲於查詢引擎,基於 Redis 構建
用於進行包和依賴管理的庫
- dep - Go 語言依賴工具.
- giGo - 類似 PIP 的依賴管理工具。支持私有倉庫和哈希
- glide - 輕鬆管理你的 GO 語言包發佈者以及發佈包。 受到類似 Maven, Bundler, 和 Pip 這些工具的的啟發
- Godep - Go 語言依賴工具,Godep 可以幫助開發者修復庫的依賴關係
- Gom - Go Manager
- Goop - 簡單的依賴管理工具,手到 Bundler 的啟發
- Gopm - Go 包管理器
- Govendor - Go 包管理器。 Go 語言 vendor 工具,兼容標準 vendor 文件
- gpm - Go 語言包管理工具
- gvt -
gvt
是一個簡單的發佈管理工具(aka Go15VENDOREXPERIMENT), 基於 gb-vendor. - johnny-deps - 極簡的依賴版本管理工具,使用 git
- nut - Go 語言依賴管理
- VenGo - 創建並管理可以導出的,隔離的 Go 語言虛擬環境
- graphql - graphql 解析器 + 實用工具
- graphql - Go 語言實現的 GraphQL
- graphql - 專注於易用性的 GraphQL 服務器
- graphql-Go - 為 Go 語言實現的 GraphQL
- jsonql - JSON 查詢表達式庫
- esc - 在 Go 語言程序中嵌入文件併為其提供 HTTP.FileSystem 接口
- fileb0x - 一個用於在 Go 語言程序中嵌入文件的工具,專注於可定製化和易用性
- Go-bindata - 一個用於將文件轉換為可管理的 Go 語言代碼的工具
- Go-embed - 生成用於嵌入資源文件到庫或可執行文件的 Go 語言代碼
- Go-resources - 一個簡潔的 Go 語言資源嵌入工具
- Go.rice - Go.rice 是一個讓你輕鬆使用 html,js,css,圖片以及模板這類資源的庫
- statics - 將靜態資源嵌入到 Go 文件中,用於單獨二進制編譯+使用http.FileSystem + symlinks.
- statik - 將靜態文件嵌入到 Go 語言可執行文件中
- templify - 將外部目標文件嵌入到 Go 代碼中來創建單獨的二進制文件
- vfsgen - 生成一個 vfsdata.Go 文件,靜態實現了一個虛擬文件系統
用於科學計算和數據分析的庫
- blas - BLAS (基礎線性代數子程序 Linear Algebra Subprograms)的 Go 語言實現
- chart - 簡單的圖表繪圖庫。支持多種圖表類型
- evaler - 簡單浮點算數表達式求值器
- ewma - 指數移動加權平均值
- geom - 2D 幾何
- Go-dsp - 數字信號處理
- Go-fn - 一些沒有包含在 math pkg 中的數學函數
- Go-gt - 圖論算法
- Go.matrix - 線性代數
- Gocomplex - 複數庫
- Gofrac - Go 語言分數庫,支持基本算術
- Gohistogram - 數據流的近似直方圖
- Gonum/mat64 - 矩陣計算通用包。 mat64 提供了用於進行64位浮點基礎線性代數操作的功能
- Gonum/plot - Gonum/plot 提供了用於創建和繪製圖表的 API
- Goraph - 純 Go 語言編寫的圖論庫(數據結構,算法可視化)
- Gostat - 統計庫
- graph - 包含基礎圖算法的庫
- ode - 普通微分方程 (ODE) 求解器。支持擴展狀態及基於通道的疊代算法終止條件
- pagerank - Go 語言實現的加權網頁排名( PageRank)算法
- PiHex - 貝利-波爾溫-普勞夫公式("Bailey-Borwein-Plouffe")算法的實現,用於計算十六進制π
- stats - 統計庫,包含一些 Go 語言標準庫中漏掉的常用函數
- streamtools - 通用圖形化工具,用於處理流數據
- vectormath - 給 Go 語言用的 Vectormath , 是對索尼的矢量數學庫中 C 語言函數的改寫,可以在 Bullet-2.79 源碼中找到 (當前不活躍)
可以幫助你增強應用程序安全性的庫
- acmetool — ACME (Let's Encrypt) 客戶端工具,有自動延長功能.
- BadActor - 一個駐留在內存中的,應用驅動的監控程序,受 fail2ban 的啟發
- Go-yara - YARA的 Go 語言接口,號稱是 "對於惡意軟件研究者(以及其他人)來說是模式匹配的瑞士軍刀
- leGo - 純 Go ACME 客戶端庫及命令行工具
- memguard - 一個用於處理內存中敏感數據的 Go 語言庫
- passlib - 不過時的密碼哈希庫
- secure - Go 語言 HTTP 中間件,為 Go 提供了一些安全功能
- simple-scrypt - Scrypt 庫,具有簡單、易懂的 API,同時具有內置的自動校準功能
- ssh-vault - 利用 ssh 秘鑰加解密
用於進行二進制序列化的庫和工具
- asn1 - Asn.1 BER 及 DER 編碼庫
- colfer - 用於生成 Colfer 二進制格式代碼
- Go-capnproto - Go 語言用的 Cap'n Proto 庫及解析器
- bambam - 用於 Go 語言生成 Cap'n Proto schemas 的生成器
- Go-codec - 高性能、多功能、規範化編碼解碼以及 rpc 庫, 用於 msgpack, cbor 和 json,支持基於運行時的 OR 碼生成
- GoGoprotobuf - Go 語言的 Protocol Buffer 庫
- Goprotobuf - 通過庫和協議編譯器插件使 Go 語言支持 Google的 protocol buffers.
- jsoniter -高性能,100% 兼容的"encoding/json" 替代品
- mapstructure - 用於對原生鍵值對進行解碼生成 Go 語言結構體
- php_session_decoder - 用於協同 PHP session 格式數據和 PHP 序列化/反序列化函數工作的go語言庫
- structomap - 用於從靜態結構體簡單、動態的生成鍵值對的庫
- algernon - HTTP/2 web 服務器,支持 Lua、Markdown、GCSS 和 Amber.
- Caddy - Caddy 是一個備選的 HTTP/2 web 服務器,配置簡單,使用方便。
- consul - Consul 是一個用於服務發現、監控和配置的工具
- devd - 開發者使用的本地 web 服務器
- etcd - 高可用性的鍵值存儲,用於分享配置和服務發現
- minio - Minio 是一個分佈式對象存儲服務器
- nsq - 一個實時的分佈式消息平台
- yakvs - 小型化、網絡化、基於內存的鍵值存儲
模板庫及工具
- ace - Ace 是一個 Go 語言的 HTML 模板引擎,受到了 Slim 和 Jade 的啟發。 Ace 是對Gold的一種改進。
- amber - Amber 是一個優雅的模板引擎,受到 HAML 和 Jade的啟發
- damsel - 標記語言,通過css選擇器實現了 html 框架 ,並可以通過 pkg html/template 等進行擴展
- eGo - 輕量級模板語言,讓你可以使用 Go 語言來創建模板。模板會被轉化為 Go 語言並編譯
- fasttemplate - 簡單快速的模板引擎。進行模板元素替換時,速度是text/template的十倍
- Gofpdf - PDF 文檔生成器,支持文本,繪圖和圖片
- grender - 對 html/template 進行了簡單的封裝,支持基於文件的模板可以利用其他模板文件進行擴展
- hero Hero 是一個趁手的、快速的、強大的 Go 語言模板引擎
- jet - Jet 模板引擎
- kasia.Go - 一個用於HTML 和其他文本文件的模板系統,使用go語言實現
- liquid - Go 語言實現的 Shopify Liquid 模板.
- mustache - Go 語言實現的 Mustache 模板語言
- ponGo2 - 類似 DjanGo 的模板引擎
- quicktemplate - 快速、強大且易用的模板引擎。將模板轉化為 Go 語言併進行編譯
- raymond - 使用 Go 語言實現的完整的 handlebars
- GoRazor - Go 語言的 Razor 視圖引擎
- Soy - Go 語言實現的谷歌閉包模板(也就是 Soy templates) , 參見official spec
- velvet - 使用 Go 語言實現的完整的 handlebars
測試及用於生成測試數據的庫.
- 測試框架
- assert - 基礎斷言庫,用於對 Go 語言程序進行測試,提供了一些用於自定義斷言的代碼塊
- badio - Go 語言
testing/iotest
包的擴展 - baloo - 表達性強、多功能的、端到端的HTTP API 測試工具
- bro - 監控目錄中的文件並對其進行測試
- dbcleaner - 清空數據庫用於測試,受到
database_cleaner
的啟發 - dsunit - 數據庫測試,針對 SQL、 NoSQL、 結構化文件.
- frisby - REST API 測試框架
- ginkGo - BDD 測試框架
- Go-carpet - 用於在終端中查看測試覆蓋率的工具
- Go-mutesting - Go 語言原代碼突變測試(Mutation testing )
- Go-vcr - 記錄並重放 HTTP 交互,用於快速的、確定性的、準確的測試
- Goblin - 類似 Mocha 的測試框架
- Gocheck - 更加高級的測試框架,用於替換 Gotest.
- GoConvey - BDD 風格的測試框架,具有 web 界面和計時刷新功能
- Godog - 類似 Cucumber 或 Behat 的 BDD 框架
- Gofight - 對 Go 語言的路由框架進行 API 測試
- Gomega - 類似 Rspec 的 matcher/assertion 庫
- GoSpec - BDD 風格的測試框架
- Gospecify - 支持 BDD 語法 。對於任何使用過 rspec 等庫的人來說應該非常熟悉
- Gosuite - 輕量級測試套,為 Go1.7's Subtests 帶來了setup/teardown 功能
- Hamcrest - fluent framework for declarative Matcher objects that, when applied to input values, produce self-describing results.
- httpexpect - 簡潔的、聲明式的、易用的端到端HTTP 及 REST API 測試
- restit - 幫助編寫 RESTful API 整合測試的 Go 語言微型框架.
- testfixtures - 類似 Rails 的測試工具,用於測試數據庫應用
- Testify - 對標準測試包的擴展
- wstest - Websocket 客戶端,用於對於 websocket HTTP.Handler 進行單元測試
- Mock
- counterfeiter - 用於生成自包含 mock 對象的工具
- Go-sqlmock - Mock SQL ,用於測試數據庫交互
- Go-txdb - 基於單事物的數據庫驅動,主要用於測試目的
- Gock - 多功能、易用 HTTP mock
- Gomock - 給 Go 語言用的 Mock框架
- Govcr - HTTP mock : 離線測試時記錄和重放瀏覽器的動作
- minimock - Mock 生成器
- mockhttp - Go HTTP.ResponseWriter 使用的 Mock 對象
- Fuzzing and delta-debugging/reducing/shrinking
- Selenium 及瀏覽器控制工具
解析和操作文本的庫
-
特殊格式
- allot - 占位符及通配符文本解析
- bbConvert - 將 bbCode 轉換為 HTML
- blackfriday - Markdown 解析器
- bluemonday - HTML 清理工具
- editorconfig-core-Go - Go 語言用的Editorconfig 文件解析和操作庫
- enca - libenca的極簡的 cGo 接口
- genex - 計算並展開正則表達式為所有匹配的字元串
- github_flavored_markdown - GitHub 風格的 Markdown 渲染器 (使用 blackfriday) ,支持代碼塊高亮以及可點擊的錨點
- Go-humanize - 時間、數字及內存大小格式化工具
- Go-nmea - NMEA 解析庫
- Go-pkg-rss - 這個庫可以讀取 RSS 以及 Atom feeds,並且提供了一種緩存機制,遵守 feed 標準。
- Go-runewidth - 用於獲取字元或字元串固定寬度的函數
- Go-slugify - 生成漂亮的固定連結地址(slug),支持多種語言
- Go-vcard - 解析並且格式化vCard
- Gofeed - 使用 Go 語言解析RSS 和 Atom
- Gographviz - 用以解析 Graphviz DOT 語言
- Gommon/bytes - 格式化二進製為字元串
- Gonameparts - 將人名解析為幾個獨立的部分
- Goq - 聲明式 HTML 編組,使用結構標籤和 jQuery 語法 (使用 GoQuery).
- GoQuery - GoQuery 為 Go 語言帶來了一組類似 jQuery 的語法和功能
- Goregen - 根據正則表達式生成隨機字元串
- Gotext - GNU gettext 工具
- guesslanguage - 通過一個 unicode 文本來猜測該文本使用的語言
- inject - inject 提供來一個基於反射對注入器
- mxj - 將 XML 編解碼為 JSON 或 map[string]interface{}; 通過點分路徑和通配符來提取值。用於替代Replaces x2j 和 j2x 包.
- sh - Shell 解析器及格式化工具
- slug - URL 友好的 slug 化工具,支持多種語言
- Slugify - Go 語言靜態地址生成器,可以處理字元串
- toml - TOML 配置格式 format (encoder/decoder with reflection).
-
工具
- Gotabulate - 使用 Go 語言簡單、美觀的打印表格數據
- kace - 通用大小寫轉換工具
- parseargs-Go - 字元串參數解析器,能夠理解引用及反斜杠
- parth - URL 路徑分割解析
- radix - 快速的字元串排序算法
- xurls - 從文本中提取 URL
用於訪問第三方 APIs 的庫
- amazon-product-advertising-api - Amazon Product Advertising API 的 go 語言客戶端
- anaconda - Twitter 1.1 API 的 go 語言客戶端
- aws-sdk-Go - AWS 提供的官方go語言 SDK
- brewerydb - 用於訪問 BreweryDB API的 Go 語言庫
- cachet - Cachet (open source status page system)的 Go 語言客戶端
- circleci - 用於和 with CircleCI's API 進行交互的 Go 語言客戶端
- clarifai - 用語和 Clarifai API 交互的 Go 語言庫
- discordGo - Discord Chat API 的 Go 語言接口
- facebook - 支持 Facebook Graph API 的庫
- fcm - Firebase Cloud Messaging 的 Go 語言庫
- gads - Google Adwords 非官方 API
- gami - Asterisk Manager Interface 的 Go 語言庫
- gcm - Google Cloud Messaging 庫
- geo-Golang - 用於與 Google Maps, MapQuest, Nominatim, OpenCage, HERE, Bing, Mapbox, 及 OpenStreetMap 地理編碼 / 反編碼 APIs 交互的庫
- ghost - 用於和 Snapchat API 交互的庫
- github - 用於和 GitHub REST API v3 交互的庫
- githubql - 用於和GitHub GraphQL API v4 交互的庫
- Go-imgur - imgur 的 Go 語言客戶端
- Go-jira - Atlassian JIRA 的 Go 語言客戶端
- Go-marathon - 用於和 Mesosphere's Marathon PAAS 交互的 Go 語言庫
- Go-myanimelist - 用於和 MyAnimeList API交互的庫
- Go-telegraph - Telegraph 發佈平台 API 客戶端
- Go-tgbot - 純 Go 語言的Telegram 機器人 API 封裝,通過 swagger 文件,基會話的路由和中間件
- Go-trending - 用於獲取 Github 上面 當前流行的代碼庫 及 開發者
- Go-twitch - 用於和推特v3 API 進行交互的 Go 語言客戶端
- Go-twitter - 用於和推特v1.1 API 進行交互的 Go 語言客戶端
- Go-unsplash - Unsplash.com API 的 Go 語言客戶端
- Go-xkcd - xkcd API 的 Go 語言客戶端
- Goamz - Goamz 的一個fork分支,添加了一些缺失的 API,用於調用特定的軟件包。
- Golyrics - Golyrics 是一個 Go 語言庫,用於從 Wikia 上獲取歌詞
- GoMusicBrainz - Go MusicBrainz WS2 客戶端
- Google - 為go語言自動生成 Google api
- Google-analytics - Google 分析報告的一個簡單的封裝
- Google-cloud - Google Cloud APIs Go 語言客戶端庫
- Google-email-audit-api - Google G Suite Email Audit API的 Go 語言客戶端庫
- Gostorm - GoStorm 是一個 Go 語言庫,實現了在 Go 語言裡面編寫 Spout 和 Bolt 的協議,用於和 Storm shells 進行通信
- Govkbot - 簡單的 Go VK 機器人庫
- hipchat - 這個項目實行了Hipchat API 的 Go 語言客戶端
- hipchat (xmpp) - 通過使用 XMPP 與 HipChat 進行通信的庫
- Medium - Medium OAuth2 API 的 sdk
- meGos - 用於訪問 Apache Mesos 集群的客戶端
- micha - 用於Telegram bot api的go語言庫
- minio-Go - go 語言 Minio 客戶端,用於 Amazon S3 兼容的雲存儲
- mixpanel - Mixpanel 是一個用於追蹤事件並發送 Mixpanel profile 的更新到 Mixpanel 的庫
- patreon-Go - Patreon API.
- paypal - PayPal 支付 API
- playlyfe - Playlyfe Rest API 的 Go 語言 SDK
- pushover - Pushover API 的 Go 語言封裝
- rrdaclient - 用於接入 statdns.com API 的庫——RRDA API。通過HTTP協議進行 DNS查詢
- shopify - 一個用於通過 Shopify API 進行增刪改查的 Go 語言庫
- slack - Slack API
- smite - 對 Smite game API 的封裝
- spotify - 用於接入 Spotify WEB API 的 Go 語言庫
- steam - 用於與Steam服務器進行交互的庫
- stripe - Stripe API 的 Go 語言客戶端
- tbot - Telegram bot 服務器,有類似 net/http 的 api
- telebot - go語言編寫的 Telegram bot 框架
- telegram-bot-api - 簡潔的 Telegram bot 客戶端.
- textbelt - textbelt.com txt messaging API 的go語言客戶端
- TheMovieDb - 用於和 themoviedb.org 通信的一個簡單的 Go 語言軟件包
- translate - Go 在線翻譯包
- Trello - Trello API的 Go 語言封裝
- tumblr - Tumblr v2 API 的 Go 語言封裝
- webhooks - GitHub 和 Bitbucket 的Webhook接收器
- zooz - Zooz API 的 Go 語言客戶端
可以讓你的生活變得更簡單的實用工具.
- abutil - 常用 Go 語言工具的集合
- apm - Go 語言進程管理工具具有HTTP API.
- boilr - 一個超快的命令行工具,用於從模板文件生成項目
- circuitbreaker - Go 語言斷路器模式
- clockwerk - 使用簡單、流暢的語法來調度週期性任務
- command - 命令模式,支持線程安全的串列、並行調度
- coop - Go 語言中常見的並發流程速查表
- copy-pasta - 通用多工作站剪切板,使用類似 S3 的後端作為存儲
- ctop - 類似Top的接口 (例如 htop) ,用於容器數據收集
- Death - 利用信號管理應用程序的關閉
- Deepcopier - 結構體拷貝
- delve - Go 語言調試器
- dlog - 編譯時控制的日誌,讓你的 release 包變得更小而不需移除 debug 調用
- excelize - 用於讀寫 Microsoft Excel (XLSX) 文件的庫
- fastlz - FastLz (免費,開源,可移植實時壓縮庫) 的一個封裝
- filetype - 通過數字簽名來推測文件類型
- filler - 使用 "fill" 標記來填充結構體的小工具
- fzf - 命令行模糊查找工具
- generate - 針對一個路徑或環境變數,遞歸的執行 Go generate,可以通過正則表達式來進行過濾
- gentleman - 全功能、插件驅動的 HTTP 客戶端庫
- git-time-metric - 簡單、無縫、輕量級的 Git 時間追蹤工具
- GJSON - 一行代碼獲取 JSON
- Go-astitodo - 解析你 Go 語言代碼中的 TODOs(待辦事項)
- Go-bind-plugin - Go:generate 工具,用於構建 Go 語言插件(1.8 only),並對導出的符號進行包裝
- Go-cron - 簡單的 Go 語言 Cron 庫,可以以不同的時間間隔來執行閉包或函數,從一秒到某年某月某日都可以。主要針對的是 Web 應用或者長期運行的守護進程
- Go-debug - 條件調試日誌,用於 Go 語言庫和應用程序
- Go-dry - DRY (don't repeat yourself)
- Go-funk - 現代 Go 語言工具庫,提供了很多有用的工具 (map, find, contains, filter, chunk, reverse, ...)
- Go-httpheader - 用於將結構體編碼進 http 頭的 Go 語言庫
- Go-rate - Go 語言版本的限速器
- Go-respond - 用於處理常見 HTTP JSON 響應的庫.
- Go-sitemap-generator - XML 網站地圖生成器
- Go-torch - 為 Go 語言程序生成火焰圖
- Go-trigger - Go 語言全局事件觸發器,通過 id 和觸發器,在程序的任何地方註冊事件
- Go-underscore - 一些有用的 Go 語言工具的集合
- Goback - 一個 Go 語言的簡單的指數補償包
- Godaemon - 用於編寫守護進程的工具
- Godropbox - 用於編寫 Go 語言服務/應用的庫,來自 Dropbox.
- Gohper - 多種能夠幫助你進行軟件開發的工具和模組
- Gojq - 通過 Go 語言進行 JSON 查詢
- Gojson - 通過 JSON 自動生成 Go 語言結構體
- Golarm - 告警(支持系統事件)
- Golog - 簡單、輕量級的命令後工具,用於對你的計劃任務進行跟蹤
- Gopencils - 簡單小巧的 Go 語言庫,能夠很容易的使用各種 REST APIs.
- Goplaceholder - 一個小巧的 Go 語言庫用於生成占點陣圖片
- Goreleaser - 儘可能快速的發佈 Go 語言二進制文件
- Goreporter - 進行代碼靜態分析,單元測試,代碼檢視並生成代碼質量報告的工具
- Goreq - 簡潔的 Go 語言 http 請求庫
- Goreq - 更加簡化的 http客戶端,基於 Gorequest.
- Gorequest - 簡化的 http 客戶端,具有豐富的特性
- Goseaweedfs - conseilSeaweedFS 客戶端,幾乎具有全部的特性
- Gotenv - 從
.env
或者任何io.Reader
中加載環境變數 - Goxlsxwriter - 用於操作 XLSX (Microsoft Excel) 文件的 libxlsxwriter 庫的 Go 語言接口
- gpath - 用於簡化結構體域訪問的庫
- grequests - 簡單優雅的
net/HTTP
封裝,緊隨 Python 的 requests 的步伐 - gron - 使用簡單的 Go 語言 API 和 Gron 調度器創建定時任務
- htcat - 並行及流水線的 HTTP GET 工具
- httpcontrol - httpcontrol 包,運行進行 HTTP 傳輸層超時和重傳控制
- hub - 封裝了 git 命令,提供了額外的功能用於在終端中和 Github 進行交互
- hystrix-Go - 實現 Hystrix 風格的、程序員預定義的 fallback 機制(熔斷)
- immortal - *nix 跨平台 (與操作系統無關的)監控程序
- intrinsic - 不需要編寫任何彙編代碼就能使用 x86 SIMD
- JobRunner - 智能的、多功能的定時任務調度器,具有任務隊列和實時監控功能
- jsonapi-errors - JSON API errors 的 Go 語言接口.
- jsonf - 控制台工具,用於高亮及 JSON 查詢功能
- jsonGo - 用於更加方便的構建 JSON 對象的 API
- jsonhal - 一個簡單的 Go 語言軟件包,用於將自定義結構體轉換為 HAL 兼容的 JSON 響應
- kazaam - 用於傳輸任意 JSON 文件的 API
- lrserver - LiveReload 服務器
- mc - Minio Client 提供了一組工具,用於操作 Amazon S3 兼容雲存儲和文件系統
- merGo - 用於將結構體和map合併進 Go 語言的工具。對於配置默認值,避免雜亂的if語句很有幫助
- minify - 快速壓縮 HTML, CSS, JS, XML, JSON 以及 SVG 文件格式
- mmake - 現代 Make 工具
- moldova - 基於輸入目標生成隨機數據的工具
- mp - 簡單的命令行郵件解析器,當前支持標準輸入並輸出JSON.
- mssqlx - HA 客戶端,用於主-從 (或主-主) 數據庫,整合了簡單的、輕量級的輪詢調度負載均衡。基於 sqlx.
- multitick - 用於 aligned tickers 的多路復用
- netbug - 遠程對你的服務進行性能分析
- ngrok - 創建到 localhost 的隧道
- okrun - 當 Go 文件運行報錯時嘗試修復並運行
- onecache - 支持多種後端存儲的緩存庫(Redis, Memcached, 文件系統等)
- panicparse - 將類似的協程分組並對調用棧進行著色
- peco - 簡單的交互式過濾工具
- pester - Go HTTP 客戶端,具有重傳,補償和並發功能
- pm - 基於 HTTP API 的進程管理 (i.e. Goroutine)
- profile - 一個簡單的性能分析軟件包
- rclient - 可讀性良好、靈活、易用的 REST APIs 客戶端
- realize - Go 語言構建系統,可以監控文件變化並重新加載。運行,構建,監控文件並支持自定義路徑
- request - Go 語言版的 HTTP Requests for Humans™.
- rerate - 基於 Redis 的速率計數器和限速器
- rerun - 當源碼變化時,重新編譯並重新運行 Go 語言編寫的 app
- resty - 簡單的 HTTP 和 REST 客戶端,受到 Ruby rest-client 的啟發
- retry - 基於上下文的功能機制,反覆執行命令直到成功
- robustly - 有彈性的執行函數,遇到錯誤時捕獲並重新運行
- scheduler - 從容的進行 Cronjobs 任務調度
- sling - Go HTTP 請求構造器,用於 API 客戶端
- spinner - 一個 Go 語言軟件包,提供多種選項,方便在終端中創建加載動畫
- sqlx - 為內建的數據庫/sql 軟件包提供一組擴展
- Storm - 一個用於 BoltDB 的簡單又強大的工具
- Task - 簡單來講就是 "Make" 的替代品
- toolbox - 切片, map, multimap, 結構體, 函數,數據轉換工具。服務路由,宏求值和標記器
- uGo - uGo 是一個切片工具箱,有著和 Go 語言一致的語法
- UNIS - Go 語言字元串處理函數的通用架構
- usql - usql 是一個通用的命令行接口,用於操作 sql 數據庫
- util - 收集了很多有用的函數
- wuzz - 交互式命令行程序,用於進行 HTTP 檢查
- xferspdy - Xferspdy 提供了二進制對比功能以及 Go 語言補丁庫
- xlsx - 簡化了在 Go 語言程序中讀取 xml 格式文件的操作
用於驗證的庫
- Govalidator - 數據驗證及清晰工具,用於字元串,數字, 數組切片及結構體
- ozzo-validation - 支持多種數據類型的驗證 (結構體,字元串,鍵值對,數組切片等等),具有可配置、可擴展的驗證規則——使用常用代碼結構定義,而非結構體標籤
- validate - 提供了一個用於為 Go 語言英語程序編寫驗證工具的框架
- validator - Go 結構體及域驗證,包括:跨域、跨結構體, Map, 切片和數組
用於版本控制的庫
- gh - 用於 GitHub Webhooks 的可編程服務器以及 net/HTTP 中間件
- git2Go - libgit2 的 Go 語言接口
- Go-vcs - 通過 Go 語言來操作和檢視 VCS 代碼倉庫
- hGo - HGo 是一個 Go 語言軟件包集合,提供了對本地 Mercurial 倉庫的讀取能力.
用於操作視頻的庫
- gmf - FFmpeg av* 庫的 Go 語言接口.
- Go-astisub - 使用 Go 語言操作字幕(.srt, .stl, .ttml, .webvtt, .ssa/.ass, teletext, .smi, etc.).
- Goav - 易用的 FFmpeg Go 語言接口
- gst - GStreamer 的 Go 語言接口
- v4l - Linux 下使用的視頻截圖庫,Go 語言編寫
全棧 web 框架
- aah - 可擴展、高性能、快速發佈的 Go 語言 web 框架
- Air - 理想的 RESTful web 框架
- BeeGo - beeGo 是一個開源的、高性能的 Go 語言 web 框架
- Buffalo - 為 Go 語言帶來堪比 Rails 的高生產效率
- Echo - 高性能、極簡的 Go 語言 web 框架
- Fireball - 感覺更加自然的 web 框架
- Florest - 高性能的、基於工作流的 REST API 框架
- Gem - 簡單快速的 web 框架,對 REST API 很友好
- Gin - Gin 是一個 Go 語言編寫的 web 框架!提供了一組類似 martini 的 API ,具有更好的性能(40倍)。如果你需要高性能和高生產率,這個框架很適合你
- Gizmo - 紐約時報正在使用對微服務工具集
- Go-json-rest - 快速、簡單的創建 RESTful JSON API.
- Go-relax - 具有可插拔組建的框架,用於構建 RESTful API's.
- Go-rest - Go 語言 REST 框架中的小惡魔
- Goa - 用於開發微服務的框架,基於 Ruby 的 Praxis 的設計
- Golf - Golf 是一個快速、簡單、輕量級的 Go 語言微型 web 框架。具有強大的功能且沒有標準庫以外的依賴
- Gondola - 用於快速編寫高性能網站的框架
- Gongular - 快速 Go web 框架,支持輸入映射/驗證以及依賴注入
- Macaron - Macaron 是一個高效的模組化設計的web框架
- manGo - ManGo 是一個模組化 web 應用框架,受到 Rack 和 PEP333 的啟發
- Microservice - 用於創建微服務的框架,使用 Go 語言編寫
- neo - 是一個極小且快速的 Go 語言 web 框架,具有及其簡單的 API
- Resoursea - 用於快速編寫基於資源對服務的 REST 框架
- REST Layer - 用於構建在數據庫之上構建 REST/GraphQL API 且大多數配置都可以通過代碼完成
- Revel - go語言高生產率框架
- rex - Rex 是一個用於進行模組化開發的庫,基於Gorilla/mux 完全兼容大多數的
net/HTTP
. - sawsij - 輕量級、開源的 web 框架,用於構建高性能、數據驅動的web應用
- tanGo - 微型的、支持插件的 web 框架
- tigertonic - 用於構建 JSON web 服務的 Go 語言框架,受到 Dropwizard 的啟發
- traffic - 受到 Sinatra 啟發的 Go 語言 web 框架
- utron - 輕量級的go語言 MVC 框架
- violetear - Go HTTP 路由庫
- YARF - 快速的微型框架,用於快速、簡單地構建 REST APIs 以及 web 服務
- Zerver - Zerver 是一個富有表達力的、模組化的、全功能的 RESTful 框架.
Libraries and tools for manipulating XML.
- Go-pkg-xmlx - 對 Go 語言 XML 標準庫的擴展。維護來一個節點樹,允許前進和後退瀏覽以及一些簡單的單/多節點搜索函數
- XML-Comp - 簡單的命令行 XML 比較工具,可以生成關於目錄、文件和標籤對差異信息
- xmlwriter - Procedural XML 生成 API 基於 libxml2 的 xmlwriter 模組.
- xpath - XPath 庫
- xquery - XQuery 使你可以從 HTML/XML文檔中抽取數據和求值,使用 XPath 表達式
- CORS - 非常方便地向你的 api 中添加 CORS 功能
- formjson - 將 JSON 輸入看作說一個標準的表單 POST 來處理
- Limiter - 超級簡單的限速中間件
- Tollbooth - HTTP 請求限速中間件
- XFF - 處理
X-Forwarded-For
頭的中間件
- alice - 用於連接中間件的庫,簡單無痛苦
- catena - HTTP.Handler wrapper catenation (和chain具有相同的 API ).
- chain - Handler wrapper chaining with scoped data (net/context-based "middleware").
- Go-wrap - 小型中間件庫,用於net/HTTP.
- Gores - 用於處理 HTML, JSON, XML 等。對於 RESTful APIs 很有用。
- interpose - 極簡的 net/HTTP 中間件
- muxchain - 用於net/HTTP的輕量級中間件
- negroni - 符合語言習慣的 HTTP 中間件庫
- render - 用於輕鬆渲染 JSON, XML, 及 HTML 模板響應的庫
- rye - 小型 Go 語言中間件庫 ,支持 JWT, CORS, Statsd, 及 Go 1.7 context
- stats - Go 語言中間件,用於存儲web應用的多種信息
- Volatile - 極簡的go語言中間件技術棧,強調靈活性、優秀實踐及簡潔代碼
- alien - 輕量級、超快速的 HTTP 路由,來自外星科技
- Bone - 輕量級快速 Fast HTTP Multiplexer.
- Bxog - 為go語言編寫的簡單快速點 HTTP 路由。能夠配合多種不同複雜度、長度和嵌套的路由工作。同時它能夠根據接收到的參數創建 URL
- chi - 小巧、快速、具有豐富表達力的 HTTP 路由,基於net/context.
- fasthttprouter - 從
httprouter
fork出來的高性能路由,是第一個適配fasthttp
的路由 - Gocraft/web - Mux 及中間件包
- Goji - Goji 是一個極簡的、靈活的HTTP 請求數據分選器,支持
net/context
. - GoRouter - GoRouter 是一個服務器/API 微型框架、HTTP 請求路由 router, 數據分選器,提供了支持
net/context
的中間件 - Gowww/router - 超快的HTTP 路由,完全兼容 net/HTTP.Handler 接口.
- httprouter - 高性能路由。使用這個庫和標準http處理工具可以構建一個非常高性能大web框架
- httptreemux - 高速,靈活,基於樹的 HTTP 路由。受到了 httprouter 的啟發
- lars - 樹一個輕量級、快速、可擴展、零分配的HTTP路由,用於創建定製化的框架
- medeina - Medeina是一個HTTP路由樹,基於 HttpRouter 。基於 Roda 和 Cuba.
- mux - 強大的 URL 路由和分發庫
- ozzo-routing - 一個極快的go語言http路由,支持正則路由匹配。完全支持創建 RESTful APIs.
- pat - Sinatra 風格的模式 muxer ,用於go語言 net/http庫,由 Sinatra的作者編寫。
- pure - 是一個輕量級http路由,嚴格符合標準"net/HTTP"實現
- Siesta - 具有可組合性的框架,用於編寫中間件和 handlers
- vestiGo - 高性能、獨立的、符合 HTTP 標準的 URL 路由,用於構建go語言web應用
- xmux - 高性能 muxer,基於
httprouter
,支持net/context
- zeus - 非常簡單快速的http路由
Go語言軟件及插件
- apicompat - 檢測一個go語言項目最近的變化,用於監測不能向後兼容的改動
- dupl - 用於檢測重複代碼的工具
- errcheck - Errcheck 是一個用於檢測go語言程序中未處理錯誤的程序
- gcvis - 實時地將 Go 語言垃圾回收進行可視化
- Go Metalinter - Metalinter 會自動應用全部的靜態分析工具,並生成形式一致的分析報告
- Go-checkstyle checkstyle是一個代碼風格檢查工具,類似 java checkstyle 。這個工具就是受到 java checkstyle 和 Golint 的啟發
- Go-cleanarch - Go-cleanarch 用於檢查代碼是否符合簡潔架構的相關法則,比如依賴法則以及你的Go語言項目中各個庫的交互情況
- Go-outdated - 這是一個命令行程序,用於顯示過時的庫
- Goast-viewer - 基於 Web 的 Golang AST 可視化工具.
- GoCover.io - GoCover.io 可以查看任何go語言軟件包的代碼覆蓋率
- Goimports - 用於自動修復,添加,刪除你的 Go 語言項目的 import
- GoLint - Golint 是一個針對 Go 語言源碼的 lint 工具
- Golint online - 使用golint對GitHub, Bitbucket 以及 Google Project Hosting上面的 Go 語言源文件進行靜態分析
- Goreturns - 添加零值 return 語句以符合函數返回值類型
- Gosimple - Gosimple 是一個針對 Go 語言的lint工具,專注於簡化代碼
- Gostatus - 命令行工具,查看當前 Go 語言軟件包倉庫的狀態
- interfacer - 可以提供接口類型建議的 Lint 工具
- lint - 將lint作為go語言測試的一部分來執行
- staticcheck - staticcheck is
Go vet
on steroids, applying a ton of static analysis checks you might be used to from tools like ReSharper for C#. - unconvert - 從go語言代碼中移除不必要的類型轉換
- unused - unused 會檢查 Go 語言代碼中沒有用到的常量,變數,函數和類型
- validate - 自動驗證結構體類型
- Go plugin for JetBrains IDEs - JetBrains IDEs 使用的 Go 語言插件
- Go-lang-idea-plugin (廢棄) - IntelliJ (JetBrains) IDEA 之前使用的插件,現在已經被上面的官方插件所取代
- Go-mode - GNU/Emacs的 Go 語言模式
- Go-plus - 供Atom 使用的自動補全、格式化、語法檢查、lint 及 Vetting 的軟件包
- Goclipse - Eclipse 的 Go 語言插件
- Gocode - go語言自動補全
- GoSublime - SublimeText 2 使用的 Go 語言插件,支持代碼補全以及一些類似 IDE 的特性
- velour - acme 編輯器使用的 IRC 客戶端
- vim-compiler-Go - Vim插件,在保存時高亮語法錯誤
- vim-Go - Vim 使用的 Go 語言開發插件
- vscode-Go - Visual Studio Code (VS Code) 使用的一個擴展,為 Go 語言提供了支持
- Watch - 當文件變動時,在 acme 窗口中執行命令
- colorGo - 對
Go
命令進行了封裝,用於為Go build
的輸出結果添加顏色 - depth - 通過分析導入的庫,將某個包的依賴關係用樹狀結構進行顯示
- gb - 一個簡單易用的基於項目的構建工具,用於 Go 語言
- Go-callvis - 使用 dot 語言將你的 Go 語言程序函數調用關係可視化
- Go-pkg-complete - Bash 代碼補全,用於Go 和 wGo.
- Go-swagger - 為 Go 語言實現的Swagger 2.0, Swagger 是一個簡單但強大的工具,用於展示你的 RESTful API.
- OctoLinker - 使用 github 的瀏覽器插件 OctoLinker 高效瀏覽 Go 語言文件
- rts - RTS(是response to struct的縮寫)用於根據服務器的響應生成 Go 語言結構體
使用 Go 語言編寫的軟件
- aptly - aptly 是一個 Debian 庫管理工具
- aurora - 跨平台、基於web的 Beanstalkd 隊列服務器控制台
- awsenv - 加載 Amazon (AWS) 環境變數作為 profile 文件
- Banshee - 異常檢測系統,用於週期性數據測量
- bombardier - 快速的、跨平台的HTTP 基準工具.
- bosun - 時間序列告警框架
- doGo - 監控源文件中的變化並自動編譯和執行
- drone-jenkins - 觸發下游 Jenkins 任務, 可以通過二進制文件、 docker 或者 Drone CI來使用
- drone-scp - 通過 SSH 拷貝文件及可執行程序,可以通過二進制文件、 docker 或者 Drone CI來使用
- Dropship - 通過 cdn 部署代碼的工具
- easyssh-proxy - 一個用於通過 ssh 遠程執行命令以及通過
ProxyCommand
來進行 SCP 下載 - Gitea - Gogs的fork,完全社區驅動
- Go Metrics - Coda Hale 的 Metrics library的 Go 語言接口: https://github.com/codahale/metrics.
- Go-selfupdate - 讓你的 Go 語言程序可以自我更新
- Gobrew - Gobrew 讓你可以在不同版本的 Go 語言之間輕鬆切換
- Godbg - 基於 Web 的前端 gdb 應用程序
- Gogs - 自我託管的Git服務
- Gonative - 為 Go 語言創建可以在多平台進行交叉編譯的工具,使用 CGo-enabled 標準庫
- Govvv - 對“Go build”進行了封裝,用於輕鬆的向 Go 語言二進制文件中添加版本信息
- Gox - 非常簡單的 Go 語言交叉編譯工具
- Goxc - Go 語言構建工具,專注於交叉編譯和打包
- grapes - 一款輕量級工具,用於通過 ssh 發送命令
- GVM - GVM 提供了用於管理 Go 語言版本的接口
- Hey - Hey 是一個微型程序,用於向 web 應用發送一些載荷
- kala - 極簡、現代的、高效的任務調度
- kubernetes - 來自 Google 的容器集群管理器
- Moby - 為容器生態系統創建的一個合作項目,用於構建基於容器的系統
- Mora - REST 服務器,用於獲取 MonGoDB 文件和元數據
- ostent - 收集並顯示系統數據,可以作 Graphite 和/或 InfluxDB 的中繼
- Packer - Packer 通過單一的配置文件,為不同的平台創建獨立機器鏡像
- Pewpew - 靈活的 HTTP 命令行壓力測試 工具
- Rodent - Rodent 幫助你管理 Go 語言版本,項目病追蹤依賴
- s3Gof3r - 為了從 Amazon S3中高速存取大型對象而特別優化的庫
- Scaleway-cli - 通過命令行來管理 BareMetal 服務器 (和使用 Docker 一樣容易).
- sg - 對一組 HTTP 端點 (比如 ab)進行了基準測試, with possibility to use the reponse code and data between each call for specific server stress based on its previous response.
- StatusOK - 監控你的網站和 REST APIs。如果你的服務器掛了或是響應時間超過預期,則會通過 Slack, E-mail 來通知你
- Vegeta - HTTP 加載測試工具和庫
- webhook - 允許用戶創建 HTTP 端點,在服務器上執行命令
- Wide - 基於 Web 的 IDE,為使用 Go 語言的團隊設計
- winrm-cli - 命令行工具,可以遠程在 windows 機器上執行命令
- borg - 基於終端的搜索引擎,用於搜索 bash 代碼 片段
- boxed - 基於Dropbox 的博客引擎
- Cherry - Go 語言實現的一個微型網絡聊天服務器
- Circuit - Circuit 是一個可編程的 PaaS 以及 IaaS,用於管理、發現以及編排各種雲端應用的服務及主機
- Comcast - 模擬不佳的網絡連接
- confd - 使用 etcd 或 consul 的模板及數據管理本地應用的配置文件
- DDNS - 個人 DDNS 客戶端,使用 Digital Ocean DNS 作為後端
- Docker - 一個為開發者和系統管理員提供的分佈式應用開放平台
- Documize - 現代維基百科軟件,可以繼承 SaaS 工具提供的數據
- fleet - 分佈式初始化系統
- Go Package Store - 一個可以顯示你的 GoPATH 路徑下 Go 軟件包的更新的應用
- Gocc - Gocc 是一個用 Go 語言編寫的 Go 語言編輯器工具集
- GoDocTooltip - 一個Chrome 瀏覽器擴展,可以在瀏覽 Go 語言文檔時以工具提示的方式顯示函數的描述信息
- Gogland - 跨平台、全功能 Go 語言整合開發環境
- Gor - Http 流量複製工具,用於將生產環境的流量在開發環境實施重現
- hsync - 文件系統同步工具
- huGo - 快速、現代的靜態 web 引擎
- ipe - 開源 Pusher 服務器,Go 語言編寫,兼容 Pusher 客戶端,由 Go 語言編寫
- JayDiff - Go 語言編寫的JSON對比工具
- Juju - 服務部署及編排工具,,支持 EC2, Azure, Openstack, MAAS 等等
- Leaps - 結對編程服務,使用操作變換來避免衝突。
- limetext Lime Text 是一個強大又優雅的編輯器,主要使用 Go 語言開發,意在成為 Sublime Text的繼承者。
- LiteIDE - LiteIDE 是一個簡單、開源、跨平台的 Go 語言 IDE
- mockingjay - 偽 HTTP 服務器,通過單一配置文件創建消費驅動。同時你還可以讓服務器搞點事情,以進行更加符合現實情況的性能測試
- myLG - Go 語言編寫的命令行網絡診斷工具
- naclpipe - 簡單的基於NaCL EC25519 的加密管道工具
- nes - Go 語言編寫的任天堂娛樂系統(NES)模擬器
- orange-cat - Go 語言編寫的 Markdown 預覽工具
- peg - Peg(Parsing Expression Grammar)是一個 Packrat parser generator 的實現
- Postman - 一個批量發送郵件的命令行工具
- restic - 解耦備份程序
- rkt - App 容器運行時,整合了初始化系統,和其他容器兼容,比如 Docker,並且支持其他執行引擎,例如 KVM
- Seaweed File System - 快速、簡單、可擴展的分佈式文件系統,具有O(1)的磁碟查找效率
- shell2http - 通過 HTTP 服務器執行 shell 命令行(用於原型驗證或遠程控制).
- snap - 強大的遙測框架
- Stack Up - Stack Up 是一個超級簡單的開發工具,就好比是服務器網絡的 ‘make’ 工具
- syncthing - 開源、去中心化的文件同步工具和協議
- Tenyks - 面向服務的 IRC 機器人,使用 Redis 和 JSON 來發送消息
- toto - Go 語言編寫的簡單代理服務器,可以和瀏覽器一起使用
- toxiproxy - 模擬網絡和系統狀態的代理,用於自動化測試
- tsuru - 可擴展的、開源的 SAAS 軟件
- vFlow - 高性能、可擴展、可靠的 IPFIX, sFlow 和 Netflow 集合.
- websysd - 基於 web 的進程管理工具(類似 Marathon 或 Upstart).
- wellington - Sass 項目管理工具, 通過支持一些功能(例如Compass)擴展了這門語言
可以找到新的 Go 語言庫和軟件的地方
- autobench - 用於比較各個不同版本 Go 語言之間的性能的框架
- Go-benchmark-app - 強大的 HTTP 基準測試工具,整合來 Аb, Wrk, Siege 工具。收集來統計數據以及多種參數用於基準測試和結果比較
- Go-benchmarks - 一些基準程序的大雜燴。用於比較一些語言特性以及它們的替代方法.
- Go-HTTP-routing-benchmark - Go HTTP 請求路由基準和比較
- Go-type-assertion-benchmark - 對在 Go 語言中使用斷言的兩種方法進行了性能測試
- Go-web-framework-benchmark - Go web 框架基準
- Go_serialization_benchmarks - Go 語言序列化方法基準測試
- Gocostmodel - Go 語言基礎操作基準測試
- Golang-micro-benchmarks - 一些go語言微基準測試的集合,目的是比較各種語言特性。
- Golang-sql-benchmark - 對一些流行的 Go database/SQL 工具進行基準測試
- Gospeed - Go 語言微型基準測試工具,用於測試語言結構的速度
- kvbench - 鍵值數據庫基準測試
- skynet - Skynet 1M 線程微基準
- speedtest-resize - 比較了 Go 語言的多種圖片縮放算法
- Capital Go - 美國華盛頓
- dotGo - 法國巴黎
- GoCon - 日本東京
- GolangUK - 英國倫敦
- GopherChina - 中國上海
- GopherCon - 美國丹佛
- GopherCon Brazil - 巴西弗洛里亞諾波利斯
- GopherCon Dubai - 迪拜
- GopherCon India - 印度普納
- GopherCon Singapore - 新加坡豐樹商業城
- GothamGo - 美國紐約
- A Go Developer's Notebook
- An Introduction to Programming in Go
- Build Web Application with Golang
- Building Web Apps With Go
- Go Bootcamp
- GoBooks - Go 語言書籍列表
- Learning Go
- Network Programming With Go
- The Go Programming Language
- Web Application with Go the Anti-Textbook
- Awesome Go @LibHunt - Your Go-to Go Toolbox.
- Awesome Remote Job - 一個發佈遠程工作的列表。上面有很多人都在尋找 Go 語言程序員
- awesome-awesomeness - 彙集了其他 Awesome 系列列表的聚合列表
- Flipboard - Go Magazine - 彙集了 Go 語言的教程和文章
- Go Blog - Go 語言官方博客
- Go Challenge - 通過解題來學習 Go 語言,同時獲得專家們的反饋
- Go Forum - 討論 Go 的論壇.
- Go In 5 Minutes - 5 分鐘分享如何做好一件事
- Go Projects - Go 語言社區 wiki 列表中的項目
- Gocryforhelp - 彙集了一些需要幫助的 Go 語言項目。一個開始你的開源之路的好地方
- Godoc.org - 開源 Go 語言軟件包的文檔庫.
- Golang Flow - 不斷更新的博客、新聞、軟件等等
- Golang News - 關於 Go 語言編程的一些連結.
- Golang-graphics - 關於 Go 語言的圖片及藝術作品
- Golang-nuts - Go 郵件列表
- Google Plus Community - Go 語言愛好者的 Google+ 社區
- Gowalker.org - Go 語言項目 API 文檔
- r/Golang - Go 語言新聞
- Trending Go repositories on GitHub today - 一個尋找 Go 語言新庫和軟件的好地方
- A Tour of Go - 一個交互式的 Go 語言教程
- Build web application with Golang - Go 語言電子書,講解如何編寫一個 web 應用
- Building Go Web Applications and Microservices Using Gin - 學習 Gin 以及瞭解如何使用 Gin 幫你減少模板代碼並建立一個請求處理流水線
- Go By Example - 通過帶註解的常式幫助你動手實踐學習 Go 語言
- Go Cheat Sheet - Go 參考手冊
- Go database/sql tutorial - 介紹數據庫及 sql
- Golangbot - Go 語言初學者教程
- How to Use Godog for Behavior-driven Development in Go - 學習使用 Godog — 一個行為驅動型開發框架,用於構建和測試 Go 語言應用
- Working with Go - 為有經驗的程序員提供的 Go 語言教程