go語言教程哪裡有?go 語言優秀開源專案彙總

QF董懂發表於2019-04-11

 目錄

監控系統

專案簡介
OpenFalconOpenFalcon是一款小米開源的監控系統。功能:資料採集免配置:agent自發現、支援Plugin、主動推送模式; 容量水平擴充套件:生產環境每秒50萬次資料收集、告警、儲存、繪圖,可持續水平擴充套件。告警策略自發現:Web介面、支援策略模板、模板繼承和覆蓋、多種告警方式、支援回撥動作。告警設定人性化:支援最大告警次數、告警級別設定、告警恢復通知、告警暫停、不同時段不同閾值、支援維護週期,支援告警合併。歷史資料高效查詢:秒級返回上百個指標一年的歷史資料。Dashboard人性化:多維度的資料展示,使用者自定義Dashboard等功能。架構設計高可用:整個系統無核心單點,易運維,易部署。
banshee週期性指標的監控系統.
KapacitorKapacitor 是一個開源框架,用來處理、監控和警告時間序列資料。
PomePome 是 Postgres Metrics 的意思。Pome 是一個 PostgreSQL 的指標儀表器,用來跟蹤你的資料庫的健康狀況。
pingdpingd 是世界上最簡單的監控服務,使用 golang 編寫。軟體支援 IPv6,但是伺服器不支援. pingd 允許同時 ping 上千個 IPs,在此期間還可以管理監控的主機。使用者提供主機名或者 IP,還有使用者郵箱地址,就可以使用 3 個生成 URLs 來開啟,停止或者刪除你的追蹤。每當你的伺服器停機或者後臺線上都會傳送通知,還包含控制 URLs。
actiontech zabbix mysql monitorpercona monitoring plugins zabbix 的 Go 語言版本,是由 愛可生 公司開源的 MySQL 監控外掛和模板,整合上百個效能監控指標,支援Low Level Discovery 自動發現多例項環境,支援performance_schema
rtoptop 是一個簡單的無代理的遠端伺服器監控工具,基於 SSH 連線進行工作。無需在被監控的伺服器上安裝任何軟體。rtop 直接通過 SSH 連線到待監控伺服器,然後執行命令來收集監控資料。rtop 每幾秒鐘就自動更新監控資料,類似其他 *top 命令
PrometheusPrometheus 是一個開源的服務監控系統和時間序列資料庫, 提供監控資料儲存,展示,告警等功能
bosun專業的跨平臺開源系統監控專案,go語言編寫,靈活的模板和表示式配合上各種collector可以監控任何應用或系統級的執行資料,比 zabbix更輕量級、更易入手和更適合定製。
urlooker監控web服務可用性及訪問質量,採用go語言編寫,易於安裝和二次開發. 支援一下特性: 返回狀態碼檢測; 頁面響應時間檢測; 頁面關鍵詞匹配檢測; 帶cookie訪問; agent多機房部署,指定機房訪問; 檢測結果支援向open-falcon推送; 支援簡訊和郵件告警
satellite用於監測kubernetes健康狀態的一個工具/庫。 其特點是:輕量級定期測試, 高可用性和彈性網路分割槽, 無單點故障, 以時間序列的格式儲存監控資料。
checkup一個分散式的無鎖的站點健康狀態檢查工具。 支援檢查http, tcp, dns等的狀態 並可將結果儲存在s3。 自帶了一個美觀的介面。
zabbixctlZabbixctl 是採用Zabbix服務API的命令列工具,它提供了有效的方式去查詢和處理trigger 狀態、主機最新資料和使用者組。
cloudinsight-agent提供視覺化監控的saas平臺cloudinsight開源的一個監控客戶端。 Cloudinsight 探針可以收集它所在作業系統的各種指標,然後傳送到 Cloudinsight 後端服務
owlOWL是TalkingData公司推出的一款開源分散式監控系統, 演示環境http://54.223.127.87/, 登入賬號密碼demo/demo
SmartPingSmartPing為一個各機器(點)間間互PING檢測工具,支援互PING,單向PING,繪製拓撲及報警功能。 系統設計為無中心化原則,所有的資料均儲存自身點中,預設資料迴圈保留1個月時間,由自身點的資料繪製 出PING包 的狀態,由各其他點的資料繪製 進PING包 的狀態,並API介面獲取其他點資料繪製整體PING拓撲圖,拓撲圖中存在報警功能。
GrafanaGrafana 是一個用於監控指標分析和圖表展示的工具, 後端支援 Graphite, InfluxDB & Prometheus & Open-falcon等, 它是一個流行的監控元件, 目前在各大中小型公司中廣泛應用

容器技術

專案簡介
PouchPouch 是 Alibaba 公司開源的容器引擎技術,其主要功能包括基本的容器管理能力,安全穩定的強容器隔離能力,以及對應用無侵入性的富容器技術。
SwarmKitSwarmKit 是Docker公司開源的Docker叢集管理和容器編排工具,其主要功能包括節點發現、基於raft演算法的一致性和任務排程等。
DaoliNetDaoliNet是一個軟體定義網路(SDN)系統,其設計目的是為Docker容器提供動態、高效的連結。在Docker容器中,微服務工作負載具有輕量且短暫的性質,DaoliNet恰好適用於這種性質。
Harbor容器應用的開發和執行離不開可靠的映象管理。從安全和效率等方面考慮,部署在私有環境內的Registry是非常必要的。Project Harbor是由VMware公司中國團隊為企業使用者設計的Registry server開源專案,包括了許可權管理(RBAC)、LDAP、審計、管理介面、自我註冊、HA等企業必需的功能,同時針對中國使用者的特點,設計映象複製和中文支援等功能
REX-RayREX-Ray 是一個 EMC {code} 團隊領導的開源專案,為 Docker、Mesos 及其他容器執行環境提供持續的儲存訪問。其設計旨在囊括通用儲存、虛擬化和雲平臺,提供高階的儲存功能。
ClairClair 是一個容器漏洞分析服務。它提供一個能威脅容器漏洞的列表,並且在有新的容器漏洞釋出出來後會傳送通知給使用者。
WeaveWeave 建立一個虛擬網路並連線到部署在多個主機上的 Docker 容器。
RocketRocket (也叫 rkt)是 CoreOS 推出的一款容器引擎,和 Docker 類似,幫助開發者打包應用和依賴包到可移植容器中,簡化搭環境等部署工作。Rocket 和 Docker 不同的地方在於,Rocket 沒有 Docker 那些為企業使用者提供的“友好功能”,比如雲服務加速工具、叢集系統等。反過來說,Rocket 想做的,是一個更純粹的業界標準。
libnetworkLibnetwork 提供一個原生 Go 實現的容器連線,是容器的網路。libnetwork 的目標是定義一個健壯的容器網路模型(Container Network Model),提供一個一致的程式設計介面和應用程式的網路抽象。
WormholeWWormhole 是一個能識別名稱空間的由 Socket 啟用的隧道代理。可以讓你安全的連線在不同物理機器上的 Docker 容器。可以用來完成一些有趣的功能,例如連線執行在容器本機的服務或者在連線後建立按需的服務。
ShipyardShipyard 是一個基於 Web 的 Docker 管理工具,支援多 host,可以把多個 Docker host 上的 containers 統一管理;可以檢視 images,甚至 build images;並提供 RESTful API 等等。 Shipyard 要管理和控制 Docker host 的話需要先修改 Docker host 上的預設配置使其支援遠端管理。
DockerDocker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然後釋出到任何流行的 Linux 機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何介面(類似 iPhone 的 app)。幾乎沒有效能開銷,可以很容易地在機器和資料中心中執行。最重要的是,他們不依賴於任何語言、框架或包裝系統。
scope一個docker&kubernetes的管理,監控視覺化工具, 可以看到容器間的拓撲關係和tcp通訊
habitus一個快速實現docker build 流程的工具, 支援複雜的docker build流程,實現多個dockerfile的build流程,典型應用如將需要靜態編譯的程式,如go, java這類程式在一個docker build編譯好之後,得到的二進位制包用到後續的build流程
sextantsextant 提供了可以通過PXE全自動化安裝初始化一個CoreOS+kubernetes叢集。
KubeVirtKubeVirt 是一個圍繞 Kubernetes 構建的虛擬機器管理架構。使用 KubeVirt 可宣告:建立預定義的 VM,在 Kubernetes 叢集上排程 VM(啟動 VM,停止 VM,刪除 VM)|

PaaS工具

專案簡介
KelKel 是一個開源的基於 Kubernetes 構建的 PaaS 系統,採用 Python 和 Go 語言開發。Kel 可簡化管理 Web 應用釋出和託管整個軟體生命週期。Kel 幫助開發和運維人員輕鬆管理他們的應用架構,通過一組工具和元件讓 K8S 使用非常簡單。
CloudFoundry-MesosCloud Foundry-Mesos框架由華為與Mesosphere的工程師合作完成,能夠為應用提供安全可靠的、可伸縮、可擴充套件的雲端執行環境,並且應用能夠 享用Cloud Foundry生態圈內各類豐富的服務資源。企業能夠通過Cloud Foundry開發雲應用,並通過Cloud Foundry-Mesos將應用部署到DCOS上,使應用能夠與DCOS上安裝的其他服務及應用框架共享資源,實現資源利用率最大化,能夠大幅降低企業 資料中心運營成本。DCOS能夠執行在虛擬和物理環境上,能夠支援Linux(以及很快支援Windows),並可適用於私有云、公有云及混合雲環境。
FlynnFlynn 是一個開源的 PaaS 系統,由 Docker 開發。採用 Go 語言編寫。支援資料庫包括 Postgres、Redis 和 MongoDB. Flynn 使用完全元件化模組化的設計,任何一個元件和模組都可以獨立的進行替換。
DINPDINP是又一個基於Docker開發的PaaS平臺。
KubernetesKubernetes 是來自 Google 雲平臺的開源容器叢集管理系統。基於 Docker 構建一個容器的排程服務。該系統可以自動在一個容器叢集中選擇一個工作容器供使用。其核心概念是 Container Pod。
Tsuru在 Tsuru 的 PaaS 服務下,你可以選擇自己的程式語言,選擇使用 SQL 或者 NoSQL 資料庫,memcache、redis、等等許多服務,甚至與你可以使用 Git 版本控制工具來上傳你應用。
atlantisAtlantis 是一款基於 Docker,使用 Go 編寫,為 HTTP 應用準備的開源 PaaS。Atlantis 可以在路由請求中輕鬆的構建和部署應用到容器。Atlantis 在 Ooyala 的新應用中得到了很廣泛的應用。
lainLain 是一個基於 docker 的 PaaS 系統。其面向技術棧多樣尋求高效運維方案的高速發展中的組織,devops 人力缺乏的 startup ,個人開發者。統一高效的開發工作流,降低應用運維複雜度;在 IaaS / 私有 IDC 裸機的基礎上直接提供應用開發,整合,部署,運維的一攬子解決方案。
OpenDCPOpenDCP是一個基於Docker的雲資源管理與排程平臺,集映象倉庫、多雲支援、服務編排、服務發現等功能與一身,支援服務池的擴縮容,其技術體系源於微博用於支援節假日及熱點峰值流量的彈性排程DCP系統。OpenDCP允許利用公有云伺服器搭建起適應網際網路應用的IT基礎設施,並且將運維的工作量降到最低。
SwanSwan 是一個基於 mesos 的新 HTTP API,使用 golang 開發。你可以使用 swan 在 mesos 叢集上部署應用程式,並管理應用程式的整個生命週期,還可以使用新版本進行滾動更新,擴充套件應用程式,並且可以在應用程式或服務不可用時對應用程式和自動故障轉移進行執行狀況檢查。

大資料&ML

專案簡介
MLF彌勒佛專案是一個大資料機器學習框架。具有為處理大資料優化,可隨業務增長scale up,模型的訓練和使用都可以作為library或者service整合到在生產系統中,具有豐富的模型,高度可擴充套件,高度可讀性,適合初學者進行大資料模型的學習等特點
Glowglow 是使用 Go 編寫的易用分散式計算系統,是 Hadoop Map Reduce,Spark,Flint,Samza 等等的替代品。Glow 的目標是提供一個庫,可以在並行執行緒或者分散式叢集機器中進行更簡單計算。
goml機器學習的庫, 包含了許多工具,能讓你以線上方式學習其頻道的資料內容。
GolearnGoLearn實現了熟悉的Scikit-learn 適應/預測介面,可實現快速預估測試和交換。GoLearn是一個成熟的專案,它提供了交叉驗證和訓練/測試等輔助功能。
Gorgonia這個機器學習資料庫完全是用Go語言編寫而成,據其開發者“chewxy”稱能“ 提供動態建立神經網路及相關演算法必需條件 。”
poseidonPoseidon 系統是一個日誌搜尋平臺,可以在數百萬億條、數百PB大小的日誌資料中快速分析和檢索特定字串。該系統可以應用於任何結構化或非結構化海量(從萬億到千萬億規模)資料的查詢檢索需求)。

微服務

專案簡介
microMicro是一個專注於簡化分散式系統開發的微服務生態系統。可插拔的外掛化設計,提供強大的可插拔的架構來保證基礎元件可以被靈活替換。
kite一個基於go語言的微服務框架, Kite是Koding公司內部的一個框架, 該框架提供服務發現,多種認證功能,服務端通過RPC進行通訊,同時還提供了websocket的js庫,方便瀏覽器於伺服器間進行通訊。
goaGoa 是一款用 Go 用於構建微服務的框架,採用獨特的設計優先的方法。
Go-kitGo-kit 是一個 Go 語言的分散式開發包,用於開發微服務。
HproseHprose 是高效能遠端物件服務引擎(High Performance Remote Object Service Engine)的縮寫 —— 微服務首選引擎。它是一個先進的輕量級的跨語言跨平臺物件導向的高效能遠端動態通訊中介軟體。它不僅簡單易用,而且功能強大。你只需要稍許的時間去學習,就能用它輕鬆構建跨語言跨平臺的分散式應用系統了。
Gizmo紐約時報開源的go微服務工具.提供如下特性:標準化配置和日誌;可配置策略的狀態監測端點;用於管理 pprof 端點和日誌級別的配置;結構化日誌,提供基本請求資訊;端點的有用度量;優雅的停止服務; 定義期待和詞彙的基本介面
hystrix-go用來隔離遠端系統呼叫, 第三方庫呼叫 ,服務呼叫, 提供熔斷機制,避免雪崩效應的庫, Hystrix的go 版本。 注Hystrixs是Netflix開源的一個java庫
gatewayGateway是一個使用go實現的基於HTTP的API 閘道器。特性 :API 聚合 ; 流控; 熔斷; 負載均衡; 健康檢查; 監控; 訊息路由; 後端管理WebUI . 能做什麼:規劃更友好的URL給呼叫者。聚合多個API的結果返回給API呼叫者,利於移動端,後端可以實現原子介面。保護後端API服務不會被突發異常流量壓垮。提供熔斷機制,使得後端API Server具備自我恢復能力。藉助訊息路由能力,實現灰度釋出,AB測試。
fabiofabio 是 ebay 團隊用 golang 開發的一個快速、簡單零配置能夠讓 consul 部署的應用快速支援 http(s) 的負載均衡路由器。這裡有一篇中文文章dockone.io/article/156… 最後還有demo程式
appdashgo版本的分散式應用跟蹤系統, 基於google dapper的原理構建
JaegerJaeger是Uber的分散式跟蹤系統 ,基於google dapper的原理構建, 以Cassandra作為儲存層
Rainbond雲幫是一款以應用為中心的開源PaaS,深度整合Kubernetes的容器管理和Service Mesh微服務架構最佳實踐,滿足支撐業務高速發展所需的敏捷開發、高效運維和精益管理需求
istioIstio是由Google、IBM和Lyft開源的微服務管理、保護和監控框架。使用istio可以很簡單的建立具有負載均衡、服務間認證、監控等功能的服務網路,而不需要對服務的程式碼進行任何修改。

CI/CD

專案簡介
CycloneCyclone 是一個打造容器工作流的雲原生持續整合持續釋出平臺,簡單易用,使用 Go 語言開發,有詳盡的中文文件
DroneDrone 是一個基於 Docker 的持續釋出平臺,使用 Go 語言開發

資料庫技術

專案簡介
LedisDBledisdb是一個參考ssdb,採用go實現,底層基於leveldb,類似redis的高效能nosql資料庫,提供了kv,list,hash以及zset資料結構的支援。
BuntDB是純Go開發的、低層級的(low-level)的、可嵌入的key/value記憶體資料庫(IMDB),資料持久化儲存,遵從ACID,支援自定義索引和geospatial 資料。
CockroachCockroachDB (蟑螂資料庫)是一個可伸縮的、支援地理位置處理、支援事務處理的資料儲存系統。CockroachDB 提供兩種不同的的事務特性,包括快照隔離(snapshot isolation,簡稱SI)和順序的快照隔離(SSI)語義,後者是預設的隔離級別。
qb-goqb是用來讓使更容易使用資料庫的go語言的資料庫工具包。它受Python最喜歡的ORM SQLAlchemy的啟發,既是一個ORM,也是一個查詢生成器。它在表達api和查詢構建東西的情形下是相當模組化的。
GoshawkDBGoshawkDB 是一個採用 Go 語言開發支援多平臺的分散式的物件儲存服務,支援事務以及容錯。GoshawkDB 的事務控制是在客戶端完成的。GoshawkDB 伺服器端使用 AGPL 許可,而 Go 語言客戶端使用 Apache 許可證
CodisCodis 是一個分散式 Redis 解決方案, 對於上層的應用來說, 連線到 Codis Proxy 和連線原生的 Redis Server 沒有明顯的區別 (不支援的命令列表), 上層應用可以像使用單機的 Redis 一樣使用, Codis 底層會處理請求的轉發, 不停機的資料遷移等工作, 所有後邊的一切事情, 對於前面的客戶端來說是透明的, 可以簡單的認為後邊連線的是一個記憶體無限大的 Redis 服務.
CayleyCayley 是 Google 的一個開源圖(Graph)資料庫,其靈感來自於 Freebase 和 Google 的 Knowledge Graph 背後的圖資料庫。
RedigoRedigo 是 Redis 資料庫的 Go 客戶端。
radix.v2radix.v2是redis官方推薦的客戶端之一,相比於redigo,radix.v2特點是輕量、介面實現優雅、API友好
redis-go-clusterredis-go-cluster 是基於 Redigo 實現的 Golang Redis 客戶端。redis-go-cluster 可以在本地快取 slot 資訊,並且當叢集修改的時候會自動更新。此客戶端管理每個節點連線池,使用 goroutine 來儘可能的併發執行,達到了高效,低延遲。
elasticelastic是開源搜尋引擎elasticsearch的golang客戶端,API友好,支援絕大部分es的介面,支援的es版本全面,從1.x到最新的6.x全覆蓋
Dgraphdgraph 是可擴充套件的,分散式的,低延遲圖形資料庫。DGraph 的目標是提供 Google 生產水平的規模和吞吐量,在超過TB的結構資料裡,未使用者提供足夠低延遲的實時查詢。DGraph 支援 GraphQL 作為查詢語言,響應 JSON。
DegDBDegDB 是分散式的經濟圖資料庫。
Vitessoutube出品的開源分散式MySQL工具集Vitess,自動分片儲存MySQL資料表,將單個SQL查詢改寫為分散式傳送到多個MySQL Server上,支援行快取(比MySQL本身快取效率高),支援複製容錯,已用於Youtube生產環境
xuncachexuncache 是免費開源的NOSQL(記憶體資料庫) 採用golang開發,簡單易用而且 功能強大(就算新手也完全勝任)、效能卓越能輕鬆處理海量資料,可用於快取系統.
pgwebgweb 是一個採用 Go 語言開發的基於 Web 的 PostgreSQL 管理系統。
OrchestratorMySQL 複製拓撲視覺化工具
mysql-schema-syncmysql-schema-sync 是一款使用go開發的、跨平臺的、綠色無依賴的 MySQL 表結構自動同步工具。用於將線上(其他環境)資料庫結構變化同步到測試(本地)環境!
TiDBTiDB 是國內 PingCAP 團隊開發的一個分散式 SQL 資料庫。其靈感來自於 Google 的 F1, TiDB 支援包括傳統 RDBMS 和 NoSQL 的特性。
kingshard一個高效能的mysql中介軟體, 支援讀寫分離, 資料分片, 安全審計等功能
influxdb一個可以水平擴充套件的時間序列資料庫, 內建http api, 支援對資料打tag,靈活的查詢策略和資料的實時查詢,支援類sql語句進行查詢
DBShieldDBShield 是用 Go 語言開發的資料庫防火牆,用來保護你的資料免受 SQL 注入的侵擾。支援的資料庫包括:DB2、MySQL、MariaDB、Oracle、PostgreSQL。

儲存技術

專案簡介
TorusTorus是一種針對容器叢集量身打造的儲存系統,可以為通過Kubernetes編排和管理的容器叢集提供可靠可擴充套件的儲存。這是繼etcd、rkt、flannel,以及CoreOS Linux之後CoreOS釋出的另一個開源產品。
AferoAfero 是一個檔案系統框架,提供一個簡單、統一和通用的 API 和任何檔案系統進行互動,作為抽象層還提供了介面、型別和方法。Afero 的介面十分簡潔,設計簡單,捨棄了不必要的建構函式和初始化方法。Afero 作為一個庫還提供了一組可互動操作的後臺檔案系統,這樣在與 Afero 協作時,還可以保留 os 和 ioutil 軟體包的功能和好處。
REX-RayREX-Ray 是一個 EMC {code} 團隊領導的開源專案,為 Docker、Mesos 及其他容器執行環境提供持續的儲存訪問。其設計旨在囊括通用儲存、虛擬化和雲平臺,提供高階的儲存功能。
SeaweedFSSeaweedFS 是簡單,高伸縮性的分散式檔案系統,包含兩部分:儲存數十億的檔案;快速為檔案服務。SeaweedFS 作為支援全 POSIX 檔案系統語義替代,Seaweed-FS 選擇僅實現 key-file 的對映,類似 “NoSQL",也可以說是 "NoFS"。
bfsbfs 是使用 Go 編寫的分散式檔案系統(小檔案儲存)。
IPFSIPFS 是分散式檔案系統,尋求連線所有計算機裝置的相同檔案系統。在某些方面,這很類似於原始的 Web 目標,但是 IPFS 最終會更像單個位元流群交換的 git 物件。IPFS = InterPlanetary File System
GotgtGotgt 是使用 Go 編寫的高效能、可擴充套件的 iSCSI target 服務。

分散式系統

專案簡介
ConfdConfd是一個輕量級的配置管理工具。通過查詢Etcd,結合配置模板引擎,保持本地配置最新,同時具備定期探測機制,配置變更自動reload。
zerg基於docker的分散式爬蟲服務
DoormanDoorman 是一個客戶端速率限制的解決方案,客戶端與共享資源進行通訊,包括資料庫、gRPC 服務、RESTful API 等等可使用 Doorman 來限制對資源的呼叫。Doorman 使用 Go 語言開發,使用 gRPC 的通訊協議。其高可用特性需要一個分散式的鎖管理器,當前支援 etcd,也可使用 Zookeeper 替代。
mgmtmgmt 是一個分散式的,事件驅動的配置管理工具。該工具支援並行執行,其 librarification 作為新的及已存在的軟體的基礎管理工具。
YokeYoke 是 Postgres 的高可用叢集,具有自動切換和自動叢集恢復。Postgres冗餘/自動故障轉移解決方案,提供一個高可用PostgreSQL叢集的簡單管理。
SeaweedFSSeaweedFS 是簡單,高伸縮性的分散式檔案系統,包含兩部分:儲存數十億的檔案;快速為檔案服務。SeaweedFS 作為支援全 POSIX 檔案系統語義替代,Seaweed-FS 選擇僅實現 key-file 的對映,類似 "NoSQL",也可以說是 "NoFS"。
GlowGlow 是使用 Go 編寫的易用分散式計算系統,是 Hadoop Map Reduce,Spark,Flint,Samza 等等的替代品。Glow 的目標是提供一個庫,可以在並行執行緒或者分散式叢集機器中進行更簡單計算。
NomadNomad 是一個叢集管理器和排程器,專為微服務和批量處理工作流設計。Nomad 是分散式,高可用,可擴充套件到跨資料中心和區域的數千個節點。
dcmpDCMP是分散式配置管理平臺。提供了一個etcd的管理介面,可通過介面修改配置資訊,藉助confd可實現配置檔案的同步。
gleam此處是一個通過Go和LuaJIT編寫的快速和可擴充套件的分散式map/reduce系統,很好的將Go的高併發性與Luajit高效能相結合,可獨立執行或用於分散式計算。

訊息系統

專案簡介
KiteQKiteQ 是一個基於 go + protobuff 實現的多種持久化方案的 mq 框架(訊息佇列)。
NSQNSQ 是無中心設計、節點自動註冊和發現的開源訊息系統。可作為內部通訊框架的基礎,易於配置和釋出。
kingtaskkingtask是一個由Go開發的輕量級的非同步定時任務系統。支援定時的非同步任務。 支援失敗重試機制,重試時刻和次數可自定義。 任務執行結果可查詢。
Go MachineryMachinery 是一個 Go 語言的非同步任務佇列和作業佇列,基於分散式訊息傳遞。類似 Python 的 Celery 框架。
kacakaca 是用 golang 語言開發的基於 websocket 協議的訊息釋出/訂閱系統。

伺服器管理

專案簡介
SharkeySharkey 是OpenSSH管理證照使用的服務。Sharkey 分為客戶端元件和服務端元件,服務端負責釋出已簽署的主機證照,客戶端負責在機器上安裝主機證照。
OSinstallCloudBoot”(OSinstall)雲裝機平臺,是金融雲初創公司杭州雲霽科技推出的一款X86伺服器全自動裝機工具,遵循Apache協議,完全開源免費。全自動構建物理機資源池,像建立虛擬機器一樣方便的安裝物理機。
ssh2gossh2go 是對libssh的golang 封裝。libssh是SSH的程式碼庫,同時支援服務端和客戶端,日常所見的ssh, sshd, scp, sftp均基於libssh。ssh2go是對libssh的Go語言繫結, 100%的libssh介面都可用,同時整合示例,方便參考。
Gooversshgooverssh 是基於gosshtool的一個ssh開發包開發的一個基於ssh本地埠轉發服務小應用,可以方便突破一些網路限制,如通過ssh代理訪問內網資料庫服
gosshtoolgosshtool provide some useful functions for ssh client in golang.implemented using golang.org/x/crypto/ssh.go語言中提供ssh相關操作,支援ssh本地埠轉發服務
teleportteleport 是 初創公司Gravitational 的一款基於ssh和https的遠端管理linux 叢集伺服器的工具, 其特點是支援雙重校驗登陸;操作記錄回放;session共享,便於協作排障;自動發現叢集的伺服器和容器

安全工具

專案簡介
gomitmproxyGomitmProxy是想用golang語言實現的mitmproxy,主要實現http代理,目前實現了http代理和https抓包功能。
HyperfoxHyperfox 是一個安全的工具用來代理和記錄區域網中的 HTTP 和 HTTPS 通訊。
GryffinGryffin 是雅虎開發的一個大規模 Web 安全掃描平臺。它不是另外一個掃描器,其主要目的是為了解決兩個特定的問題 —— 覆蓋率和伸縮性。
ngrokngrok 是一個反向代理,通過在公共的端點和本地執行的 Web 伺服器之間建立一個安全的通道。ngrok 可捕獲和分析所有通道上的流量,便於後期分析和重放。

網路工具

專案簡介
DaoliNetDaoliNet是一個軟體定義網路(SDN)系統,其設計目的是為Docker容器提供動態、高效的連結。在Docker容器中,微服務工作負載具有輕量且短暫的性質,DaoliNet恰好適用於這種性質。
SeesawSeesaw 是 Google 開源的一個基於 Linux 的負載均衡系統。Seesaw 包含基本的負載均衡特性,同時支援一些高階的功能,諸如:anycast, Direct Server Return (DSR), 支援多個 VLANs 和集中式配置。同時其設計的宗旨是易於維護。需要注意的是,儘管該專案掛靠在 Google 名下,但並非 Google 官方產品。
TcpRoute2TcpRoute, TCP 層的路由器。對於 TCP 連線自動從多個線路(允許任意巢狀)、多個域名解析結果中選擇最優線路。TcpRoute2 是 golang 重寫的版本。通過 socks5 代理協議對外提供服務。代理功能拆分成了獨立的庫,詳細代理url格式級選項請參見 ProxyClient,目前支援直連、socks4、socks4a、socks5、http、https、ss 代理線路
GorGor 是用 Go 編寫的簡單 HTTP 流量複製工具,主要是為了從生產伺服器返回流量到開發環境。使用 Gor 可以在實際的使用者會話中測試程式碼。
TraefikTræfɪk 是一個新型的http反向代理、負載均衡軟體,能輕易的部署微服務. 它支援多種後端 (Docker, Swarm, Mesos/Marathon, Consul, Etcd, Zookeeper, BoltDB, Rest API, file…) ,可以對配置進行自動化、動態的管理.
TChannelTChannel 是用於 RPC 的網路複用和成幀協議。
go-tcp-proxygo-tcp-proxy是一個簡單的tcp代理, 可以用於tcp埠轉發, 也可以用做http代理使用
myLGmyLG是一個開源的網路工具集,它包含了很多不同型別的網路診斷工具, 功能包括ping,trace, bgp, dns lookup, 埠掃描, 區域網網路發現,提供web介面, tcpdump等
cowCOW 是一個簡化穿牆的 HTTP 代理伺服器。它能自動檢測被牆網站,僅對這些網站使用二級代理;支援多種協議:sock5、http、shadow、cow

Web工具

專案簡介
TykTyk 是一個開源的、輕量級的、快速可伸縮的 API 閘道器,支援配額和速度限制,支援認證和資料分析,支援多使用者多組織,提供全 RESTful API。
Shortme用Golang編寫的URL短連結服務。
WuKongSearchWuKong 是一個全文搜尋引擎。功能特性有:高效索引和搜尋(1M條微博500M資料28秒索引完,1.65毫秒搜尋響應時間,19K搜尋QPS);支援中文分詞(使用sego分詞包併發分詞,速度27MB/秒);支援計算關鍵詞在文字中的緊鄰距離(token proximity);支援計算BM25相關度;支援自定義評分欄位和評分規則;支援線上新增、刪除索引;支援持久儲存;可實現分散式索引和搜尋等
PholcusPholcus(幽靈蛛)是一款純Go語言編寫的高併發、分散式、重量級爬蟲軟體,支援單機、服務端、客戶端三種執行模式,擁有Web、GUI、命令列三種操作介面;規則簡單靈活、批量任務併發、輸出方式豐富(mysql/mongodb/csv/excel等)、有大量Demo共享;同時她還支援橫縱向兩種抓取模式,支援模擬登入和任務暫停、取消等一系列高階功能。
CodetainerCodetainer 可以讓你建立基於瀏覽器上的程式碼執行沙箱,可方便的嵌入到你的 Web 應用中。你可以把它當成是 codepicnic.com 的開源克隆) .
GoTTYGoTTY 是個簡單的命令列工具,可以把 CLI 工具共享成 Web 應用。GoTTY 可以把終端作為 Web 應用共享。
TermUIGo語言編寫的終端儀表盤
Hound快如閃電的程式碼搜尋開源工具
goimgoim 是一個支援叢集的im及實時推送服務(支援websocket,http和tcp協議)
fasthttpasthttp 是 Go 的快速 HTTP 實現,當前在 1M 併發的生產環境使用非常成功,可以從單個伺服器進行 100K qps 的持續連線。HTTP 伺服器效能與 net/http 比較,fasthttp 比 net/http 快 10 倍
netgraphnetgraph 是一個 Go 語言編寫的跨平臺的 B/S 架構的 HTTP 抓包工具,方便在 Linux 伺服器上直接檢視 HTTP 包。
gohttpgohttp是一個http的檔案伺服器,功能有:各種檔案的預覽功能,實時的目錄zip打包下載,二維碼掃描下載的支援,蘋果應用的線上安裝,檔案上傳等
API-frontAPI front是 HTTP API 前端,可進行請求代理轉發、協議抓包分析、流量複製。主要是用於開發測試環境,用來解決開發測試環境多變等問題
esumable file uploads實現檔案上傳的斷點續傳功能, 整套功能包含了協議實現,client, server。 client及server有多種語言的實現包括go, python, node等|
pproxyhttp抓包代理程式,http協議除錯工具
hystrix-go用來隔離遠端系統呼叫, 第三方庫呼叫 ,服務呼叫, 提供熔斷機制,避免雪崩效應的庫, Hystrix的go 版本。 注Hystrixs是Netflix開源的一個java庫

Web框架

專案簡介
Iris-Go通過Iris-Go,可以方便的幫助你來開發基於web的應用。簡單來說:Iris-Go與國內大牛的BeeGo類似,但從其官方介紹的資料來看,Iris-Go的效能更優!
BaaBaa 一個簡單高效的Go web開發框架。主要有路由、中介軟體,依賴注入和HTTP上下文構成。
OrivilOrivil 是由 golang 開發的全新 web 框架,靈感來源於 Laravel 及 Symfony。
ecgoecgo 是一個易學、易用、易擴充套件的go web開發框架
GinGin 是一個用 Go 語言開發的 Web 框架,提供類 Martini 的 API,但是效能更好。因為有了 httprouter 效能提升了 40 倍之多。
MelodyMelody 是一個 Go 語言的微型 WebSocket 框架,基於 github.com/gorilla/websocket 開發,
utronutron 是一個 Go 語言輕量級的 MVC 框架,用於快速構建可伸縮以及可靠的資料庫驅動的 Web 應用。
LessgoLessgo 是一款 Go 語言編寫的簡單、穩定、高效、靈活的 web 完全開發框架。它的專案組織形式經過精心設計,實現前後端分離、系統與業務分離,完美相容MVC與MVVC等多種開發模式,非常利於企業級應用與API介面的開發。當然,最值得關注的是它突破性地支援了執行時路由重建,開發者可在Admin後臺輕鬆實現啟用/禁用模組與操作,新增/移除中介軟體等功能!同時,它推薦以HandlerFunc與MiddlewareFunc為基礎的函數語言程式設計,也令開發變得更加靈活富有趣味性。
HopenGolang web極速開發框架。
FaygoFaygo 是一款快速、簡潔的Go Web框架,可用極少的程式碼開發出高效能的Web應用程式(尤其是API介面)。只需定義 struct Handler,Faygo 就能自動繫結、驗證請求引數並生成線上API文件。
beegobeego是一個用Go開發的應用框架,思路來自於tornado,路由設計來源於sinatra,
RevelRevel 是 Go 語言的框架,其思路完全來自 Java 的 Play Framework。
MartiniMartini 是一個非常新的 Go 語言的 Web 框架,使用 Go 的 net/http 介面開發,類似 Sinatra 或者 Flask 之類的框架,你可使用自己的 DB 層、會話管理和模板。
TangoTango,微核心可擴充套件的Go語言Web框架。同時支援函式和結構體作為執行體,外掛豐富。
MacaronMacaron 是一個具有高生產力和模組化設計的 Go Web 框架。框架秉承了 Martini 的基本思想,並在此基礎上做出高階擴充套件。
Web.goweb.go 跟 web.py 類似,但使用的是 Go 程式語言實現的 Web 應用開發框架。Go釋出沒多久該框架就誕生了,差不多是最早的Go框架。目前已經有段時間沒有更新了。不過,該框架程式碼不多,其原始碼可以讀一讀。
EchoEcho 是個快速的 HTTP 路由器(零動態記憶體分配),也是 Go 的微型 Web 框架。

區塊鏈技術

專案簡介
fabricFabric是一個開源區塊鏈實現,開發環境建立在VirtualBox虛擬機器上,部署環境可以自建網路,也可以直接部署在BlueMix上,部署方式可傳統可docker化,共識達成演算法外掛化,支援用Go和JavaScript開發智慧合約,尤以企業級的安全機制和membership機制為特色。你要是不知道這些術語什麼意思,就記住一點,Fabric之於區塊鏈,很可能正如Hadoop之於大資料。
go-ethereumgo-ethereum客戶端通常被稱為geth,它是個命令列介面,執行在Go上實現的完整以太坊節點。通過安裝和執行geth,可以參與到以太坊前臺實時網路並進行以下操作:a. 挖掘真的以太幣 b. 在不同地址間轉移資金 c .建立合約,傳送交易 d . 探索區塊歷史 e.很多其他功能
chain金融領域的區塊鏈專案 . Chain是由一家剛成立兩年的美國創業公司Chain推出,是一個企業級的區塊鏈平臺架構,可以讓機構構造從零開始更好的金融服務。Chain 開放標準在以下方面實現突破:• 全新的共識模型在不到一秒的時間裡實現交易的最終完成,即便是交易量非常大也能支援;• 私密解決方案對區塊鏈資料進行加密,並讓相關對手方和監管者進行有選擇的讀取;• 智慧合約框架和虛擬機器支援簡單的規則執行,以及進行鍵值儲存的圖靈完整程式; • 可伸縮的資料模型可以為網路參與者降低執行負荷; • 豐富的後設資料層可支援滿足KYC(瞭解你的客戶)和 AML(反洗錢)要求

其它

專案簡介
kone可用於家庭或者企業網路的透明代理,可用來翻牆等
KodeRunrKodeRunr (讀作 code runner) 是款我在閒暇時間用Go語言編寫的應用。顧名思義,你可以用它在網頁上、命令列裡寫程式,貼程式碼,與此同時無需在本地安裝任何程式語言。支援Ruby, Python, GO, Swift, C, Elixir等
godaemongodaemon是用來為應用增加daemon和graceful的。
GomobileGomobile是一個應用於iOS和Android的優秀跨平臺開發庫,為開發者提供用於建立Android和iOS 移動平臺程式碼的工具。
gojieba"結巴"中文分詞的Golang語言版本。
CherryCherry 是一個使用 Go 語言開發的 Web 聊天引擎。
MailSlurperMailSlurper 是一個便攜的 SMTP 郵件伺服器,對本地和團隊應用開發來說非常有用。MailSlurper 體積小執行快速,支援 SQLite, MSSQL 和 MySQL. 資料庫。
RobustIRCRobustIRC 是不會有網路中斷情況的 IRC。RobustIRC 主要特性:伺服器不可用的時候不會有網路中斷; 可以使用標準 IRC 客戶端; 健壯,可以很好處理客戶端和網路的連線問題
QorQor 是基於 Golang 開發的的CMS 一系列工具庫,基於 Qor可以快速搭建網站的後臺管理系統。Qor 的工作庫包含:1,後臺管理:可以對資料庫進去 CURD 管理,支援一對一,一對多,多對多關聯關係維護等等; 2,支援上傳圖片到雲以及 filesystem,resize、crop 圖片等等 ;3,Publish 釋出系統,可以修改資料,並且經過檢查後,再發布到正式環境中; 4,狀態機,可以用於開發工作流的系統; 5,I18n,翻譯,可以通過在 WEB 介面翻譯,並將翻譯儲存到資料庫中; 6,L10n,本地化,不同於翻譯,他可以針對某個地區來對內容,或者資料結構進行本地化。7,Roles,許可權管理; 8,Exchange,通過 Excel,CSV 匯入匯出資料; 9,Worker,後臺任務管理,可用於跑定時任務等等
FishChatFishChat(魚傳——魚傳尺素)分散式可伸縮 IM 伺服器,是一款純 golang 編寫優秀的即時通訊軟體(IM), 它集合了市面上已有產品的優點, 並具備 智慧硬體閘道器管理(學習QQ物聯思想, 構思中)。
goRBACgoRBAC 為 Go 語言應用提供了輕量級的基於角色的訪問控制。
heyBoom 是 google 一女工程師使用 Go 語言開發的類似 apache ab 的效能測試工具。相比 ab,boom跨平臺性更好,而且更容易安裝。
Mattermostmattermost 是一個 Slack 的開源替代品。Mattermost 採用 Go 語言開發,這是一個開源的團隊通訊服務。為團隊帶來跨 PC 和移動裝置的訊息、檔案分享,提供歸檔和搜尋功能。
glotglot 是可以可以線上執行各種程式語言程式碼片段的平臺,專案採用 Haskell Script 、Go、Erlang 和 Shell 開發,執行環境基於 Docker 容器進行。
LanternLantern是一個點對點科學上網軟體。
dog-tunnel狗洞是一個高速的 P2P 埠對映工具,同時支援Socks5代理。 0.5版後開始開源,UDP底層基於開源庫KCP重寫,效率大大提高,在惡劣環境下優勢明顯。 同時提供非P2P版本(Lite版本),兩端連線過程完全不依賴中間伺服器,支援加密和登陸認證,自動重連,但是需要人為確保兩端能正常連通(否則請使用預設的P2P版本)
GRPCGRPC 是一個高效能、開源和通用的 RPC 框架,面向移動和 HTTP/2 設計。目前提供 C、Java 和 Go 語言版本,分別是:grpc, grpc-java, grpc-go. 其中 C 版本支援 C, C++, Node.js, Python, Ruby, Objective-C, PHP 和 C# 支援.GRPC 基於 HTTP/2 標準設計,帶來諸如雙向流、流控、頭部壓縮、單 TCP 連線上的多複用請求等特。這些特性使得其在移動裝置上表現更好,更省電和節省空間佔用。
LiteIDELiteIDE是一款開源、跨平臺的輕量級Go語言整合開發環境(IDE)。
firefly-proxy穿牆工具。 GFW梯子。 提供客戶端和服務端。支援多個平臺, 包括linux, macos, windows ,android
wu一個監聽檔案變化並自動執行某些操作的小工具 ,可以用於配置修改後自動重啟web server
apex管理,部署aws lambda函式的工具, 支援用go語言編寫lambda函式(注:目前aws官方不支援用go語言編寫lambda函式,但是apex卻可以變相支援)
gosuv程式管理, 類似於python的supervisord , 提供了web管理介面
chaosmonkeyChaos Monkey是netflix公司開源的一個用於服務可用性測試的工具,通過有計劃的在生產系統製造真實的故障(如cpu負載高, 記憶體溢位,磁碟寫滿,伺服器當機等)來檢測系統的可用性。
schedulerscheduler專門進行任務的排程分發任務工作,各個任務的具體任務執行分配到各個專案中, 從而達到對任務的統一配置和管理。 該工具提供了web管理介面
hugoHugo是由Go語言實現的靜態網站生成器;簡單、易用、高效、易擴充套件、快速部署;相比於Hexo、Jekyll,hugo的優勢是生成速度極快。

原文出處:blog.zhnytech.com/


相關文章