Golang优秀开源项目汇总(持续更新。。。)我把这个汇总放在github上了, 后面更新也会在github上更新。 https://github.com/hackstoic/golang-open-source-projects  。 欢迎fork, star , watch, 提issue。

资料参考来源:http://studygolang.com/projects

监控系统

序号 名称 项目地址 简介
1 OpenFalcon http://github.com/open-falcon/of-release OpenFalcon是一款小米监控系统。功能:*数据采集免配置:agent自发现、支持Plugin、主动推送模式; *容量水平扩展:生产环境每秒50万次数据收集、告警、存储、绘图,可持续水平扩展。*告警策略自发现:Web界面、支持策略模板、模板继承和覆盖、多种告警方式、支持回调动作。*告警设置人性化:支持最大告警次数、告警级别设置、告警恢复通知、告警暂停、不同时段不同阈值、支持维护周期,支持告警合并。*历史数据高效查询:秒级返回上百个指标一年的历史数据。*Dashboard人性化:多维度的数据展示,用户自定义Dashboard等功能。*架构设计高可用:整个系统无核心单点,易运维,易部署。
2 banshee http://github.com/eleme/banshee 周期性指标的监控系统.
3 Kapacitor http://github.com/influxdata/kapacitor Kapacitor 是一个开源框架,用来处理、监控和警告时间序列数据。
4 Pome http://github.com/rach/pome Pome 是 Postgres Metrics 的意思。Pome 是一个 PostgreSQL 的指标仪表器,用来跟踪你的数据库的健康状况。
5 pingd http://github.com/pinggg/pingd pingd 是世界上最简单的监控服务,使用 golang 编写。软件支持 IPv6,但是服务器不支持. pingd 允许同时 ping 上千个 IPs,在此期间还可以管理监控的主机。用户提供主机名或者 IP,还有用户邮箱地址,就可以使用 3 个生成 URLs 来开启,停止或者删除你的追踪。每当你的服务器停机或者后台在线都会发送通知,还包含控制 URLs。
6 actiontech zabbix mysql monitor   percona monitoring plugins zabbix 的 Go 语言版本,是由 爱可生 公司开源的 MySQL 监控插件和模板,整合上百个性能监控指标,支持Low Level Discovery 自动发现多实例环境,支持performance_schema
7 rtop http://github.com/rapidloop/rtop top 是一个简单的无代理的远程服务器监控工具,基于 SSH 连接进行工作。无需在被监控的服务器上安装任何软件。rtop 直接通过 SSH 连接到待监控服务器,然后执行命令来收集监控数据。rtop 每几秒钟就自动更新监控数据,类似其他 *top 命令
8 Prometheus http://github.com/prometheus/prometheus Prometheus 是一个开源的服务监控系统和时间序列数据库, 提供监控数据存储,展示,告警等功能
9 bosun http://github.com/bosun-monitor/bosun 专业的跨平台开源系统监控项目,go语言编写,灵活的模板和表达式配合上各种collector可以监控任何应用或系统级的运行数据,比 zabbix更轻量级、更易入手和更适合定制。

容器技术

序号 名称 项目地址 简介
1 SwarmKit https://github.com/docker/swarmkit SwarmKit 是Docker公司开源的Docker集群管理和容器编排工具,其主要功能包括节点发现、基于raft算法的一致性和任务调度等。
2 DaoliNet https://github.com/daolinet/daolinet DaoliNet是一个软件定义网络(SDN)系统,其设计目的是为Docker容器提供动态、高效的链接。在Docker容器中,微服务工作负载具有轻量且短暂的性质,DaoliNet恰好适用于这种性质。
3 Harbor http://github.com/vmware/harbor 容器应用的开发和运行离不开可靠的镜像管理。从安全和效率等方面考虑,部署在私有环境内的Registry是非常必要的。Project Harbor是由VMware公司中国团队为企业用户设计的Registry server开源项目,包括了权限管理(RBAC)、LDAP、审计、管理界面、自我注册、HA等企业必需的功能,同时针对中国用户的特点,设计镜像复制和中文支持等功能
4 REX-Ray https://github.com/emccode/rexray REX-Ray 是一个 EMC {code} 团队领导的开源项目,为 Docker、Mesos 及其他容器运行环境提供持续的存储访问。其设计旨在囊括通用存储、虚拟化和云平台,提供高级的存储功能。
5 Clair http://github.com/coreos/clair Clair 是一个容器漏洞分析服务。它提供一个能威胁容器漏洞的列表,并且在有新的容器漏洞发布出来后会发送通知给用户。
6 Weave http://github.com/zettio/weave Weave 创建一个虚拟网络并连接到部署在多个主机上的 Docker 容器。
7 Rocket http://github.com/coreos/rkt Rocket (也叫 rkt)是 CoreOS 推出的一款容器引擎,和 Docker 类似,帮助开发者打包应用和依赖包到可移植容器中,简化搭环境等部署工作。Rocket 和 Docker 不同的地方在于,Rocket 没有 Docker 那些为企业用户提供的“友好功能”,比如云服务加速工具、集群系统等。反过来说,Rocket 想做的,是一个更纯粹的业界标准。
8 libnetwork http://github.com/docker/libnetwork Libnetwork 提供一个原生 Go 实现的容器连接,是容器的网络。libnetwork 的目标是定义一个健壮的容器网络模型(Container Network Model),提供一个一致的编程接口和应用程序的网络抽象。
9 Wormhole https://github.com/vishvananda/wormhole WWormhole 是一个能识别命名空间的由 Socket 激活的隧道代理。可以让你安全的连接在不同物理机器上的 Docker 容器。可以用来完成一些有趣的功能,例如连接运行在容器本机的服务或者在连接后创建按需的服务。
10 Shipyard http://github.com/shipyard/shipyard Shipyard 是一个基于 Web 的 Docker 管理工具,支持多 host,可以把多个 Docker host 上的 containers 统一管理;可以查看 images,甚至 build images;并提供 RESTful API 等等。 Shipyard 要管理和控制 Docker host 的话需要先修改 Docker host 上的默认配置使其支持远程管理。
11 Docker http://github.com/docker/docker Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)。几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架或包装系统。

PaaS工具

序号 名称 项目地址 简介
1 Kel http://github.com/kelproject Kel 是一个开源的基于 Kubernetes 构建的 PaaS 系统,采用 Python 和 Go 语言开发。Kel 可简化管理 Web 应用发布和托管整个软件生命周期。Kel 帮助开发和运维人员轻松管理他们的应用架构,通过一组工具和组件让 K8S 使用非常简单。
2 CloudFoundry-Mesos http://github.com/mesos/cloudfoundry-mesos Cloud Foundry-Mesos框架由华为与Mesosphere的工程师合作完成,能够为应用提供安全可靠的、可伸缩、可扩展的云端运行环境,并且应用能够 享用Cloud Foundry生态圈内各类丰富的服务资源。企业能够通过Cloud Foundry开发云应用,并通过Cloud Foundry-Mesos将应用部署到DCOS上,使应用能够与DCOS上安装的其他服务及应用框架共享资源,实现资源利用率最大化,能够大幅降低企业 数据中心运营成本。DCOS能够运行在虚拟和物理环境上,能够支持Linux(以及很快支持Windows),并可适用于私有云、公有云及混合云环境。
3 Flynn http://github.com/github/flynn Flynn 是一个开源的 PaaS 系统,由 Docker 开发。采用 Go 语言编写。支持数据库包括 Postgres、Redis 和 MongoDB. Flynn 使用完全组件化模块化的设计,任何一个组件和模块都可以独立的进行替换。
4 DINP http://git.oschina.net/cnperl/dinp-server DINP是又一个基于Docker开发的PaaS平台。
5 Kubernetes http://github.com/GoogleCloudPlatform/kubernetes Kubernetes 是来自 Google 云平台的开源容器集群管理系统。基于 Docker 构建一个容器的调度服务。该系统可以自动在一个容器集群中选择一个工作容器供使用。其核心概念是 Container Pod。
6 Tsuru http://github.com/tsuru/tsuru 在 Tsuru 的 PaaS 服务下,你可以选择自己的编程语言,选择使用 SQL 或者 NoSQL 数据库,memcache、redis、等等许多服务,甚至与你可以使用 Git 版本控制工具来上传你应用。

大数据

序号 名称 项目地址 简介
1 MLF https://github.com/huichen/mlf 弥勒佛项目是一个大数据机器学习框架。具有为处理大数据优化,可随业务增长scale up,模型的训练和使用都可以作为library或者service整合到在生产系统中,具有丰富的模型,高度可扩展,高度可读性,适合初学者进行大数据模型的学习等特点
2 Glow http://github.com/chrislusf/glow low 是使用 Go 编写的易用分布式计算系统,是 Hadoop Map Reduce,Spark,Flint,Samza 等等的替代品。Glow 的目标是提供一个库,可以在并行线程或者分布式集群机器中进行更简单计算。

数据库技术

序号 名称 项目地址 简介
1 BuntDB github.com/tidwall/buntdb 是纯Go开发的、低层级的(low-level)的、可嵌入的key/value内存数据库(IMDB),数据持久化存储,遵从ACID,支持自定义索引和geospatial 数据。
2 Cockroach http://github.com/cockroachdb/cockroach CockroachDB (蟑螂数据库)是一个可伸缩的、支持地理位置处理、支持事务处理的数据存储系统。CockroachDB 提供两种不同的的事务特性,包括快照隔离(snapshot isolation,简称SI)和顺序的快照隔离(SSI)语义,后者是默认的隔离级别。
3 qb-go http://github.com/aacanakin qb是用来让使更容易使用数据库的go语言的数据库工具包。它受Python最喜欢的ORM SQLAlchemy的启发,既是一个ORM,也是一个查询生成器。它在表达api和查询构建东西的情形下是相当模块化的。
4 GoshawkDB http://github.com/goshawkdb GoshawkDB 是一个采用 Go 语言开发支持多平台的分布式的对象存储服务,支持事务以及容错。GoshawkDB 的事务控制是在客户端完成的。GoshawkDB 服务器端使用 AGPL 许可,而 Go 语言客户端使用 Apache 许可证
5 Codis http://github.com/wandoulabs/codis odis 是一个分布式 Redis 解决方案, 对于上层的应用来说, 连接到 Codis Proxy 和连接原生的 Redis Server 没有明显的区别 (不支持的命令列表), 上层应用可以像使用单机的 Redis 一样使用, Codis 底层会处理请求的转发, 不停机的数据迁移等工作, 所有后边的一切事情, 对于前面的客户端来说是透明的, 可以简单的认为后边连接的是一个内存无限大的 Redis 服务.
6 Cayley http://github.com/google/cayley Cayley 是 Google 的一个开源图(Graph)数据库,其灵感来自于 Freebase 和 Google 的 Knowledge Graph 背后的图数据库。
7 Redigo http://github.com/garyburd/redigo Redigo 是 Redis 数据库的 Go 客户端。
8 redis-go-cluster http://github.com/chasex/redis-go-cluster redis-go-cluster 是基于 Redigo 实现的 Golang Redis 客户端。redis-go-cluster 可以在本地缓存 slot 信息,并且当集群修改的时候会自动更新。此客户端管理每个节点连接池,使用 goroutine 来尽可能的并发执行,达到了高效,低延迟。
9 Dgraph http://github.com/dgraph-io/dgraph dgraph 是可扩展的,分布式的,低延迟图形数据库。DGraph 的目标是提供 Google 生产水平的规模和吞吐量,在超过TB的结构数据里,未用户提供足够低延迟的实时查询。DGraph 支持 GraphQL 作为查询语言,响应 JSON。
10 DegDB http://github.com/degdb/degdb DegDB 是分布式的经济图数据库。
11 Vitess https://github.com/youtube/vitess outube出品的开源分布式MySQL工具集Vitess,自动分片存储MySQL数据表,将单个SQL查询改写为分布式发送到多个MySQL Server上,支持行缓存(比MySQL本身缓存效率高),支持复制容错,已用于Youtube生产环境
12 xuncache http://github.com/sun8911879/xuncache xuncache 是免费开源的NOSQL(内存数据库) 采用golang开发,简单易用而且 功能强大(就算新手也完全胜任)、性能卓越能轻松处理海量数据,可用于缓存系统.
13 pgweb http://github.com/sosedoff/pgweb gweb 是一个采用 Go 语言开发的基于 Web 的 PostgreSQL 管理系统。
14 Orchestrator http://github.com/outbrain/orchestrator MySQL 复制拓扑可视化工具
15 mysql-schema-sync 暂无 mysql-schema-sync 是一款使用go开发的、跨平台的、绿色无依赖的 MySQL 表结构自动同步工具。用于将线上(其他环境)数据库结构变化同步到测试(本地)环境!
16 TiDB http://github.com/pingcap/tidb TiDB 是国内 PingCAP 团队开发的一个分布式 SQL 数据库。其灵感来自于 Google 的 F1, TiDB 支持包括传统 RDBMS 和 NoSQL 的特性。

存储技术

序号 名称 项目地址 简介
1 Torus http://github.com/coreos/torus Torus是一种针对容器集群量身打造的存储系统,可以为通过Kubernetes编排和管理的容器集群提供可靠可扩展的存储。这是继etcd、rkt、flannel,以及CoreOS Linux之后CoreOS发布的另一个开源产品。
2 Afero http://github.com/spf13/afero Afero 是一个文件系统框架,提供一个简单、统一和通用的 API 和任何文件系统进行交互,作为抽象层还提供了界面、类型和方法。Afero 的界面十分简洁,设计简单,舍弃了不必要的构造函数和初始化方法。Afero 作为一个库还提供了一组可交互操作的后台文件系统,这样在与 Afero 协作时,还可以保留 os 和 ioutil 软件包的功能和好处。
3 REX-Ray https://github.com/emccode/rexray REX-Ray 是一个 EMC {code} 团队领导的开源项目,为 Docker、Mesos 及其他容器运行环境提供持续的存储访问。其设计旨在囊括通用存储、虚拟化和云平台,提供高级的存储功能。
4 SeaweedFS http://github.com/chrislusf/seaweedfs SeaweedFS 是简单,高伸缩性的分布式文件系统,包含两部分:存储数十亿的文件;快速为文件服务。SeaweedFS 作为支持全 POSIX 文件系统语义替代,Seaweed-FS 选择仅实现 key-file 的映射,类似 "NoSQL",也可以说是 "NoFS"。
5 bfs http://github.com/Terry-Mao/bfs bfs 是使用 Go 编写的分布式文件系统(小文件存储)。
6 IPFS http://github.com/ipfs/go-ipfs IPFS 是分布式文件系统,寻求连接所有计算机设备的相同文件系统。在某些方面,这很类似于原始的 Web 目标,但是 IPFS 最终会更像单个比特流群交换的 git 对象。IPFS = InterPlanetary File System

分布式系统

序号 名称 项目地址 简介
1 Confd http://github.com/kelseyhightower Confd是一个轻量级的配置管理工具。通过查询Etcd,结合配置模板引擎,保持本地配置最新,同时具备定期探测机制,配置变更自动reload。
2 zerg hhttp://github.com/huichen/zerg 基于docker的分布式爬虫服务
3 Doorman https://github.com/youtube/doorman Doorman 是一个客户端速率限制的解决方案,客户端与共享资源进行通讯,包括数据库、gRPC 服务、RESTful API 等等可使用 Doorman 来限制对资源的调用。Doorman 使用 Go 语言开发,使用 gRPC 的通讯协议。其高可用特性需要一个分布式的锁管理器,当前支持 etcd,也可使用 Zookeeper 替代。
4 Go-kit http://github.com/go-kit/kit Go-kit 是一个 Go 语言的分布式开发包,用于开发微服务。
5 Hprose http://github.com/andot/hprose Hprose 是高性能远程对象服务引擎(High Performance Remote Object Service Engine)的缩写 —— 微服务首选引擎。它是一个先进的轻量级的跨语言跨平台面向对象的高性能远程动态通讯中间件。它不仅简单易用,而且功能强大。你只需要稍许的时间去学习,就能用它轻松构建跨语言跨平台的分布式应用系统了。
6 Gizmo http://github.com/NYTimes/gizmo 纽约时报开源的go微服务工具.提供如下特性:* 标准化配置和日志;* 可配置策略的状态监测端点;* 用于管理 pprof 端点和日志级别的配置;* 结构化日志,提供基本请求信息;* 端点的有用度量;* 优雅的停止服务;* 定义期待和词汇的基本接口
7 mgmt http://github.com/purpleidea/mgmt mgmt 是一个分布式的,事件驱动的配置管理工具。该工具支持并行执行,其 librarification 作为新的及已存在的软件的基础管理工具。
8 Yoke http://github.com/nanopack/yoke Yoke 是 Postgres 的高可用集群,具有自动切换和自动集群恢复。Postgres冗余/自动故障转移解决方案,提供一个高可用PostgreSQL集群的简单管理。
9 SeaweedFS http://github.com/chrislusf/seaweedfs SeaweedFS 是简单,高伸缩性的分布式文件系统,包含两部分:存储数十亿的文件;快速为文件服务。SeaweedFS 作为支持全 POSIX 文件系统语义替代,Seaweed-FS 选择仅实现 key-file 的映射,类似 "NoSQL",也可以说是 "NoFS"。
10 Glow http://github.com/chrislusf/glow low 是使用 Go 编写的易用分布式计算系统,是 Hadoop Map Reduce,Spark,Flint,Samza 等等的替代品。Glow 的目标是提供一个库,可以在并行线程或者分布式集群机器中进行更简单计算。
11 Nomad http://github.com/hashicorp/nomad Nomad 是一个集群管理器和调度器,专为微服务和批量处理工作流设计。Nomad 是分布式,高可用,可扩展到跨数据中心和区域的数千个节点。

消息系统

序号 名称 项目地址 简介
1 KiteQ http://github.com/blackbeans/kiteq KiteQ 是一个基于 go + protobuff 实现的多种持久化方案的 mq 框架(消息队列)。
2 NSQ http://github.com/bitly/nsq NSQ 是无中心设计、节点自动注册和发现的开源消息系统。可作为内部通讯框架的基础,易于配置和发布。
3 kingtask https://github.com/kingsoft-wps/kingtask kingtask是一个由Go开发的轻量级的异步定时任务系统。支持定时的异步任务。 支持失败重试机制,重试时刻和次数可自定义。 任务执行结果可查询。
4 Go Machinery http://github.com/RichardKnop/machinery Machinery 是一个 Go 语言的异步任务队列和作业队列,基于分布式消息传递。类似 Python 的 Celery 框架。
5 kaca http://github.com/scottkiss/kaca kaca 是用 golang 语言开发的基于 websocket 协议的消息发布/订阅系统。

服务器管理

序号 名称 项目地址 简介
1 Sharkey https://github.com/square/sharkey Sharkey 是OpenSSH管理证书使用的服务。Sharkey 分为客户端组件和服务端组件,服务端负责发布已签署的主机证书,客户端负责在机器上安装主机证书。
2 OSinstall http://github.com/idcos/osinstall CloudBoot”(OSinstall)云装机平台,是金融云初创公司杭州云霁科技推出的一款X86服务器全自动装机工具,遵循Apache协议,完全开源免费。全自动构建物理机资源池,像创建虚拟机一样方便的安装物理机。
3 ssh2go http://github.com/karfield ssh2go 是对libssh的golang 封装。libssh是SSH的代码库,同时支持服务端和客户端,日常所见的ssh, sshd, scp, sftp均基于libssh。ssh2go是对libssh的Go语言绑定, 100%的libssh接口都可用,同时集成示例,方便参考。
4 Gooverssh https://github.com/scottkiss/gooverssh gooverssh 是基于gosshtool的一个ssh开发包开发的一个基于ssh本地端口转发服务小应用,可以方便突破一些网络限制,如通过ssh代理访问内网数据库服
5 gosshtool http://github.com/scottkiss/gosshtool gosshtool provide some useful functions for ssh client in golang.implemented using golang.org/x/crypto/ssh.go语言中提供ssh相关操作,支持ssh本地端口转发服务
6 WebConsole http://git.oschina.net/shibingli/webconsole 基于Golang、WebSocket、TermJS的SSH远程终端,主要应用到隔离网络内,SSH远程终端的访问问题。
7 GoWebSSH http://github.com/who246/GoWebSSH GoWebSSH -golang 语言开发的 web server manager 服务器及命令管理/beego开源框架/WebSocket技术

安全工具

序号 名称 项目地址 简介
1 gomitmproxy https://github.com/sheepbao/gomitmproxy GomitmProxy是想用golang语言实现的mitmproxy,主要实现http代理,目前实现了http代理和https抓包功能。
2 Hyperfox http://github.com/xiam/hyperfox Hyperfox 是一个安全的工具用来代理和记录局域网中的 HTTP 和 HTTPS 通讯。
3 Gryffin http://github.com/yahoo/gryffin Gryffin 是雅虎开发的一个大规模 Web 安全扫描平台。它不是另外一个扫描器,其主要目的是为了解决两个特定的问题 —— 覆盖率和伸缩性。
4 ngrok http://github.com/inconshreveable/ngrok ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。ngrok 可捕获和分析所有通道上的流量,便于后期分析和重放。

网络工具

序号 名称 项目地址 简介
1 DaoliNet https://github.com/daolinet/daolinet DaoliNet是一个软件定义网络(SDN)系统,其设计目的是为Docker容器提供动态、高效的链接。在Docker容器中,微服务工作负载具有轻量且短暂的性质,DaoliNet恰好适用于这种性质。
2 Seesaw http://github.com/google/seesaw Seesaw 是 Google 开源的一个基于 Linux 的负载均衡系统。Seesaw 包含基本的负载均衡特性,同时支持一些高级的功能,诸如:anycast, Direct Server Return (DSR), 支持多个 VLANs 和集中式配置。同时其设计的宗旨是易于维护。需要注意的是,尽管该项目挂靠在 Google 名下,但并非 Google 官方产品。
3 TcpRoute2 http://github.com/GameXG/TcpRoute2 TcpRoute, TCP 层的路由器。对于 TCP 连接自动从多个线路(允许任意嵌套)、多个域名解析结果中选择最优线路。TcpRoute2 是 golang 重写的版本。通过 socks5 代理协议对外提供服务。代理功能拆分成了独立的库,详细代理url格式级选项请参见 ProxyClient,目前支持直连、socks4、socks4a、socks5、http、https、ss 代理线路
4 Gor http://github.com/buger/gor Gor 是用 Go 编写的简单 HTTP 流量复制工具,主要是为了从生产服务器返回流量到开发环境。使用 Gor 可以在实际的用户会话中测试代码。
5 Traefik https://github.com/containous/traefik Træfɪk 是一个新型的http反向代理、负载均衡软件,能轻易的部署微服务. 它支持多种后端 (Docker, Swarm, Mesos/Marathon, Consul, Etcd, Zookeeper, BoltDB, Rest API, file...) ,可以对配置进行自动化、动态的管理.
6 TChannel http://github.com/uber/tchannel TChannel 是用于 RPC 的网络复用和成帧协议。

Web工具

序号 名称 项目地址 简介
1 Tyk http://github.com/lonelycode/tyk Tyk 是一个开源的、轻量级的、快速可伸缩的 API 网关,支持配额和速度限制,支持认证和数据分析,支持多用户多组织,提供全 RESTful API。
2 Shortme http://github.com/andyxning 用Golang编写的URL短链接服务。
3 WuKongSearch http://github.com/huichen/wukong WuKong 是一个全文搜索引擎。功能特性有:高效索引和搜索(1M条微博500M数据28秒索引完,1.65毫秒搜索响应时间,19K搜索QPS);支持中文分词(使用sego分词包并发分词,速度27MB/秒);支持计算关键词在文本中的紧邻距离(token proximity);支持计算BM25相关度;支持自定义评分字段和评分规则;支持在线添加、删除索引;支持持久存储;可实现分布式索引和搜索等
4 Pholcus http://github.com/henrylee2cn/pholcus Pholcus(幽灵蛛)是一款纯Go语言编写的高并发、分布式、重量级爬虫软件,支持单机、服务端、客户端三种运行模式,拥有Web、GUI、命令行三种操作界面;规则简单灵活、批量任务并发、输出方式丰富(mysql/mongodb/csv/excel等)、有大量Demo共享;同时她还支持横纵向两种抓取模式,支持模拟登录和任务暂停、取消等一系列高级功能。
5 Codetainer http://github.com/codetainerapp/codetainer Codetainer 可以让你创建基于浏览器上的代码运行沙箱,可方便的嵌入到你的 Web 应用中。你可以把它当成是 codepicnic.com 的开源克隆) .
6 GoTTY http://github.com/yudai/gotty GoTTY 是个简单的命令行工具,可以把 CLI 工具共享成 Web 应用。GoTTY 可以把终端作为 Web 应用共享。
7 TermUI http://github.com/gizak/termui Go语言编写的终端仪表盘
8 Hound http://github.com/etsy/hound 快如闪电的代码搜索开源工具
9 goim http://github.com/Terry-Mao/goim goim 是一个支持集群的im及实时推送服务(支持websocket,http和tcp协议)
10 fasthttp http://github.com/valyala/fasthttp asthttp 是 Go 的快速 HTTP 实现,当前在 1M 并发的生产环境使用非常成功,可以从单个服务器进行 100K qps 的持续连接。HTTP 服务器性能与 net/http 比较,fasthttp 比 net/http 快 10 倍
11 netgraph http://github.com/ga0/netgraph netgraph 是一个 Go 语言编写的跨平台的 B/S 架构的 HTTP 抓包工具,方便在 Linux 服务器上直接查看 HTTP 包。
12 gohttp http://github.com/codeskyblue/gohttp gohttp是一个http的文件服务器,功能有:各种文件的预览功能,实时的目录zip打包下载,二维码扫描下载的支持,苹果应用的在线安装,文件上传等
13 API-front 暂无 API front是 HTTP API 前端,可进行请求代理转发、协议抓包分析、流量复制。主要是用于开发测试环境,用来解决开发测试环境多变等问题

Web框架

序号 名称 项目地址 简介
1 Iris-Go 暂无 通过Iris-Go,可以方便的帮助你来开发基于web的应用。简单来说:Iris-Go与国内大牛的BeeGo类似,但从其官方介绍的资料来看,Iris-Go的性能更优!
2 Baa http://github.com/go-baa/baa Baa 一个简单高效的Go web开发框架。主要有路由、中间件,依赖注入和HTTP上下文构成。
3 Orivil http://github.com/orivil/orivil Orivil 是由 golang 开发的全新 web 框架,灵感来源于 Laravel 及 Symfony。
4 ecgo http://github.com/tim1020/ecgo ecgo 是一个易学、易用、易扩展的go web开发框架
5 Gin http://github.com/gin-gonic/gin Gin 是一个用 Go 语言开发的 Web 框架,提供类 Martini 的 API,但是性能更好。因为有了 httprouter 性能提升了 40 倍之多。
6 Melody http://github.com/olahol/melody Melody 是一个 Go 语言的微型 WebSocket 框架,基于 github.com/gorilla/websocket 开发,
7 utron http://github.com/gernest/utron utron 是一个 Go 语言轻量级的 MVC 框架,用于快速构建可伸缩以及可靠的数据库驱动的 Web 应用。
8 Lessgo http://github.com/lessgo/lessgo Lessgo 是一款 Go 语言编写的简单、稳定、高效、灵活的 web 完全开发框架。它的项目组织形式经过精心设计,实现前后端分离、系统与业务分离,完美兼容MVC与MVVC等多种开发模式,非常利于企业级应用与API接口的开发。当然,最值得关注的是它突破性地支持了运行时路由重建,开发者可在Admin后台轻松实现启用/禁用模块与操作,添加/移除中间件等功能!同时,它推荐以HandlerFunc与MiddlewareFunc为基础的函数式编程,也令开发变得更加灵活富有趣味性。
9 Hopen http://github.com/who246/hopen Golang web极速开发框架。
10 ThinkGo http://github.com/henrylee2cn/thinkgo ThinkGo 是一款 Go 语言编写的 web 快速开发框架。它基于开源框架 Gin 进行二次开发,旨在实现一种类 ThinkPHP 的高可用、高效率的 web 框架。在此感谢 Gin 和 httprouter。它最显著的特点是模块、控制器、操作三段式的标准 MVC 架构,且模块与插件的目录结构完全一致,令开发变得非常简单灵活。
11 beego http://github.com/astaxie/beego beego是一个用Go开发的应用框架,思路来自于tornado,路由设计来源于sinatra,
12 Revel http://github.com/robfig/revel Revel 是 Go 语言的框架,其思路完全来自 Java 的 Play Framework。
13 Martini http://github.com/codegangsta/martini Martini 是一个非常新的 Go 语言的 Web 框架,使用 Go 的 net/http 接口开发,类似 Sinatra 或者 Flask 之类的框架,你可使用自己的 DB 层、会话管理和模板。
14 Tango http://github.com/lunny/tango Tango,微内核可扩展的Go语言Web框架。同时支持函数和结构体作为执行体,插件丰富。
15 Macaron https://github.com/go-macaron/macaron Macaron 是一个具有高生产力和模块化设计的 Go Web 框架。框架秉承了 Martini 的基本思想,并在此基础上做出高级扩展。
16 Web.go http://github.com/hoisie/web eb.go 跟 web.py 类似,但使用的是 Go 编程语言实现的 Web 应用开发框架。Go发布没多久该框架就诞生了,差不多是最早的Go框架。目前已经有段时间没有更新了。不过,该框架代码不多,其源码可以读一读。

区块链技术

序号 名称 项目地址 简介
1 fabric https://github.com/hyperledger/fabric Fabric是一个开源区块链实现,开发环境建立在VirtualBox虚拟机上,部署环境可以自建网络,也可以直接部署在BlueMix上,部署方式可传统可docker化,共识达成算法插件化,支持用Go和JavaScript开发智能合约,尤以企业级的安全机制和membership机制为特色。你要是不知道这些术语什么意思,就记住一点,Fabric之于区块链,很可能正如Hadoop之于大数据。

其它

序号 名称 项目地址 简介
1 Meizar http://github.com/qibin0506 golang实现抓取妹子图。默认图片来源网站:http://jandan.net。 也可以自定义规则抓取其它网站的图片
2 KodeRunr https://github.com/jaxi/koderunr KodeRunr (读作 code runner) 是款我在闲暇时间用Go语言编写的应用。顾名思义,你可以用它在网页上、命令行里写程序,贴代码,与此同时无需在本地安装任何编程语言。支持Ruby, Python, GO, Swift, C, Elixir等
3 godaemon http://github.com/tim1020/godaemon godaemon是用来为应用增加daemon和graceful的。
4 Gomobile http://github.com/golang/mobile Gomobile是一个应用于iOS和Android的优秀跨平台开发库,为开发者提供用于创建Android和iOS 移动平台代码的工具。
5 gojieba http://github.com/yanyiwu/gojieba "结巴"中文分词的Golang语言版本。
6 Cherry http://github.com/rafael-santiago/cherry Cherry 是一个使用 Go 语言开发的 Web 聊天引擎。
7 MailSlurper http://github.com/mailslurper/mailslurper MailSlurper 是一个便携的 SMTP 邮件服务器,对本地和团队应用开发来说非常有用。MailSlurper 体积小运行快速,支持 SQLite, MSSQL 和 MySQL. 数据库。
8 RobustIRC http://github.com/robustirc/robustirc RobustIRC 是不会有网络中断情况的 IRC。RobustIRC 主要特性:* 服务器不可用的时候不会有网络中断;* 可以使用标准 IRC 客户端;* 健壮,可以很好处理客户端和网络的连接问题
9 Qor http://github.com/qor/qor Qor 是基于 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,后台任务管理,可用于跑定时任务等等
10 FishChat http://github.com/oikomi/FishChatServer FishChat(鱼传——鱼传尺素)分布式可伸缩 IM 服务器,是一款纯 golang 编写优秀的即时通讯软件(IM), 它集合了市面上已有产品的优点, 并具备 智能硬件网关管理(学习QQ物联思想, 构思中)。
11 goRBAC http://github.com/mikespook/gorbac goRBAC 为 Go 语言应用提供了轻量级的基于角色的访问控制。
12 boom http://github.com/rakyll/boom Boom 是 google 一女工程师使用 Go 语言开发的类似 apache ab 的性能测试工具。相比 ab,boom跨平台性更好,而且更容易安装。
13 Mattermost http://github.com/mattermost/platform attermost 是一个 Slack 的开源替代品。Mattermost 采用 Go 语言开发,这是一个开源的团队通讯服务。为团队带来跨 PC 和移动设备的消息、文件分享,提供归档和搜索功能。
14 glot http://github.com/prasmussen/glot glot 是可以可以在线运行各种编程语言代码片段的平台,项目采用 Haskell Script 、Go、Erlang 和 Shell 开发,运行环境基于 Docker 容器进行。
15 Lantern http://github.com/getlantern/lantern Lantern是一个点对点科学上网软件。
16 dog-tunnel http://github.com/vzex/dog-tunnel 狗洞是一个高速的 P2P 端口映射工具,同时支持Socks5代理。 0.5版后开始开源,UDP底层基于开源库KCP重写,效率大大提高,在恶劣环境下优势明显。 同时提供非P2P版本(Lite版本),两端连接过程完全不依赖中间服务器,支持加密和登陆认证,自动重连,但是需要人为确保两端能正常连通(否则请使用默认的P2P版本)
17 GRPC https://github.com/grpc GRPC 是一个高性能、开源和通用的 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 连接上的多复用请求等特。这些特性使得其在移动设备上表现更好,更省电和节省空间占用。
18 LiteIDE https://github.com/visualfc/liteide

LiteIDE是一款开源、跨平台的轻量级Go语言集成开发环境(IDE)。

10大Go语言开源项目推荐

2014年11月,Golang官方博客发布Go语言核心开发组成员Andrew Gerrand文章 《Half a decade with Go》,以纪念Go语言发布5周年。Andrew Gerrand在文章中称,Go语言在工业界向云计算转型时代找到了自己的位置,目前一些重量级的云计算项目比如有名的Docker等都是用Go语言开发的,并预言“2015年将是Go语言急剧发展之年”(“ 2015 will be Go's biggest year yet.”)。

从国内Go语言发展和应用来看,七牛算是国内第一家选Go语言做服务端的公司。在前段时间,《技术人攻略》对七牛CEO许式伟所做的一篇深度采访(采访原文)中,许式伟对“为何早在2011年Go语法还没完全稳定下来的情况下选择Go作为存储服务端的主体语言”给出自己的解释。许式伟谈到说: 
编程哲学的重塑是Go语言独树一帜的根本原因,其它语言仍难以摆脱OOP或函数式编程的烙印,只有Go完全放弃了这些,对编程范式重新思考,对热门的面向对象编程提供极度简约但却完备的支持。Go是互联网时代的C语言,不仅会制霸云计算,10年内将会制霸整个IT领域。

前不久,Facebook也开源了很多Go语言库,可前往GitHub托管地址查看。

10大流行Go语言开源项目

适逢Go语言诞生5周年之际,外媒JavaWorld也发布文章,整理了由Go语言开发的10大流行开源项目。Go语言目前从虚拟化到Git代码托管服务等方面,都有重量级项目现身,越发凸现Go语言在云计算时代的重要性。

1. Docker

到现在,Docker几乎是Go再难找到也难以复制的一个成功案例。Docker项目在2014年9月份就拿到了C轮4000万美元融资,版本迭代速度超快,目前从GitHub看到已有78个版本,而它仅仅是再2013年初才正式开始的一个项目而已。目前,国内Docker技术推广也进行的如火如荼,比如 Docker中文社区,CSDN也建立了 Docker专区。CSDN CODE也将在近期与Docker中文社区合作,推出Docker技术文章翻译活动,届时也请大家多多关注,及时关注与参与。

Docker团队之所以喜欢用Go语言,主要是Go具有强大的标准库、全开发环境、跨平台构建的能力。

GitHub托管地址: https://github.com/docker/docker

2. Kubernetes

Kubernetes是2014年夏天Google推出的Kubernetes,基于Docker,其目的是让用户通过Kubernetes集群来进行云端容器集群的管理,而无需用户进行复杂的设置工作。系统会自动选取合适的工作节点来执行具体的容器集群调度处理工作。其核心概念是Container Pod(容器仓)。

GitHub托管地址: https://github.com/GoogleCloudPlatform/kubernetes

3. Etcd & Fleet

etcd是由CoreOS开发并维护键值存储系统,它使用Go语言编写,并通过Raft一致性算法处理日志复制以保证强一致性。目前,Google的容器集群管理系统Kubernetes、开源PaaS平台Cloud Foundry和CoreOS的Fleet都广泛使用了etcd。详情,可了解 《Etcd:用于服务发现的键值存储系统》。 Fleet则是一个分布式的初始化系统。它们之所以选择使用Go语言,则是因为Go语言对跨平台的良好支持,以及其背后的强大社区。

GitHub托管地址: https://github.com/coreos/etcd

4. Deis

Deis是一个基于Docker和CoreOS的开源PaaS平台,旨在让部属和管理服务器上的应用变得轻松容易。它可以运行在AWS、GCE以及Openstack平台下。详情,可了解 《Deis v1.0正式发布!》。

GitHub托管地址: https://github.com/deis/deis

5. Flynn

Flynn是一个使用Go语言编写的开源PaaS平台,可自动构建部署任何应用到Docker容器集群上运行。Flynn项目受到Y Combinator的支持,目前仍在开发中,被称为是下一代的开源PaaS平台。

GitHub托管地址: https://github.com/flynn/Flynn

6. Lime

相对上面的几款Go语言在云端和服务器端之外,Lime则显得比较特殊。Lime,则是一款用Go语言写的桌面编辑器程序,被看做是著名编辑器Sublime Text的开源实现。

GitHub托管地址: https://github.com/limetext/lime

7. Revel

Revel是一个高生产力的Go语言Web框架。Revel框架支持热编译,当编辑、保存和刷新源码时,Revel会自动编译代码和模板;全栈特性,支持路由、参数解析、缓存、测试、国际化等功能。

GitHub托管地址: https://github.com/revel/revel

8. InfluxDB

一个Go语音编写的开源分布式的时序、事件和指标数据库,无需外部依赖。其设计目标是实现分布式和水平伸缩扩展。

GitHub托管地址: https://github.com/influxdb/influxdb

9. Syncthing

一款用Go语言编写的开源云存储和同步服务工具,用户的数据将由自己完全控制,所有的通信全都加密,每个访问节点都用加密证书验证。该项目被认为是Dropbox和 BitTorrent Sync的开源替代, 详情。Syncthing之所以选择Go语言,也是出于跨平台考虑。

GitHub托管地址: https://github.com/syncthing/syncthing

10. Gogs

Gogs则是一款由国人无闻(GitHub)开发的自助Git服务项目。Gogs的目标是打造一个最简单、最快速和最轻松的方式搭建自助Git服务。据作者称,之所以选择使用Go语言开发,就是Go允许Gogs可以通过独立的二进制分发,且对跨平台有良好支持。

GitHub托管地址: https://github.com/gogits/gogs

除了上面的10款流行Go语言项目外,我们这里另外外大家推荐几款Go语言相关的项目,如国人开发的Go Web应用框架 Beego、开源的Go语言开发环境 LiteIDE等,它们也都很流行,希望大家多多关注并支持国人开源项目。

本文来自:ITEYE资讯

golang 开源项目全集

一直更新中,地址:https://github.com/golang/go/wiki/Projects#zeromq

Indexes and search engines

These sites provide indexes and search engines for Go packages:

  • awesome-go - A community curated list of high-quality resources.
  • Awesome Go @LibHunt - Your go-to Go Toolbox.
  • godoc.org - A documentation browser for any Go open source package.
  • go-hardware - Curated list of resources for using Go on non-standard hardware.
  • go-patterns - Commonly used patterns and idioms for Go.
  • gopm.io - Download Go packages by version
  • go-search - Search engine dedicated to Go projects and source.
  • gowalker - API documentation generator and search.
  • Golang Data Science - Curated list of data science libraries for Go.
  • Go Report Card - Code quality summaries for any Go project.
  • Sourcegraph - Source indexing, analysis and search.

Dead projects

If you find a project in this list that is dead or broken, please either mark it as such or mention it in the #go-nuts IRC channel.

Table of Contents

  • Astronomy
  • Build Tools
  • Caching
  • Cloud Computing
  • Command-line Option Parsers
  • Command-line Tools
  • Compression
  • Concurrency and Goroutines
  • Configuration File Parsers
  • Console User Interface
  • Continuous Integration
  • Cryptography
  • Databases
  • Data Processing
  • Data Structures
  • Date
  • Development Tools
  • Distributed/Grid Computing
  • Documentation
  • Editors
  • Email
  • Encodings and Character Sets
  • Error handling
  • File Systems
  • Games
  • GIS
  • Go Implementations
  • Graphics and Audio
  • GUIs and Widget Toolkits
  • Hardware
  • Language and Linguistics
  • Logging & Monitoring
  • Machine Learning & AI
  • Mathematics
  • Microservices
  • Miscellaneous
  • Music
  • Networking
  • DNS
  • FTP
  • HTTP
  • IMAP
  • Instant Messaging
  • NNTP
  • Protocol Buffers
  • rsync
  • Telnet
  • VNC
  • Websockets
  • ZeroMQ
  • Misc Networking
  • Operating System Interfaces
  • Other Random Toys, Experiments and Example Code
  • P2P and File Sharing
  • Programming
  • Resource Embedding
  • RPC
  • Scanner and Parser Generators
  • Security
  • Simulation Modeling
  • Sorting
  • Source Code Management
  • Storage
  • Strings and Text
  • Testing
  • Unix
  • Unsorted
  • Validation
  • Version Control
  • Virtual Machines and Languages
  • Web Applications
  • Web Libraries
  • Windows

Astronomy

  • go-fits - FITS (Flexible Image Transport System) format image and data reader
  • astrogo/fitsio - Pure Go FITS (Flexible Image Transport System) format image and data reader/writer
  • gonova - A wrapper for libnova -- Celestial Mechanics, Astrometry and Astrodynamics Library
  • meeus - Implementation of "Astronomical Algorithms" by Jean Meeus
  • novas - Interface to the Naval Observatory Vector Astrometry Software (NOVAS)

Build Tools

  • colorgo - Colorize go build output
  • dogo - Monitoring changes in the source file and automatically compile and run (restart)
  • fileembed-go - This is a command-line utility to take a number of source files, and embed them into a Go package
  • gb - A(nother) build tool for go, with an emphasis on multi-package projects
  • gg - A tiny multi golang projects env/make management tool.
  • GG - A build tool for Go in Go
  • godag - A frontend to the Go compiler collection
  • goenv - goenv provides Go version and Go workspace management tools
  • gopei - Simple Go compiler and LiteIDE installer for Unix/Linux that adds many features like github support and presenter.
  • go-pkg-config - lightweight clone of pkg-config
  • goscons - Another set of SCons builders for Go
  • gotgo - An experimental preprocessor to implement 'generics'
  • gows - Go workspace manager
  • goxc - A build tool with a focus on cross-compiling, packaging, versioning and distribution
  • GVM - GVM provides an interface to manage Go versions
  • Realize - A Go build system with file watchers, output streams and live reload. Run, build and watch file changes with custom paths.
  • SCons Go Tools - A collection of builders that makes it easy to compile Go projects in SCons

Caching

  • cache - LevelDB style LRU cache for Go, support non GC object cache.
  • cache2go - Concurrency-safe caching library with expiration capabilities and access counters
  • go-cache - An in-memory key:value store/cache (similar to Memcached) library for Go, suitable for single-machine applications
  • golibs/cache - A tiny cache package
  • gomemcached - A memcached server in go
  • gomemcache - a memcached client
  • go-slab - Slab allocator for go.
  • groupcache - Caching and cache-filling library, intended as a replacement for memcached in many cases
  • libmemcache - Fast client and server libraries speaking memcache protocol
  • memcached-bench - Benchmark tool for memcache servers
  • memcached - Fast memcache server, which supports persistence and cache sizes exceeding available RAM
  • memcache - go memcached client, forked from YouTube Vitess
  • rend - A memcached proxy that manages data chunking and L1/L2 caches
  • YBC bindings - Bindings for YBC library providing API for fast in-process blob cache

Cloud Computing

  • LXD Daemon based on liblxc offering a REST API to manage containers
  • Docker - The Linux container runtime. Developed by dotCloud.
  • Enduro/X ASG Application Server for Go. Provides application server and middleware facilities for distributed transaction processing. Supports microservices based application architecture. Developed by ATR Baltic.
  • Kubernetes - Container Cluster Manager from Google.
  • flamingo - A Lightweight Cloud Instance Contextualizer.
  • gocircuit - A distributed operating system that sits on top of the traditional OS on multiple machines in a datacenter deployment. It provides a clean and uniform abstraction for treating an entire hardware cluster as a single, monolithic compute resource. Developed by Tumblr.
  • gosync - A package for syncing data to and from S3.
  • juju - Orchestration tool (deployment, configuration and lifecycle management), developed by Canonical.
  • mgmt - Next Generation Configuration Management tool (parallel, event driven, distributed system) developed by @purpleidea, (a Red Hat employee) and the mgmt community.
  • rclone - "rsync for cloud storage" - Google Drive, Amazon Drive, S3, Dropbox, Backblaze B2, One Drive, Swift, Hubic, Cloudfiles, Google Cloud Storage, Yandex Files
  • ShipBuilder - ShipBuilder is a minimalist open source platform as a service, developed by Jay Taylor.
  • swift - Go language interface to Swift / Openstack Object Storage / Rackspace cloud files
  • Tsuru - Tsuru is an open source polyglot cloud computing platform as a service (PaaS), developed by Globo.com.
  • aws-sdk-go - AWS SDK for the Go programming language.

Command-line Option Parsers

  • argcfg - Use reflection to populate fields in a struct from command line arguments
  • autoflags - Populate go command line app flags from config struct
  • cobra - A commander for modern go CLI interactions supporting commands & POSIX/GNU flags
  • command - Add subcommands to your CLI, provides help and usage guide.
  • docopt.go - An implementation of docopt in the Go programming language.
  • getopt - full featured traditional (BSD/POSIX getopt) option parsing in Go style
  • getopt - Yet Another getopt Library for Go. This one is like Python's.
  • gnuflag - GNU-compatible flag parsing; substantially compatible with flag.
  • go-commander - Simplify the creation of command line interfaces for Go, with commands and sub-commands, with argument checks and contextual usage help. Forked from the "go" tool code.
  • go-flags - command line option parser for go
  • goopt - a getopt clone to parse command-line flags
  • go-options - A command line parsing library for Go
  • options - Self documenting CLI options parser
  • opts.go - lightweight POSIX- and GNU- style option parsing
  • pflag - Drop-in replacement for Go's flag package, implementing POSIX/GNU-style --flags.
  • subcommands - A concurrent, unit tested, subcommand library
  • uggo - Yet another option parser offering gnu-like option parsing. This one wraps (embeds) flagset. It also offers rudimentary pipe-detection (commands like ls behave differently when being piped to).
  • writ - A flexible option parser with thorough test coverage. It's meant to "just work" and stay out of the way.
  • cli - A Go library for implementing command-line interfaces.
  • cmdline - A simple parser with support for short and long options, default values, arguments and subcommands.

Command-line Tools

  • awless - A Mighty command-line interface for Amazon Web Services (AWS).
  • boilr - A blazing fast CLI tool for creating projects from boilerplate templates.
  • coshell - A drop-in replacement for GNU 'parallel'.
  • DevTodo2 - A small command-line per-project task list manager.
  • enumeration - Easy enumeration code generation.
  • fzf - A command-line fuzzy finder
  • gich - A cross platform which utility written in Go
  • git-time-metric - Simple, seamless, lightweight time tracking for Git
  • gister - Manage your github gists from the command-line
  • gmail2go - Simple gmail multiple accounts cli mail checker
  • gocreate - Command line utility that create files from templates.
  • godocdoc - Start godoc and open it in your browser to the project in the current directory.
  • gojson - Command-line tool for manipulating JSON for use in developing Go code.
  • GoPasswordCreator - A small tool, which creates random passwords
  • GoNote - Command line SimpleNote client.
  • Grozilla - File downloader utility with resume capability.
  • jsonpp - A fast command line JSON pretty printer.
  • lsp - A human-friendlier alternative to ls
  • ltst - View the latest news of your choosing right in your terminal
  • passhash - Command-line utility to create secure password hashes
  • passman - A command-line password manager
  • pjs - Pretty print and search through JSON data structures fast.
  • project - Very simple CLI tool to setup new projects from boilerplate templates.
  • pwdgen - A small tool, which generate human password, written in Go.
  • redis-view - A tree like tool help you explore data structures in your redis server
  • restic - A fast, efficient and secure backup program
  • runtemplate - A very simple command-line tool for executing Go templates, useful for use with go generate.
  • runtemplate - A simple tool for executing Go templates to support generating Go code for your types.
  • sift - A fast and powerful open source alternative to grep
  • tecla - Command-line editing library
  • wlog - A simple logging interface that supports cross-platform color and concurrency.
  • wmenu - An easy to use menu structure for cli applications that prompts users to make choices.
  • comb-go - A CLI tool implemented by Golang to manage CloudComb resources.
  • JayDiff - A JSON diff utility written in Go.

Compression

  • compress - Faster drop in replacements for gzip, zip, zlib, deflate
  • dgolzo - LZO bindings
  • dictzip - A reader and writer for files in the random access dictzip format
  • fast-archiver - Alternative archiving tool with fast performance for huge numbers of small files
  • gbacomp - A Go library to (de)compress data compatible with GBA BIOS
  • go-lz4 - Port of LZ4 lossless compression algorithm to Go.
  • go-lzss - Implementation of LZSS compression algorithm in Go
  • go-sevenzip - Package sevenzip implements access to 7-zip archives (wraps C interface of LZMA SDK)
  • go-zip - A wrapper around C library libzip, providing ability to modify existing ZIP archives.
  • lzma - compress/lzma package for Go
  • pgzip - Multicore gzip, compatible with the standard library
  • snappy-go - Google's Snappy compression algorithm in Go
  • yenc - yenc decoder package
  • zappy - Package zappy implements the zappy block-based compression format. It aims for a combination of good speed and reasonable compression.
  • ppmd-go - Golang bindings for the LZMA SDK library. (Only binded PPMD)

Concurrency and Goroutines

  • grpool - Lightweight Goroutine pool.
  • pool - Go consumer goroutine pool for easy goroutine handling + time saving.
  • tunny - A goroutine pool.
  • worker - An easy and lightweight concurrent job framework.

Configuration File Parsers

  • awsenv - a small binary that loads Amazon (AWS) environment variables for a profile
  • confl - nginx config syntax, lenient, encode/decode, custom marshaling
  • flagfile - Adds parsing and serialization support to the standard library flag package (adds a --flagfile option)
  • gcfg - read INI-style configuration files into Go structs; supports user-defined types and subsections
  • globalconf - Effortlessly persist to and read flag values from an ini config file
  • goconf - a configuration file parser
  • hjson - Human JSON, a configuration file format for humans. Relaxed syntax, fewer mistakes, more comments.
  • jsonconfig - a JSON configuration file parser with comments support
  • properties - Library for reading and writing properties files
  • scribeconf - Facebook Scribe server configuration file parser
  • toml:
    • go-toml-config - TOML-based config for Go
    • go-toml - Go library for the TOML language
    • gp-config - Subset of TOML syntax with basic and reflection APIs
    • toml-go - An easy-to-use Go parser for the Toml format
    • toml - TOML parser for Go with reflection
    • tom-toml - TOML parser for Go, support comments/formatter/apply.
  • viper - a complete configuration solution supporting YAML, TOML & JSON and integration with command line flags
  • yaml:
    • yaml - YAML support for the Go language, by Canonical
    • goyaml - A port of LibYAML to Go

Console User Interface

  • ansi - Easily create ansi escape code strings and closures to format, color console output
  • ansiterm - pkg to drive text-only consoles that respond to ANSI escape sequences
  • cons - A simple package for building interactive console tools.
  • gnureadline - GNU Readline bindings
  • go-ansiout - Another ANSI escape code sequence tool for use with command-line applications.
  • gockel - a Twitter client for text terminals
  • gocui - Minimalist library aimed at creating Console User Interfaces
  • gocurse - Go bindings for NCurses
  • gocurses - NCurses wrapper
  • go-ibgetkey - "hot key" type user input package for use in processing keystrokes in command-line applications.
  • go.linenoise - Linenoise bindings (simple and easy readline with prompt, optional history, optional tab completion)
  • goncurses - An ncurses library, including the form, menu and panel extensions
  • gopass - Allows typing of passwords without echoing to screen
  • go-pullbarz - Fancy "light bar" menus like in Lotus 123 from the DOS days. Dependent on go-ibgetkey and go-ansiout.
  • go.sgr - Terminal/console colors and text decoration (bold,underlined,etc).
  • go-stfl - a thin wrapper around STFL, an ncurses-based widget toolkit
  • goterminal - A go library that lets you write and then re-write the text on terminal, to update progress. It works on Windows too!
  • go-web-shell - Remote web shell, implements a net/http server.
  • igo - A simple interactive Go interpreter built on exp/eval with some readline refinements
  • oh - A Unix shell written in Go
  • pty - obtain pseudo-terminal devices
  • readline - A pure go implementation for GNU-Readline kind library
  • termbox-go - A minimalist alternative to ncurses to build terminal-based user interfaces
  • termios - Terminal support
  • termon - Easy terminal-control-interface for Go.
  • uilive - uilive is a go library for updating terminal output in realtime.
  • uiprogress - A library to render progress bars in terminal applications.
  • uitable - A library to improve readability in terminal apps using tabular data.
  • yandex-weather-cli - Command line interface for Yandex weather service

Continuous Integration

Cryptography

Data Processing

Data Structures

Collections

Hashtables

Lists

Queues

Graphs

Sets

Trees

Other

Databases

See also SQLDrivers page.

CockroachDB

MongoDB

MySQL

ODBC

PostgreSQL

QL

Redis

RethinkDB

SQLite

ORM

Multiple wrappers

Key-Value-Stores

Graph Databases

NoSQL

Other

Date

Development Tools

Emacs Tags

Distributed/Grid Computing

Documentation

Editors

Email

Error handling

Encodings and Character Sets

File Systems

Games

GIS

Go Implementations

Graphics and Audio

GUIs and Widget Toolkits

Hardware

Language and Linguistics

Logging and Monitoring

Machine Learning

Mathematics

Microservices

Miscellaneous

Music

Networking

DNS

FTP

HTTP

IMAP

Instant Messaging

NNTP

Protocol Buffers

rsync

Telnet

VNC

Websockets

ZeroMQ

Misc Networking

Operating System Interfaces

Other Random Toys, Experiments and Example Code

P2P and File Sharing

Programming

Resource Embedding

RPC

Scanner and Parser Generators

Security

Simulation Modeling

Sorting

Source Code Management

Storage

Strings and Text

Testing

  • assert - Basic Assertion Library used along side native go testing, with building blocks for custom assertions

  • assert - Assert for go test.

  • assert - Handy assert package.

  • assert - JUnit-like asserts with excellent error messages

  • conex - Docker containers for integration tests

  • counterfeiter - Tool for generating self-contained and type-safe mocks.

  • downtest - Automatically run tests for all known downstream consumers of a Go package.

  • ginkgo - BDD Testing Framework for Go.

  • go2xunit - Convert "go test -v" output to xunit XML output

  • go-assert - Testing utils for Go.

  • goautotest - Automatically run unit tests when code changes are made

  • goblin - Minimal and Beautiful Go testing framework

  • Gocheck - Rich test framework with suites, fixtures, assertions, good error reporting, etc

  • GoConvey - Browser-based reporting, uses go test, supports traditional Go tests, clean DSL

  • gocov - Code coverage testing/analysis tool

  • gomega - Ginkgo's Preferred Matcher Library.

  • gomock - a mocking framework for Go.

  • GoSpec - a BDD framework

  • gospecify - another BDD framework

  • go-stat - performant instrumentation/profiling for Go

  • go-tap - TAP (Test Anything Protocol) parser in Go

  • gounit - xunit for Go

  • GSpec - Expressive, reliable, concurrent and extensible Go test framework that makes it productive to organize and verify the mind model of software.

  • httpexpect - Concise, declarative, and easy to use end-to-end HTTP and REST API testing

  • Nitro - A quick and simple profiler For Go

  • mspec - BDD framework that frees you to Stub and Spec your code first with natural BDD language.

  • muxy - Simulating real-world distributed system failures.

  • Pegomock - a mocking framework based on golang/mock, but uses a DSL closely related to Mockito.

  • terst - A terse, easy-to-use testing library for Go

  • test2doc - Generate documentation for your go units from your unit tests.

  • testfixtures - Rails' like test fixtures for testing database driven apps.

  • testflight - Painless http testing in Go

  • Testify - A set of packages that provide many tools for testifying that your code will behave as you intend.

  • ut - Awesome mocks without magic.

Validation

Version Control

Virtual Machines and Languages

Web Applications

Web Libraries

Authentication

DOM handling

Frameworks and Toolkits

HTML forms

Public API Wrappers

Other

Windows

Unix

Unsorted; please help!

The following entries have not been filed. Please help by putting these in relevant categories.

golang优秀实用开源项目收集

golang很多开源项目,铺天盖地,却很少有官方版。有时候真是选择乏力,选择一个优秀的流行的组件,能少走很多弯路。

整理一些最为出名和好用的开源组件(持续更新)

1.web框架

  • beego

    go get github.com/astaxie/beego

    http://beego.me

2.数据库

  • mongo(极有可能成为官方pkg)

    go get gopkg.in/mgo.v2

    http://labix.org/mgo

  • mysql

    go get github.com/go-sql-driver/mysql

    https://godoc.org/github.com/go-sql-driver/mysql

3.缓存

  • redis

    go get github.com/garyburd/redigo/redis

    https://godoc.org/github.com/garyburd/redigo/redis

  • redis-cluster(redis3.0以后支持集群)

    go get github.com/chasex/redis-go-cluster

    https://godoc.org/github.com/chasex/redis-go-cluster

  • memcache

    go get github.com/bradfitz/gomemcache/memcache

    https://godoc.org/github.com/bradfitz/gomemcache/memcache

4.MQ

  • go-nsq

    go get github.com/nsqio/go-nsq

    https://godoc.org/github.com/nsqio/go-nsq

    go-nsq是nsq的golang client包,nsq集群更多资料 http://nsq.io/

5.书籍

  • 入门

    《Go语言程序设计》

    中规中矩的教科书套路,附有习题,详细全面,适合入门,但新手很难看出什么是重点

    《学习Go语言》快速入门,不如上一本全面

  • 进阶

《Go语言圣经》重点突出,例子很到位,除了错别字比较多(不会影响阅读),堪称圣经

几款适合学习的项目:

1、cache2go

https://github.com/muesli/cache2go

比较简单的一个缓存库,代码量很少,适合新手学习,可以学习到锁、goroutines等。

2、groupcache

https://github.com/golang/groupcache

与memcached同一作者,相当于是memcached的go语言实现。

3、nsq

https://github.com/bitly/nsq

消息分发平台,阅读代码可以了解到很多分布式、负载均衡等方面的编程。

4、docker

https://github.com/docker/docker

时下很火的项目,个人感觉适合应用,不适合入门阅读学习,待成为了高手后可以研究下其实现。

GitHub上优秀的Go开源项目

近一年来,学习和研究Go语言,断断续续的收集了一些比较优秀的开源项目,这些项目都非常不错,可以供我们学习和研究Go用,从中可以学到很多关于Go的使用、技巧以及相关工具和方法。我把他们整理发出来,大家有兴趣可以根据自己的爱好选择一些进行研究和阅读,提升自己的能力,更好的使用Go语言,开发出更优秀的项目。

docker

无人不知的虚拟华平台,开源的应用容器引擎,借助该引擎,开发者可以打包他们的应用,移植到任何平台上。

  • https://github.com/docker/docker
  • 38154 stars
  • 11393 forks

golang

go本身,也是用go语言实现的,包括他的编译器,要研究go源代码的可以看此项目录

  • https://github.com/golang/go
  • 23082 stars
  • 3081 forks

lantern

蓝灯,一款P2P的过墙软件,他和SS不一样的是,他是分布式的,P2P的,通过蓝灯,你可以和自由上网的用户共享网络,对方可以自由上网,你也就自由了。

  • https://github.com/getlantern/lantern
  • 21479 stars
  • 5573 forks

kubernetes

Google出品,用于调度和管理docker的开源容器管理系统,利用他,可以方便的管理你的docker实例,哪怕非常多,也是目前最流行的docker管理系统。

  • https://github.com/kubernetes/kubernetes
  • 19513 stars
  • 6540 forks

awesome-go

这不是一个go项目,他是一个学习go的资料网站,属于著名的awesome系列,里面关于go的资源非常详细。

  • https://github.com/avelino/awesome-go
  • 17182 stars
  • 2154 forks

gogs

一款基于git的代码托管系统,类似于github和gitlab,不过其小巧易用,功能强大,部署方便,也有不少用户在使用。

  • https://github.com/gogits/gogs
  • 17004 stars
  • 1887 forks

syncthing

开源的文件同步系统,它使用了其独有的对等自由块交换协议,速度很快,据说可以替换BitTorrent Sync。

  • https://github.com/syncthing/syncthing
  • 14399 stars
  • 1117 forks

hugo

一款极速的静态页面生成器,让你可以很快的搭建个人网站,提供了多套主题可供使用,并且可以自己定制,和NodeJS的Hexo是一样的。

  • https://github.com/spf13/hugo
  • 13926 stars
  • 2110 forks

grafana

一款开源监控度量的看板系统,可以接Graphite,Elasticsearch,InfluxDB等数据源,定制化很高。

  • https://github.com/grafana/grafana
  • 13659 stars
  • 2133 forks

etcd

一款分布式的,可靠的K-V存储系统,使用简单,速度快,又安全。

  • https://github.com/coreos/etcd
  • 11837 stars
  • 2148 forks

hub

一款更便捷使用github的工具,包装并且扩展了git,提供了很多特性和功能,使用和git差不多。

  • https://github.com/github/hub
  • 9630 stars
  • 881 forks

influxdb

可伸缩的数据库,使用场景主要用来存储测量数据,事件点击以及其他等实时分析数据,用来做监控性能很不错。

  • https://github.com/influxdata/influxdb
  • 9501 stars
  • 1330 forks

caddy

快速的,跨平台的HTTP/2 Web服务器。

  • https://github.com/mholt/caddy
  • 9322 stars
  • 607 forks

beego

国产开源的高性能Web框架,让你快速的开发Go Web应用服务,谢大主笔。

  • https://github.com/astaxie/beego
  • 9182 stars
  • 2229 forks

martini

也是一款不错的Web框架。

  • https://github.com/go-martini/martini
  • 8962 stars
  • 942 forks

cayley

Google开源的图数据库,这是一个NoSql数据库,适合处理复杂的,但是结构化低的数据,适用于社交网络,推荐系统等。

  • https://github.com/cayleygraph/cayley
  • 8885 stars
  • 747 forks

nsq

一款开源的实时的,分布式的消息中间件系统。

  • https://github.com/nsqio/nsq
  • 7884 stars
  • 1022 forks

codis

Codis是一个分布式Redis解决方案,其实就是一个数据库代理,让你在使用Redis集群的时候,就像使用单机版的Redis是一样的,对开发者透明。

  • https://github.com/CodisLabs/codis
  • 5171 stars
  • 1340 forks

delve

这个Go开发者都知道,一款go应用开发的调试工具。

  • https://github.com/derekparker/delve
  • 4700 stars
  • 345 forks

cobra

cobra是一个命令行go库,可以让你创建非常强大的,现代的CLI命令行应用。

  • https://github.com/spf13/cobra
  • 3161 stars
  • 285 forks

shadowsocks-go

go版本的shadowsocks,大家都懂的。

  • https://github.com/shadowsocks/shadowsocks-go
  • 2195 stars
  • 1839 forks

pholcus

Pholcus(幽灵蛛)是一款纯Go语言编写的支持分布式的高并发、重量级爬虫软件,定位于互联网数据采集,为具备一定Go或JS编程基础的人提供一个只需关注规则定制的功能强大的爬虫工具。

  • https://github.com/henrylee2cn/pholcus
  • 1814 stars
  • 560 forks

Golang优秀开源项目汇总, 10大流行Go语言开源项目, golang 开源项目全集(golang/go/wiki/Projects), GitHub上优秀的Go开源项目...相关推荐

  1. GitHub 优秀的 Android 开源项目 淘宝技术牛p博客整理开发中最常用的GitHub上 优秀的 Android 开源项目整理(精品)...

    原文地址为http://www.trinea.cn/android/android-open-source-projects-view/,作者Trinea 主要介绍那些不错个性化的View,包括Lis ...

  2. GitHub上优秀的开源项目(转载)

    GitHub上优秀的开源项目(转载) 转载出处:https://github.com/Trinea/android-open-project 第一部分 个性化控件(View) 主要介绍那些不错个性化的 ...

  3. 机器人编程语言python-机器人行业,10大流行编程语言对比

    原标题:机器人行业,10大流行编程语言对比 大数据文摘作品 翻译:姚佳灵 黄念 校对:陆兴海 这是一个许多新入行的机器人专家在他们职业生涯中至少会问一次的问题.不幸的是,这也是一个没有简单答案的问题. ...

  4. python十大语言_2015 年十大流行 Python语言 库

    本文主要向大家介绍了2015 年十大流行 Python语言 库,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. Python编程语言的一大优势,就在于其丰富的第三方库.经过过去一年 ...

  5. 2020年2月Github上最热门的开源项目

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 来自:开源最前线(ID:OpenSourceTop)  2月份GitHub上最热门 ...

  6. [转]2020年2月份Github上最热门的开源项目,速来围观

    随着疫情被逐渐控制,好消息一天天传来,相信用不了多久我们就能恢复正常生活了. 宅在家这么久,对于专业技能你落下了多少? 2月份GitHub上最热门的开源项目排行已经出炉啦,和我一起来看看上榜详情: 1 ...

  7. vue github开源项目_11月份Github上最热门的开源项目

    开源最前线(ID:OpenSourceTop) 猿妹整编 转载请注明来源作者 11 月份 GitHub 上最热门的开源项目排行已经出炉啦,在本月的名单中,有15亿参数量的通用语言模型.还有NLP工具包 ...

  8. linux开源项目github,GitHub 上的优质 Linux 开源项目,真滴牛逼!

    作为一名互联网人,提起 Linux 大家都不陌生,尤其是日常跟 Linux 操作系统打交道最多的,最熟悉不过了.互联网上关于 Linux 相关的教程和资料也非常的多,但是当你从中筛选出真正对自己有帮助 ...

  9. 6月份Github上最热门的开源项目排行出炉

    6月份Github上最热门的开源项目排行出炉,一起来看看本月上榜的开源项目有哪些: 1. the-art-of-command-line https://github.com/jlevy/the-ar ...

  10. 2020年7月Github上最热门的开源项目

    来自:开源最前线(ID:OpenSourceTop) 7月份GitHub上最热门的开源项目排行已经出炉啦,一起来看看上榜详情吧 1 tsunami-security-scanner https://g ...

最新文章

  1. C# 读取指定目录中的所有文件,并按规则生成SQL语句!
  2. docker环境 快速使用elasticsearch-head插件
  3. 基础编程题之奇数位(偶数位)都是奇数(偶数)
  4. S5PV210裸机之重定位
  5. 日志Loki基妹出,便胜却ELK无数
  6. 泡泡玛特上市首日涨79.22%报69港元 总市值953亿港元
  7. error: ora-01034:oracle not available ora-27101:shared memory realm does not exist
  8. python的一些解释
  9. Mac系统下安装webpack,cnpm,vue-cli
  10. Oracle 11g完全卸载(Windows)
  11. poj2182-Lost Cow
  12. 第十九章 TCP的交互数据流
  13. BlockingQueue原理分析(ReentrantLock、Condition的实践)
  14. Delphi2007升级到Delphi 2010总结
  15. 机器学习之SMOTE算法
  16. 浏览器插件 - Chrome 对 UserScript 的声明头(metadata)兼容性一览
  17. 嵌入式人工智能唱响2020年中国嵌入式技术大会!
  18. 你认识5G物联网关键器件FBG吗
  19. 博图v16组态wincc_体验博途V16的新玩意WinCC Unified(二)Hello World篇
  20. 单词游戏: hangman

热门文章

  1. 经济基础知识(中级)【6】
  2. React_music开发日记
  3. 你必须知道的“小鼠葡萄糖代谢”相关试验重点要点
  4. BZOJ2794: [Poi2012]Cloakroom【偏序+背包】
  5. [书目20110904]谢孟媛英文文法
  6. android: 禁止多点触控
  7. 5G的落地现状与未来变局
  8. 52 图初探 Linux 通用知识
  9. miniUI打印(miniUI整合Lodop打印控件)
  10. 【已解决】由于此设备上的安全设置已更改,你的pin不再可用,单击以重新设置Pin