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

2022-11-06,,,,

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 开源项目全集

2017年06月22日 09:19:00

阅读数:3517

一直更新中,地址: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

goveralls - Go integration for Coveralls.io continuous code coverage tracking system.
overalls - Multi-Package go project coverprofile for tools like goveralls

Cryptography

BLAKE2b - Go implementation of BLAKE2b hash function
cryptogo - some useful cryptography-related functions, including paddings (PKCS7, X.923), PBE with random salt and IV
cryptoPadding - Block padding schemes implemented in Go
dkeyczar - Go port of Google'e Keyczar cryptography library
dkrcrypt - Korean block ciphers: SEED and HIGHT
dskipjack - Go implementation of the SKIPJACK encryption algorithm
go-cs - concurrent ssh client.
go-ed25519 - CGO bindings for Floodberry's ed25519-donna. Fast batch verification.
go-hc128 - Go implementation of HC-128, an eSTREAM stream cipher
go-jose - Go implementation of the JOSE standards
go-minilock - Go implementation of the minilock file encryption system.
GoSkein - Implementation of Skein hash and Threefisch crypto for Go
keccak - A keccak (SHA-3) implementation
ketama.go - libketama-style consistent hashing
kindi - encryption command line tool
openssl - openssl bindings for go
otrcat - a general purpose command-line tool for communicating using the Off-The-Record protocol
scrypt - Go implementation of Colin Percival's scrypt key derivation function
simpleaes - AES encryption made easy
siphash - SipHash: a fast short-input pseudorandom function
SRP - SRP: Secure Remote Password - Implementation in go
ssh.go - SSH2 Client library
ssh-vault - encrypt/decrypt using ssh keys
tiger - Tiger cryptographic hashing algorithm
whirlpool - whirlpool cryptographic hashing algorithm
go-lioness - Lioness wide-block cipher using Chacha20 and Blake2b
go-sphinxmixcrypto - Sphinx mix network cryptographic packet format operations

Data Processing

automi - Compose process and integration flows on Go channels
gostatsd - Statsd server and library.
Heka - Real time data and log file processing engine.
Kapacitor - Framework for processing, monitoring and alerting on timeseries data.
pipe - Several functional programming supporting in golang (Map/Reduce/Filter)
proto - Map/Reduce/Filter etc. for Go using channels as result streams.
regommend - Recommendation engine.
rrd - Bindings for rrdtool.
XConv - Convert any value between types (base type, struct, array, slice, map, etc.)

Data Structures

Collections

collections - Several common data structures
data-structures - A collection of data-structures (ArrayList, SortedList, Set, AVL Tree, Immutable AVL Tree, B+Tree, Ternary Search Trie, Hash Table (Separate Chaining), Linear Hash Table)
ps - Persistent data structures
Tideland golib - A collections library

Hashtables

gohash - A simple linked-list hashtable that implements sets and maps
go-maps - Go maps generalized to interfaces

Lists

fs2/mmlist - A memory mapped list.
GoArrayList - GoArrayList is a Go language substitute for the Java class ArrayList, with very nearly all features.
goskiplist - A skip list implementation in Go.
itreap - An immutable ordered list, internally a treap.
ListDict - Python List and Dict for Go
skip - A fast position-addressable ordered map and multimap.
Skiplist - A fast indexable ordered multimap.
skiplist - A skip list implementation. Highly customizable and easy to use.
skiplist - Skiplist data structure ported from Redis's Sorted Sets.
stackgo - A fast slice-based stack implementation.

Queues

fifo_queue - Simple FIFO queue
figo - A simple fifo queue with an optional thread-safe version.
go.fifo - Simple auto-resizing thread-safe fifo queue.
gopqueue - Priority queue at top of container/heap
go-priority-queue - An easy to use heap implementation with a conventional priority queue interface.
golibs/stack - A LIFO and ringbuffer package
gringo - A minimalist queue implemented using a stripped-down lock-free ringbuffer
heap - A general heap package without converting elements to interface{} and back.
queued - A simple network queue daemon
queue - A queue manager on top of Redis

Graphs

graph - Library of basic graph algorithms
graphs - Implementation of various tree, graph and network algorithms

Sets

disjoint - Disjoint sets (union-find algorithm with path compression)
golang-set - A full thread-safe and unsafe set implementation for Go.
goset - A simple, thread safe Set implementation
set - Set data structure for Go

Trees

b - Package b implements B+trees with delayed page split/concat and O(1) enumeration. Easy production of source code for B+trees specialized for user defined key and value types is supported by a simple text replace.
btree - Package btree implements persistent B-trees with fixed size keys, http://en.wikipedia.org/wiki/Btree
btree - In-memory (not persistent) B-tree implementation, similar API to GoLLRB
go-avltree - AVL tree (Adel'son-Vel'skii & Landis) with indexing added
go-btree - Simple balance tree implementation
go-darts - Double-ARray Trie System for Go
GoLLRB - A Left-Leaning Red-Black (LLRB) implementation of 2-3 balanced binary search trees in Google Go
go-merkle - Merkle-ized binary (search) trees with proofs.
go-stree - A segment tree implementation for range queries on intervals
go-radix, go-radix-immutable - Radix tree implementations.
gtreap - Persistent treap implementation.
rbtree - Yet another red-black tree implementation, with a C++ STL-like API
rtreego - an R-Tree library
triego - Simple trie implementation for storing words
prefixmap - Simple trie-based prefix-map for string-based keys

Other

bigendian - binary parsing and printing
deepcopy - Make deep copies of data structures
dgobloom - A Bloom Filter implementation
epochdate - Compact dates stored as days since the Unix epoch
etree - Parse and generate XML easily
fsm - Minimalistic state machine for use instead of booleans
go-algs/ed - Generalized edit-distance implementation
go-algs/maxflow - An energy minimization tool using max-flow algorithm.
go-extractor - Go wrapper for GNU libextractor
gocrud - Framework for working with arbitrary depth data structures.
Gokogiri - A lightweight libxml wrapper library
GoNetCDF - A wrapper for the NetCDF file format library
goop - Dynamic object-oriented programming support for Go
gopart- Type-agnostic partitioning for anything that can be indexed in Go.
gotoc - A protocol buffer compiler written in Go
govalid - Data validation library
goxml - A thin wrapper around libxml2
hyperloglog - An implementation of the HyperLogLog and HyperLogLog++ algorithms for estimating cardinality of sets using constant memory.
itertools - Provides generic iterable generator function along with functionality similar to the itertools python package.
jsonv - A JSON validator
libgob - A low level library for generating gobs from other languages
ofxgo - A library for querying OFX servers and/or parsing the responses (and example command-line client).
Picugen - A general-purpose hash/checksum digest generator.
tribool - Ternary (tree-valued) logic for Go
Tuple - Tuple is a go type that will hold mixed types / values
vcard - Reading and writing vcard file in go. Implementation of RFC 2425 (A MIME Content-Type for Directory Information) and RFC 2426 (vCard MIME Directory Profile).
mxj - Marshal/Unmarshal XML doc from/to map[string]interface{} or JSON
xlsx - A library to help with extracting data from Microsoft Office Excel XLSX files.
goxlsxwriter - Golang bindings for libxlsxwriter for writing XLSX (Excel) files
simple-sstable - A simple, no-frills SSTable format and implementation in Go.

Databases

See also SQLDrivers page.

CockroachDB

cockroachdb - A Scalable, Survivable, Strongly-Consistent SQL Database

MongoDB

mgo - Rich MongoDB driver for Go
rocks-stata - MongoDB Backup Utility

MySQL

Go-MySQL-Driver - A lightweight and fast MySQL-Driver for Go's database/sql package
MyMySQL - MySQL Client API written entirely in Go.
TiDB - MySQL compatible distributed database modeled after Google's F1 design.
vitess - Scaling MySQL databases for the web
mysqlsuperdump - Generate partial and filtered dumps of MySQL databases

ODBC

go-odbc - ODBC Driver for Go
odbc3-go - This package is wrapper around ODBC (version 3).

PostgreSQL

go-libpq - cgo-based Postgres driver for Go's database/sql package
go-pgsql - A PostgreSQL client library for Go
pgsql.go - PostgreSQL high-level client library wrapper
pgx - Go PostgreSQL driver that is compatible with database/sql and has native interface for more performance and features
pq - Pure Go PostgreSQL driver for database/sql
yoke - Postgres high-availability cluster with auto-failover and automated cluster recovery

QL

ql - A pure Go embedded (S)QL database.

Redis

godis - Simple client for Redis
Go-Redis - Client and Connectors for Redis key-value store
go-redis - Redis client built on the skeleton of gomemcache
Redigo - Go client for Redis.
redis - Redis client for Go

RethinkDB

GoRethink - RethinkDB Driver for Go

SQLite

gosqlite3 - Go Interface for SQLite3
gosqlite (forked) - A fork of gosqlite
gosqlite - a trivial SQLite binding for Go.
go-sqlite - A database/sql driver and standalone sqlite3 interface
mattn's go-sqlite3 - sqlite3 driver conforming to the built-in database/sql interface

ORM

beedb - beedb is an ORM for Go. It lets you map Go structs to tables in a database
FilterXorm - Build conditions for xorm project.
go-modeldb - A simple wrapper around sql.DB for struct support.
gorm - An ORM library for Go, aims for developer friendly
gorp - SQL mapper for Go
go-store - Data-store library for Go that provides a set of platform-independent interfaces to persist and retrieve key-value data.
hood - Database agnostic ORM for Go. Supports Postgres and MySQL.
qbs - Query By Struct. Supports MySQL, PostgreSQL and SQLite3.
sqlgen - Go code generation for SQL interaction.
structable - Struct-to-table database mapper.
xorm - Simple and Powerful ORM for Go.
reform - A better ORM for Go, based on non-empty interfaces and code generation.

Multiple wrappers

gosexy/db - an abstraction of wrappers for popular third party SQL and No-SQL database drivers.

Key-Value-Stores

bolt - Persistent key/value store inspired by LMDB.
dbm - Package dbm (WIP) implements a simple database engine, a hybrid of a hierarchical and/or a key-value one.
fs2/bptree - A memory mapped B+Tree with duplicate key support. Appropriate for large amounts of data (aka +100 GB). Supports both anonymous and file backed memory maps.
Diskv - Home-grown, disk-backed key-value store
etcd - Highly-available key value store for shared configuration and service discovery
gkvlite - Pure go, simple, ordered, atomic key-value persistence based on append-only file format.
gocask - Key-value store inspired by Riak Bitcask. Can be used as pure go implementation of dbm and other kv-stores.
goleveldb - Another implementation of LevelDB key/value in pure Go.
kv - Yet another key/value persistent store. Atomic operations, two phase commit, automatic crash recovery, ...
leveldb-go - This is an implementation of the LevelDB key/value database.
levigo - levigo provides the ability to create and access LevelDB databases.
persival - Programatic, persistent, pseudo key-value storage

Graph Databases

cayley - 100% Go graph database, inspired by Freebase and the Google Knowledge Graph.
Dgraph - Fast, Distributed Graph DB with a GraphQL-like API.
go-gremlin - A Go client for the Apache TinkerTop Graph analytics framework (Gremlin server).

NoSQL

influxdb - Scalable datastore for metrics, events, and real-time analytics
ledisdb - A high performance NoSQL like Redis.
nodb - A pure Go embed Nosql database with kv, list, hash, zset, bitmap, set.
tiedot - A NoSQL document database engine using JSON for documents and queries; it can be embedded into your program, or run a stand-alone server using HTTP for an API.

Other

cabinet - Kyoto Cabinet bindings for go
camlistore - Personal distributed storage system for life.
cdb.go - Create and read cdb ("constant database") files
go-clickhouse - Connector to Yandex Clickhouse (column-oriented database)
CodeSearch - Index and perform regex searches over large bodies of source code
couch-go - newer maintained CouchDB database binding
couchgo - The most feature complete CouchDB Adapter for Go. Modeled after couch.js.
dbxml - A basic interface to Oracle Berkeley DB XML
drive - A Google drive command line client
Event Horizon - Toolkit for Command Query Responsibility Segregation and Event Sourcing (CQRS/ES)
go-db-oracle - GO interface to Oracle DB
gographite - statsd server in go (for feeding data to graphite)
gokabinet - Go bindings for Kyoto Cabinet DBM implementation
go-notify - GO bindings for the libnotify
goprotodb - A binding to Berkeley DB storing records encoded as Protocol Buffers.
go-rexster-client - Go client for the Rexster graph server (part of the TinkerPop suite of graph DB tools)
goriak - Database driver for riak database (project homepage is now on bitbucket.org)
goriakpbc - Riak driver using Riak's protobuf interface
gotyrant - A Go wrapper for tokyo tyrant
go-wikiparse - mediawiki dump parser for working with wikipedia data
hdfs - go bindings for libhdfs
JGDB - JGDB stands for Json Git Database
mig - Simple SQL-based database migrations
mongofixtures - A Go quick and dirty utility for cleaning MongoDB collections and loading fixtures into them.
Neo4j-GO - Neo4j REST Client in Go
neoism - Neo4j graph database client, including Cypher and Transactions support.
null - Package for handling null values in SQL
Optimus Cache Prime - Smart cache preloader for websites with XML sitemaps.
piladb - Lightweight RESTful database engine based on stack data structures.
pravasan - Simple Migration Tool (like rake db:migrate with more flexibility)
riako - High level utility methods for interacting with Riak databases
sqlbuilder - SQL query builder with row mapping
squirrel - Fluent SQL generation for Go
Sublevel - Separate sections of the same LevelDB
Weed File System - fast distributed key-file store
whisper-go - library for working with whisper databases

Date

now - Now is a time toolkit for golang.
date - A package for working with dates.
date - For dates, date ranges, time spans, periods, and time-of-day.
gostrftime - strftime(3) like formatting for time.Time
tai64 - tai64 and tai64n parsing and formatting
Tideland golib - Timex extensions

Development Tools

cwrap - Go wrapper (binding) generator for C libraries.
demand - Download, build, cache and run a Go app easily.
glib - Bindings for GLib type system
gocog - A code generator that can generate code using any language
godepgraph - Create a dependency graph for a go package
godev - Recompiles and runs your Go code on source change. Also watches all your imports for changes.
godiff - diff file comparison tool with colour html output
gonew - A tool to create new Go projects
go-play - A HTML5 web interface for experimenting with Go code. Like http://golang.org/doc/play but runs on your computer
gore - A Go REPL. Featured with line editing, code completion, and more
gorun - Enables Go source files to be used as scripts.
go-spew - Implements a deep pretty printer for Go data structures to aid in debugging
goven - Easily copy code from another project into yours
gowatcher - Reload a specified go program automatically by monitoring a directory.
GoWatch - GoWatch watches your dev folder for modified files, and if a file changes it restarts the process.
goweb - Literate programming tools for Go based on CWEB by Donald Knuth and Silvio Levy.
hopwatch - simple debugger for Go
hsandbox - Tool for quick experimentation with Go snippets
Inject - Library for dependency injection in Golang (from Facebook)
liccor - A tool for updating license headers in Go source files
liteide - An go auto build tools and qt-based ide for Go
Livedev - Livedev is a development proxy server that enables live code reloading.
Martian - HTTP proxy designed for use in E2E testing.
nvm-windows - Node.js version manager for Windows
prettybenchcmp - Store and compare benchmarks history locally.
rerun - Rerun watches your binary and all its dependencies so it can rebuild and relaunch when the source changes.
syntaxhighlighter - language-independent code syntax highlighting library
toggle - A feature toggle library with built in support for environment variable backed toggling. pluggable backing engine support.
trace - A simple debug tracing

Emacs Tags

egotags - ETags generator
tago1 - etags generator for go that builds with go 1
tago - Emacs TAGS generator for Go source

Distributed/Grid Computing

celeriac - A library for adding support for interacting and monitoring Celery workers, tasks and events in Go
donut - A library for building clustered services in Go
libchan - Go-like channels over the network
locker - A distributed lock service built on top of etcd.
dlock - A native Go distributed lock manager (client and server) using gRPC.
mangos - An implementation of the Scalable Protocols based on nanomsg
redsync - Redis-based distributed mutual exclusion lock implementation
Skynet - Skynet is distributed mesh of processes designed for highly scalable API type service provision.
Tideland golib - Includes a map/reduce library

Documentation

examplgen - Insert code from .go files to documents (examples to project's readme, for instance).
godocdown - Format package documentation (godoc) as GitHub friendly Markdown
GoDoc.org - GoDoc.org generates documentation on the fly from source on Bitbucket, Github, Google Project Hosting and Launchpad.
golangdoc - Godoc for Golang, support translate.
Mango - Automatically generate unix man pages from Go sources
redoc - Commands documentation for Redis
sphinxcontrib-golangdomain - Sphinx domain for Go
test2doc - Generate documentation for your go units from your unit tests.

Editors

Conception - Conception is an experimental research project, meant to become a modern IDE/Language package. demo video
Go-bbpackage - BBEdit package for Go development
goclipse - An Eclipse-based IDE for Go.
Go conTEXT - Highlighter plugin
godev - Web-based IDE for the Go language
godit - A microemacs-like text editor written in Go.
gofinder - (code) search tool for acme
go-gedit - Google Go language plugin for gedit
golab - go local application builder - a web-based Go ide
Google Go for Idea - Google Go language plugin for Intellij IDEA
micro - A modern and intuitive terminal-based text editor.
tabby - Source code editor
ViGo - A vim-like text editor.
Wide - A Web-based IDE for Teams using Golang.

Email

Hectane - Lightweight SMTP client including a built-in mail queue backed by on-disk storage.
gmail - Simple library for sending emails from a Gmail account, for people not interested in dealing with protocol details.
go-mail - Email utilities including RFC822 messages and Google Mail defaults.
Gomail - A simple and efficient package to send emails.
go-ses - Amazon AWS Simple Email Service (SES) API client
Inbucket - Inbucket is an email testing service; it will accept messages for any email address and make them available to view via a web interface.
mail.go - Parse email messages
MailHog - Email testing service, inspired by MailCatcher.
MailSlurper - A handy SMTP mail server useful for local and team application development. Slurp mail into oblivion!
chasquid - SMTP server written in Go.

Error handling

errgo - Error tracing and annotation.
errors - The juju/errors package provides an easy way to annotate errors without losing the original error context, and get a stack trace back out of the error for the locations that were recorded.
goerr - Allows to make a separate(modular) and reusable error handlers. Exception-like panic() recover() mechanism using Return(error) and catching err := OR1(..)
panicparse - Parse panics with style.
Space Monkey errors - Go's missing errors library - stack capture, error hierarchies, error tags
Tideland golib - Detailed error values

Encodings and Character Sets

base58 - Human input-friendly base58 encoding
bencode-go - Encoding and decoding the bencode format used by the BitTorrent peer-to-peer file sharing protocol
bsonrpc - BSON codec for net/rpc
chardet - Charset detection library ported from ICU
charmap - Character encodings in Go
codec-msgpack-binc High Performance and Feature-Rich Idiomatic Go Library providing encode/decode support for multiple binary serialization formats: msgpack
colfer - high-performance binary codec
gobson - BSON (de)serializer
go-charset - Conversion between character sets. Native Go.
go.enmime - MIME email parser library for Go (native)
go-msgpack - Comprehensive MsgPack library for Go, with pack/unpack and net/rpc codec support (DEPRECATED in favor of codec )
gopack - Bit-packing for Go
go-simplejson - a Go package to interact with arbitrary JSON
go-wire - Binary and JSON codec for structures and more
go-xdr - Pure Go implementation of the data representation portion of the External Data Representation (XDR) standard protocol as specified in RFC 4506 (obsoletes RFC 1832 and RFC 1014).
iconv-go - iconv wrapper with Reader and Writer
magicmime -- Mime-type detection with Go bindings for libmagic
Mahonia - Character-set conversion library in Go
mimemagic - Detect mime-types automatically based on file contents with no external dependencies
msgpack - Msgpack format implementation for Go
msgpack-json - Command-line utilities to convert between msgpack and json
nnz - String and Int primitives that serialize to JSON and SQL null
storable - Write perl storable data
TNetstring - tnetstrings (tagged Netstrings)

File Systems

afero - A File Sytem abstraction system for Go
go.fs - A virtual file system abstraction layer.
poller - Package poller is a file-descriptor multiplexer. It allows concurent Read and Write operations from and to multiple file-descriptors.
vfsgen - Generates a vfsdata.go file that statically implements the given virtual filesystem.

Games

Bampf - Arcade style game based on the Vu 3D engine.
bloxorz - Solver for bloxorz basic levels
ChessBuddy - Play chess with Go, HTML5, WebSockets and random strangers!
Fergulator - An NES emulator, using SDL and OpenGL
FlappyBird - A simple flappy bird clone written in golang.
godoku - Go Sudoku Solver - example of "share by communicating"
Gongo - A program written in Go that plays Go
gospeccy - A ZX Spectrum 48k Emulator
Ludo Game - Ludo Board game powered by Go on Appengine
pinkman - command line based chess interface to UCI compatible chess engines
Pong - A simple Pong clone written in golang
pong-command - Joke command,ping-like pong.
Steven - A Minecraft client in Go
WolfenGo - A Wolfenstein3D clone in Go, using OpenGL 2.1

GIS

geojson - Go package to quick and easy create json data in geojson format. description
go-geom - Efficient Open Geo Consortium-style geometries with native Go GeoJSON and WKB encoding and decoding (work-in-progress)
go.geo - Geometry/geography library targeted at online mapping
go.geojson - Marshalling and Unmarshalling of GeoJSON objects
gogeos - Go library for spatial data operations and geometric algorithms
go-proj-4 - An interface to the Cartographic Projections Library PROJ.4
go-kml - Google Earth KML generation
go-polyline - Google Maps polyline encoding and decoding
UTM - Bidirectional UTM-WGS84 converter

Go Implementations

llgo - LLVM-based Go compiler, written in Go

Graphics and Audio

AnsiGo - Simple ANSi to PNG converter written in pure Go
Arclight - Arclight is a tool for rendering images
bild - A collection of image processing algorithms in pure Go
bimg - Small Go library for fast image resize and transformation using libvips
blend - Image processing library and rendering toolkit for Go.
bpg - BPG decoder for Go.
chart - Library to generate common chart (pie, bar, strip, scatter, histogram) in different output formats.
draw2d - This package provide an API to draw 2d geometrical form on images. This library is largely inspired by postscript, cairo, HTML5 canvas.
egl - egl bindings
es2 - es2 bindings
freetype-go - a Go implementation of FreeType
gltf - library for marshaling and unmarshaling glTF
glfw 3 - Go bindings for GLFW 3 library
glfw - bindings to the multi-platform library for opening a window, creating an OpenGL context and managing input
glh - OpenGL helper functions to manage text, textures, framebuffers and more
gl - OpenGL bindings using glew
glu - bindings to the OpenGL Utility Library
gmask - Go adaptation of the Cmask utility for Csound
goalsa - Go bindings for ALSA capture and playback
go-cairo - Go wrapper for the cairo graphics library
gocl - Go OpenCL (gocl) binding, support OpenCL 1.1/1.2/2.0 on Mac/Linux/Windows/Android
go-csnd6 - Go binding to the Csound6 API
go-csperfthread - Go binding to the CsoundPerformanceThread helper class of the Csound6 API
goexif - Retrieve EXIF metadata from image files
goflac - Go bindings for decoding and encoding FLAC audio with libFLAC
go-gd - Go bingings for GD
GoGL - OpenGL binding generator
go-gnuplot - go bindings for Gnuplot
go-gtk3 - gtk3 bindings for go
go-heatmap - A toolkit for making heatmaps
GoHM - H.265/HEVC HM Video Codec in Go
goHorde - Go Bindings for the Horde3d Rendering engine.
GoMacDraw - A mac implementation of go.wde
go-openal - Experimental OpenAL bindings for Go
go-opencl - A go wrapper to the OpenCL heterogeneous parallel programming library
go-opencv - Go bindings for OpenCV / 2.x API in gocv / 1.x API in opencv
Go-OpenGL - Go bindings for OpenGL
Goop - Audio synthesizer engine
goray - Raytracer written in Go, based on Yafaray
gosc - Pure Go OSC (Open Sound Control) library
go-taglib - Go wrapper for TagLib, an audio meta-data parser
go-tmx - A Go library that reads Tiled's TMX files
GoVisa - H265/HEVC Bitstream Analyzer in Go
go-vlc - Go bindings for libVLC
go.wde - A windowing/drawing/event interface
goxscr - Go rewrites of xscreensaver ports
gst - Go bindings for GStreamer
gumble - Client library for the Mumble VoIP protocol
hgui - Gui toolkit based on http and gtk-webkit.
imaginary - Simple and fast HTTP microservice for image resizing and manipulation
imaging - Package imaging provides basic image manipulation functions (resize, rotate, flip, crop, etc.) as well as simplified image loading and saving.
netpbm - Read and write Netpbm images from Go programs
opencv - Go bindings for OpenCV
osmesa - Go bindings for osmesa.
Plotinum - An API for creating plots
portaudio - A Go binding to PortAudio
pulsego - Go binding for PulseAudio
pulse-simple - Go bindings for PulseAudio's Simple API, for easy audio capture and playback.
resize - Image resizing with different interpolations.
RiGO - RenderMan Interface implementation in Go.
smartcrop - Content aware image cropping
starfish - A simple Go graphics and user input library, built on SDL
stl - library for reading, writing, and manipulating Stereolithography (.stl) files used in 3D printing
svgo - a library for creating and outputting SVG
tag - a library for reading tag metadata and creating metadata-invariant checksums for audio files: FLAC, all IDv3 variants, and MP4 (ACC, ALAC)
tga - TARGA image format encoding/decoding library
tiff - Rich TIFF/BigTIFF/GeoTIFF decoder/encoder for Go.
twilio-go - Go client for the Twilio API.
videoinput - Go bindings for VideoInput (Windows).
vu - Virtual Universe. A skeleton 3D engine.
vulkan - Golang Bindings for Vulkan API.
webp - WebP decoder and encoder for Go.
wg - Web Graphics, display real time go graphics in browser, with user input.
window - Optimized moving window for real-time data
wingo - A fully-featured window manager written in Go.
Winhello - An example Windows GUI hello world application
wxGo - Go Wrapper for the wxWidgets GUI
xgb - A fork of the x-go-binding featuring support for thread safety and all X extensions.
xgbutil - A utility library to make use of the X Go Binding easier. (Implements EWMH and ICCCM specs, key binding support, etc.)
x-go-binding - bindings for the X windowing system

GUIs and Widget Toolkits

go-fltk - FLTK2 GUI toolkit bindings for Go
go-gtk - Bindings for GTK
go-qt5 - QT5 bindings for go
gothic - Tcl/Tk Go bindings
gotk3 - Go bindings for GTK3, requires GTK version 3.8
go.uik - A UI kit for Go, in Go. (project is closed)
go-webkit2 - Go bindings for the WebKitGTK+ v2 API (w/headless browser & JavaScript support)
Gowut - Gowut (Go Web UI Toolkit) is a full-featured, easy to use, platform independent Web UI Toolkit written in pure Go, no platform dependent native code is linked or called.
GXUI - A Go cross platform UI library.
iup - Bindings for IUP
mdtwm - Tiling window manager for X
qml - QML support for the Go language
ui - Platform-native GUI library for Go

Hardware

go.hid - Provides communication with USB Human Interface Devices.
gortlsdr - A librtlsdr wrapper, which turns certain USB DVB-T dongles into a low-cost, general purpose software-defined radio receiver.
hwio - Hardware I/O library for SoC boards including BeagleBone Black and Raspberry Pi.
stressdisk - Stress test your disks / memory cards / USB sticks before trusting your valuable data to them
gobot - Golang framework for robotics, drones, and the Internet of Things (IoT).

Language and Linguistics

alpinocorpus-go - A reader and a writer for Alpino corpora.
go-aspell - GNU Aspell spell checking library bindings for Go.
go-language - A simple language detector using letter frequency data.
goling - String Similarity(Cosine Similarity, Levenshtein Distance), Spell Check, Segmentation
go.stringmetrics - String distance metrics implemented in Go
inflect - Word inflection library (similar to Ruby ActiveSupport::Inflector). Singularize(), Pluralize(), Underscore() etc.
libtextcat - A Go wrapper for libtextcat.
sego - Chinese language segmenter.
textcat - N-gram based text categorization, with support for utf-8 and raw text

Logging and Monitoring

colog - CoLog is a prefix-based leveled execution log for Go
cue - Fast and flexible contextual logger. Supports output to file, syslog, structured syslog, stdout/stderr, socket, Loggly, Honeybadger, Opbeat, Rollbar, and Sentry.
epazote - Automated Microservices Supervisor.
factorlog - Really fast, featureful logging infrastructure (supports colors, verbosity, and many formats)
vlog - Leveled log on std log for Go
glog - Leveled execution logs for Go
go-logging - Supports different logging backends like syslog, file and memory. Multiple backends can be utilized with different log levels per backend and logger.
gomol - A multi-output logging library designed for outputs that support additional metadata with log messages.
graylog-golang - graylog-golang is a full implementation for sending messages in GELF (Graylog Extended Log Format) from Google Go (Golang) to Graylog
jWalterWeatherman - Seamless terminal printing and file logging that’s as easy to use as fmt.Println
immortal - A *nix cross-platform (OS agnostic) supervisor
log4go - Go logging package akin to log4j
logger - Go logging with buffered output and multiple writers
logrus - Structured, pluggable logging for Go with built-in hooks for third-party loggers: Airbrake, Papertrail, Loggly, Sentry...
MailJet Live Event Dashboard - API monitoring in real time.
monkit - A flexible process data collection, metrics, monitoring, instrumentation, and tracing library for Go
Prometheus - Monitoring system and time-series database.
rfw - Rotating file writer - a 'logrotate'-aware file output for use with loggers
sd - Writes to the systemd journal, supports user defined systemd journal fields
seelog - Flexible dispatching, filtering, and formatting
snap - Telemetry framework
spacelog - Hierarchical, leveled, and structured logging library for Go
statsgod - A rewrite of StatsD in Go.
syslog - With this package you can create your own syslog server with your own handlers for different kind of syslog messages
Tideland golib - Flexible logging
timber - Configurable Logger for Go

Machine Learning

bayesian - A naive bayes classifier.
ctw - Context Tree Weighting and Rissanen-Langdon Arithmetic Coding
evo - a framework for implementing evolutionary algorithms in Go.
go-algs/maxflow Maxflow (graph-cuts) energy minimization library.
go-galib - Genetic algorithms.
golinear - Linear SVM and logistic regression.
go_ml - Linear Regression, Logistic Regression, Neural Networks, Collaborative Filtering, Gaussian Multivariate Distribution.
gorgonia - Neural network primitives library (like Theano or Tensorflow but for Go)
go-porterstemmer - An efficient native Go clean room implementation of the Porter Stemming algorithm.
go-pr - Gaussian classifier.
ntm - Neural Turing Machines implementation
paicehusk - Go implementation of the Paice/Husk Stemmer
snowball - Snowball stemmer
go-mind - A neural network library built in Go
Anna - Artificial Neural Network Aspiration, aims to be self-learning and self-improving software.

Mathematics

bayesian - Naive Bayesian Classification for Go
blas - Go implementation of BLAS (Basic Linear Algebra Subprograms)
cartconvert - cartography functions for the Go programming language
clp - Go bindings for the COIN-OR Linear Programming (CLP) library
Cvx - Convex optimization package, port of CVXOPT python package
dice - Dice rolling library
evaler - A simple floating point arithmetic expression evaluator
fixed - A fixed point (Q32.32 format) math library
geom - 2d geometry
gini - SAT Solver/Boolean Logic Tools
gochipmunk - Go bindings to the Chipmunk Physics library
gocomplex - a complex number library
godec - multi-precision decimal arithmetic
gofd - concurrent finite domain constraint solver.
go-fftw - Go bindings for FFTW - The Fastest Fourier Transform in the West
go-fn - Special functions that would not fit in "math" pkg
gographviz - Graphviz DOT language parser for Go
go-gt - Graph theory algorithms
go-humanize - Formatting numbers for humans.
golibs/xmath - a collection of math functions (mostly mean algorithms)
go-lm - Linear models in Go. Provides WLS and regression with t residuals via a cgo -> BLAS/LAPACK interface.
go.mahalanobis - Naive implementation of the Mahalanobis distance using go.matrix
gomat - lightweight FAST matrix and vector math
go_matrix_cuda - GPU-Accelerated Linear Algebra Libraries based in CUDA
go.matrix - a linear algebra package
gonum - Scientific packages (linear algebra, BLAS, LAPACK, differentiation, plots, linear programming, statistics, ...)
go-symexpr - Symbolic math as an AST with derivatives, simplification, and non-linear regression
gsl - GNU Scientific Library bindings
interval - Package interval handles sets of ordered values laying between two, possibly infinite, bounds.
mathutil - Package mathutil provides utilities supplementing the standard 'math' and 'rand' packages.
mt19937_64 - Mersenne Twister int64 random source
permutation - Package permutation generates permutations of the indices of a slice
polyclip.go - Go implementation of algorithm for Boolean operations on 2D polygons
primes - Simple functionality for working with prime numbers.
prime - Go version of Segmented Sieve and non Segmented sieve to produce prime numbers
primegen.go - Sieve of Atkin prime number generator
pso-go - A library of PSO (Particle Swarm Optimization) for Go.
rand - 64-bit version of the math/rand package with Mersenne twister support.
roger - A Go client for the RServer, allowing you to invoke R programs from Go.
stats - A statistics package with common functions missing from the Golang standard library.
statistics - GNU GSL Statistics (GPLv3)
Tideland golib - Numerics package for statistcal analysis
Units - Implements types, units, converter functions and some mathematics for some common physical types. lib
vector - A small vector lib.
humanize - formats large numbers into human readable small numbers

Microservices

gokit - The Go Kit microservice framework (and author interview).
go-micro - Go Micro is a microservices library which provides the fundamental building blocks for writing fault tolerant distributed systems at scale.
kite - RPC server and client framework.

Miscellaneous

atexit - Simple atexit library
bíogo - Basic bioinformatics functions for the Go language.
Breaker - Breaker enables graceful degraded mode operations by means of wrapping unreliable interservice interface points with circuit breaker primitives.
btcrpcclient - A Websocket-enabled Bitcoin JSON-RPC client.
cast - Safe and easy casting from one type to another in Go
CGRates - Rating system designed to be used in telecom carriers world
cpu - A Go package that reports processor topology
cron - A library for running jobs (funcs) on a cron-formatted schedule
daemonigo - A simple library to daemonize Go applications.
dbus-go - D-Bus Go library
desktop - Open file/uri with default application (cross platform)
devboard - Kanban board application based on Simple-Khanban
dioder-api - An API to IKEA dioder LED-strips
dump - An utility that dumps Go variables, similar to PHP's var_dump
env - Easily pull environment variables with defaults
epub - Bindings for libepub to read epub content.
EventBus - Lightweight event bus with async compatibility for Go .
faker - Generate fake data, names, text, addresses, etc.
fsnotify - File system notifications for Go
functional - Functional programming library including a lazy list implementation and some of the most usual functions.
GCSE - Go code search engine. source
generate - runs go generate recursively on a specified path or environment variable and can filter by regex.
go-amiando - Wrapper for the Amiando event management API
go-bit - An efficient and comprehensive bitset implementation with utility bit functions.
go-bitops - common bit operations for 32/64 bit integer
go-business-creditcard - Validate/generate credit card checksums/names.
gochem - A computational chemistry/biochemistry library.
gocsv - Library for CSV parsing and emitting
go.dbus - Native Go library for D-Bus
go-ean - A minimal utility library for validating EAN-8 and EAN-13 and calculating checksums.
go-eco - Functions for use in ecology
go-erx - Extended error reporting library
go-eventsocket - An event socket client/server library for the FreeSWITCH telephony platform.
GoFakeIt - Fake Data Generator. 65+ different variations and examples for each
go-fann - Go bindings for FANN, library for artificial neural networks
GoFlow - Flow-based and dataflow programming library for Go
goga - A genetic algorithm framework
gogobject - GObject-introspection based bindings generator
go-idn - a project to bring IDN support to Go, feature compatible with libidn
GoLCS - Solve Longest Common Sequence problem in go
golibs/as - Converting data types
golife - Implementation of Game of Life for command line
go-magic - A Go wrapper for libmagic
go-magic - Simple interface to libmagic for Go Programming Language
go-metrics - Go port of Coda Hale's Metrics library
gommap - gommap enables Go programs to directly work with memory mapped files and devices in a very efficient way
gomusicbrainz - MusicBrainz WS2 client library
goneuro - Go driver for NeuroSky devices.
goNI488 - A Go wrapper around National Instruments NI488.2 General Purpose Interface Bus (GPIB) driver.
go-osx-plist - CoreFoundation Property List support for Go
go-papi - Go interface to the PAPI performance API
go.pcsclite - Go wrapper for pcsc-lite
Go-PhysicsFS - Go bindings for the PhysicsFS archive-access abstraction library.
go.pipeline - Library that emulates Unix pipelines
go-pkg-mpd - A library to access the MPD music daemon
go-pkg-xmlx - Extension to the standard Go XML package. Maintains a node tree that allows forward/backwards browser and exposes some simpel single/multi-node search functions
goplan9 - libraries for interacting with Plan 9
goPromise - Scheme-like delayed evaluation for Go
go-qrand - Go client for quantum random bit generator service at random.irb.hr
goraphing - A tool to generate a simple graph data structures from JSON data files
go-selenium - Selenium WebDriver client for Go
go-semvar - Semantic versions (see http:/semver.org)
go-serial - Go binding to libserialport for serial port functionality (cgo).
goST - A steam properties (steam table) library written for Go. This was designed as a native go equivalent to XSteam.
go-taskstats - Go interface for Linux taskstats
gotenv - Loads environment variables from .env file
Gotgo - A Go preprocessor that provides an implementation of generics
go-translate - Google Language Translate library
go-uuid - Universal Unique IDentifier generator and parser
gouuid - Pure Go UUID v3, 4 and 5 generator compatible with RFC4122
go-villa - Some miscellaneous wrapper and small algorithms.(wrappers to slices, priority queues, path related apis, a string set type)
Hranoprovod - Command-line calorie tracking
lineup - A minimalistic message queue server
mitigation - Package mitigation provides the possibility to prevent damage caused by bugs or exploits.
nma.go - A NotifyMyAndroid client for go.
notify - File system event notification library with API similar to os/signal.
passwd - A parser for the /etc/passwd file
pool - A generic worker pool
procfile - A Procfile parser
Prometheus Instrumentation/Metrics Client - This is a whitebox instrumentation framework for servers written in Go. It exposes programmatically-generated metrics automatically for use in the Prometheus time series collection and post-processing environment.
randat - Devel tool for generating random bytestrings and encoding files in code-friendly forms
recycler - A more flexible object recycling system than sync.Pool. Provides constructors and destructors for the objects as well as control over the length the free.
replaykit - A library for replaying time series data.
serial - Serial ports API (pure Go)
sio - Package sio lets you access old serial junk. It's a go-gettable fork and modification of dustin's rs232 package.
stats - Monitors Go MemStats + System stats such as Memory, Swap and CPU and sends via UDP anywhere you want for logging etc...
symutils - Various tools and libraries to handle symbolic links
toktok - Creates and resolves unique, typo & error-resilient, human-readable tokens
twitterfetcher - A tool to make Twitter API requests using the Application-only authentication
udis86 - Go bindings for libudis86
ugo - underscore.js like toolbox for Go
Vboxgo - user-like access to VirtualBox VMs from Go.
Wukong - A highly extensible full-text search engine written in Go.
xplor - Files tree browser for p9p acme
yubigo - Yubikey OTP validation and auhtentication API client.

Music

gmask - Go adaptation of the Cmask utility for Csound
go-csnd6 - Go binding to the Csound6 API
go-csperfthread - Go binding to the CsoundPerformanceThread helper class of the Csound6 API
go-libshout - Go bindings for libshout
gompd - A client interface for the MPD (Music Player Daemon)
launchpad - A Go client for Novation Launchpad
portmidi - Go bindings for libportmidi

Networking

DNS

bitz - BitMessage client node and library
dingo - A DNS client in Go that supports Google DNS over HTTPS
dns - A DNS library in Go
dnsimple - an interface to the DNSimple API
dyndnscd - a configurable dyndns client
GeoDNS - geo-aware authoritative DNS server
grong - Small authoritative DNS name server
mdns - Multicast DNS library for Go
hostsfile - /etc/hostsfile reverse lookup IP => names
dnss - DNS secure proxy, supports DNS over HTTPS and GRPC
domainerator - Command line tool to combine wordlist and suffixes/TLDs into domain names and check if they are registered or not.

FTP

ftp4go - An FTP client for Go, started as a port of the standard Python FTP client library
ftp - Package ftp provides a minimal FTP client as defined in RFC 959
ftps - An implementation of the FTPS protocol
goftp - A FTP client library

HTTP

apiproxy - proxy for HTTP/REST APIs with configurable cache timeouts
boom - HTTP(s) benchmarking tool, Apache Benchmark replacement
eventsource - Server-sent events for net/http server.
fasthttp - Fast HTTP package for Go
gbench - HTTP(s) Load Testing And Benchmarking Tool inspired by Apache Benchmark and Siege.
gobench - HTTP/HTTPS load test and benchmark tool
go-curl - libcurl bingding that supports go func callbacks
goproxy - a programmable HTTP proxy.
handlers - Collection of useful HTTP middlewares.
gostax - A Streaming API for XML (StAX) in go

IMAP

go-imap - An IMAP library for clients and servers.
go-imap - IMAP client library
go-imap - Implementation of IMAP4rev1 client, as described in RFC 3501

Instant Messaging

hanu - Framework for writing Slack bots
gobir - Extensible IRC bot with channel administration, seen support, and go documentation querying
goexmpp - XMPP client implementation
goirc - event-based stateful IRC client framework
go-irc - Simple IRC client library
gorobot - a modular IRC bot
go-xmpp - XMPP client library
ircflu - IRC bot with support for commands, scripting and web-hooks
irc.go - Go IRC bot framework
sirius - A fast and ultra-lightweight chat server written in Go
xmpp-client - an XMPP client with OTR (off-the-record) support

NNTP

go-nntp - An NNTP client and server library for go

Protocol Buffers

gogoprotobuf - another Go implementation of Protocol Buffers, but with extensions and code generation plugins.
golang_protobuf_extensions - Protocol Buffer extensions to support streaming message encoding and decoding.
goprotobuf - the Go implementation of Google's Protocol Buffers
protorpc - Google Protocol Buffers RPC for Go and C++

rsync

replican-sync - An rsync algorithm implementation in Go
Rsync - Rsync algorithm as a Go library

Telnet

telnet - Package telnet provides TELNET and TELNETS client and server implementations, for the Go programming language, in a style similar to the "net/http" library (that is part of the Go standard library) including support for "middleware"; TELNETS is secure TELNET, with the TELNET protocol over a secured TLS (or SSL) connection.
telnet - A simple interface for interacting with Telnet connection
telnets - A client for the TELNETS (secure TELNET) protocol.

VNC

glibvnc - Go wrapper using CGO for the libvnc library.

Websockets

Gorilla WebSocket - WebSocket protocol implementation
websocketd - HTTP server that converts STDIN/STDOUT program into WebSockets service. Also handles HTML and CGI.
wst - A dead simple WebSocket tester
ws-cli - WebSocket command line client

ZeroMQ

goczmq - Wrapper for the CZMQv3 interface - blog post
gozmq - Go Bindings for 0mq (zeromq/zmq)
zmq2 - A Go interface to ZeroMQ (zmq, 0MQ) version 2.
zmq3 - A Go interface to ZeroMQ (zmq, 0MQ) version 3.
zmq4 - A Go interface to ZeroMQ (zmq, 0MQ) version 4.

Misc Networking

betwixt - Betwixt implements the OMA Lightweight M2M (LWM2M) protocol for Device Management and Monitoring
canopus - CoAP Client/Server implementation (RFC 7252)
chunkedreader - A light weight library for reading continuous fixed sized messages from TCP streams.
circle - Go interface to the libcircle distributed-queue API
createsend-go - API client for Monitor http://www.campaignmonitor.com (email campaign service)
dmrgo - Library for with Hadoop Streaming map/reduce
doozerconfig - Go package for managing json-encoded configuration in Doozer
doozerd - A consistent distributed data store
endless Zero downtime restarts for go servers (Drop in replacement for http.ListenAndServe/TLS)
gearman-go - A native implementation for Gearman API with Go.
Glue - Robust Go and Javascript Socket Library (Alternative to Socket.io)
goagain - zero-downtime restarts in Go
Go Ajax - Go Ajax is a JSON-RPC implementation designed to create AJAX powered websites.
gobeanstalk - Go Beanstalkd client library
go-camo - Go http image proxy (camo clone) to route images through SSL
go-dbus - A library to connect to the D-bus messaging system
go-diameter - Diameter stack and Base Protocol (RFC 6733)
go-smpp - SMPP 3.4 protocol implementation
go-flowrate - Data transfer rate control (monitoring and limiting)
gogammu - Library for sending and receiving SMS
go-icap - ICAP (Internet Content Adaptation Protocol) server library
gonetbench - Simple TCP benchmarking tool
gonetcheck - package for checking general internet access
goodhosts - Simple hosts file (/etc/hosts) management in Go
gopacket - Packet encoding/decoding, pcap/pfring/afpacket support, TCP assembly, and more!
gopcap - A simple wrapper around libpcap
goq - A persistent message queue written in Go.
goradius - A Radius client written in Go
go-rpcgen - ProtoBuf RPC binding generator for net/rpc and AppEngine
gorpc - RPC optimized for high load
GoRTP - RTP / RTCP stack implementation for Go
GoSIPs - SIP (Session Initiation Protocol) Stack in Go
mqtt - MQTT stack in Go
gosndfile - Go binding for libsndfile
gosnmp - an SNMP library written in GoLang.
go-socket.io - A Socket.IO backend implementation written in Go
gosocks - A SOCKS (SOCKS4, SOCKS4A and SOCKS5) proxy client library in Go.
go-sslterminator - SSL terminator proxy
go-statsd-client - Go statsd client library
Grumble - Mumble (VoIP) server implementation
handlersocket-go - Go native library to connect to HandlerSocket interface of InnoDB tables
HomeControl - an implementation of Apple's HomeKit Accessory Protocol (HAP)
Hprose - Hprose is a High Performance Remote Object Service Engine.
httpfstream - streaming append and follow of HTTP resources (using WebSockets)
ipaddress - Convenient ip address functions: ip -> int, int -> ip, and IPNet broadcast address
iris-go - Go binding for the Iris decentralized messaging framework.
iris - Peer-to-peer messaging for back-end decentralization.
kafka.go - Producer & Consumer for the Kafka messaging system
lcvpn - Decentralized VPN implementation
ldap - Basic LDAP v3 functionality for the GO programming language.
mbxchan - An easy communication between distributed Go applications using standard Go channels and remote procedure calls.
nagiosplugin - package for writing Nagios/monitoring plugins
NATS - NATS distributed messaging system client for Go
netsnail - A low-bandwidth simulator
netutils - Simple interface for turning TCP Sockets into channels.
npipe - a pure Go wrapper for Windows named pipes
norm - reliable UDP using multicast and unicast sockets
opendap - Go wrapper for Openldap
pusher-http-go - Go library for interacting with the Pusher Realtime API
QRP - QRP is a simple packet-based RPC protocol designed as a simple alternative to Go's rpc, that can run over UDP
remotize - A remotize package and command that helps remotizing methods without having to chaneg their signatures for rpc
rs232 - Serial interface for those of us who still have modems (or arduinos)
rss - RSS parsing library.
seamless - Reverse TCP Proxy with HTTP management API
shell2http - Executing shell commands via simple http server
sockjs-go - Implements server side counterpart for the SockJS-client browser library.
SOCKS5 Server - Scalable SOCKS5 server with Access Control Lists
spark - Emergency web server (for static files)
spdy - SPDY library, wired into net/http, currently supporting servers only.
statsd-go - Statsd implementation in Go, forked from gographite, which submits to Ganglia
stompngo_examples - Examples for stompngo.
stompngo - A Stomp 1.1 Compliant Client
tcp_fallback - A TCP proxy implementing a simple fallback mechanism.
tcpmeter - A TCP throughput measuring tool
toxiproxy - Framework for simulating network conditions.
traceroute - A traceroute implementation
traefik - Modern, reverse proxy in Go
Uniqush - A free and open source software which provides a unified push service for server-side notification to apps on mobile devices.
uritemplates - A level 4 implementation of URI Templates (RFC 6570)
VDED - Vector Delta Engine Daemon - track deltas in ever-increasing values (written in Go)
zero-downtime-daemon - Configurable zero downtime daemon (Hot Update) framework for any kind of TCP,HTTP,FCGI services
zeroupgrade - Upgrades network servers with zero downtime
cwmp-proxy - Reverse cwmp proxy
netstat-nat - Display NAT entries on Linux systems
go-nat-pmp - A client for the NAT-PMP protocol used in Apple and open-source routers
humanize-bytes - Command-line utilities to convert "MiB" etc to raw numbers, and back

Operating System Interfaces

Go FUSE file system library - From-scratch implementation of the kernel-userspace communication protocol based on Russ Cox'.
Go-fuse - Library to write FUSE filesystems in Go
go-osx-xattr - Package xattr wraps OS X functions to manipulate the extended attributes of a file, directory and symbolic link.
inspect/os - Metrics library for operating system measurements (Linux/MacOSX)
service - Service will install / un-install, start / stop, and run a program as a service (daemon) on Windows/Linux and OSX.
go-nbd - Library to write block devices for Linux in Go.

Other Random Toys, Experiments and Example Code

goconc - A collection of useful concurrency idioms and functions for Go, compiled
go-crazy - An experimental source-to-source compiler for go
go-gtk-demo - A demonstration of how to use GTK+ with Go.
go-hashmap - A hash table in pure go as an experiment in Go performance
golang-examples - A bunch of golang examples
GolangSortingVisualization - A visualization of various sorting algorithms in Go
golibs - A collection of tiny go packages (and also a test repo for various CI and coverage services)
goplay - A bunch of random small programs in Go
lifegame-on-golang - Game of Life in Go
linear - Playing around with the linear algebra
pl0 - PL/0 front end, compiler and VM. .
project euler in go - Solutions to Project Euler in Go also
shadergo - shader test using Go
travisci-golang-example - Travis-CI example for Go

P2P and File Sharing

DHT - Kademlia DHT node used by Taipei-Torrent, compatible with BitTorrent
ed2kcrawler - eDonkey2000 link crawler
gop2p - A simple p2p app to learn Go
go-p2p - P2P module for blockchains and more
GoTella - A Go implementation of the Gnutella Protocol
Taipei-Torrent - A BitTorrent client
Tendermint - P2P Byzantine-Fault-Tolerant consensus & blockchain stack
wgo - A simple BitTorrent client based in part on the Taipei-Torrent and gobit code

Programming

go-clang - cgo bindings to the C-API of libclang
godeferred - port of jsdeferred: http://cho45.stfuawsc.com/jsdeferred/
go-galib - a library of Genetic Algorithms
go-intset - a library to work with bounded sets of integers, including multiple alternative implementations
go-parse - a Parsec-like parsing library
sh - a shell/bash parser and formatter
Shuffle - Implementation of the Fisher–Yates shuffle (or Knuth shuffle) in Go.

Resource Embedding

fileb0x - Simple tool to embed files in go with focus on "customization" and ease to use.
go-bindata - Package that converts any file into managable Go source code.
go-resources - Unfancy resources embedding with Go.
go.rice - go.rice is a Go package that makes working with resources such as html,js,css,images and templates very easy.
statics - Embeds static resources into go files for single binary compilation + works with http.FileSystem + symlinks.

RPC

gowsdl - WSDL code generation
gRPC - Google's multi-language RPC framework with Go support

Scanner and Parser Generators

ebnf2y - Utility for converting EBNF grammars into yacc compatible skeleton .y files.
gocc - Go Compiler Compiler
golex - Lex/flex like fast (DFA) scanners generator.
gopp - Go Parser Parser
goyacc - Goyacc is a version of yacc generating Go parsers.
y - Package y converts .y (yacc) source files to data suitable for a parser generator.
yy - yacc to yacc compiler.
flexgo - A version of flex that can produce Go code.
fsm - FSM (NFA, DFA) utilities.
Ragel - State Machine Compiler
lexmachine - Lexical Analysis Framework for Golang

Security

acme - ACME certificate acquisition tool
casbin - An authorization library that supports access control models like MAC, RBAC, ABAC
gryffin - A large scale security scanner by Yahoo!
hyperfox - a security tool for proxying and recording HTTP and HTTPs communications on a LAN
lego - Let's Encrypt client and ACME library
webseclab - a sample set of web security test cases and a toolkit to construct new ones

Simulation Modeling

godes - Library for building discrete event simulation models

Sorting

funnelsort - Lazy funnel sort -- a cache-oblivious sorting algorithm
Sortutil - Nested, case-insensitive, and reverse sorting for Go.
sortutil - Utilities supplemental to the Go standard "sort" package
tarjan - Graph loop detection function based on Tarjan's algorithm
timsort - Fast, stable sort, uses external comparator or sort.Interface

Source Code Management

Gitfile - A lightweight package manager for installing git repos
go-deps - Analyzes and recursively installs Go package deps (library functionality similar to go get)
go-diff - A diff command for go languange showing semantic differences of two go source files.
gogitver - Embeds a git tag (version string) into your application
go-many-git - Manage and run commands across multiple git repositories
go-pkgs - Finds all matching packages in all of the GOPATH trees (library functionality similar to go list all)
go-vcs - clone and check out revs of VCS repositories (git and hg support)
go-vcsurl - Lenient VCS repository URL parsing library
hggofmt - A Mercurial/hg extension with a hook to
nut - Nut is a tool to manage versioned Go source code packages, called "nuts".
vcstool - VCS abstraction tool

Storage

Minio - Object Storage compatible with Amazon S3 API
libStorage - an open source, platform agnostic, storage provisioning and orchestration framework, model, and API
OpenEBS - Containerized, Open source block storage for your containers,integrated tightly into K8S and other environments and based on distributed block storage and containerization of storage control

Strings and Text

allot - Placeholder and wildcard text parsing for CLI tools and bots
awk - Easy AWK-style text processing in Go
binarydist - Binary diff and patch
Black Friday - A markdown processor
codename-generator - A codename generator meant for naming software releases
columnize - format slice or array into aligned columns
csvplus - Extends the standard Go encoding/csv package with fluent interface, lazy stream operations, indices and joins.
csvutil - A heavy duty CSV reading and writing library.
dgohash - Collection of string hashing functions, including Murmur3 and others
douceur - A simple CSS parser and inliner in Go.
dsv - A library for working with delimited separated value (DSV).
flux - Fluent Regular Expressions in golang
genex - Expansion of Regular Expressions
gettext-go - GNU's gettext support, written in pure Go
gettext - Golang bindings for gettext; Feature complete, cgo
go-colortext - Change the color of the text and background in the console, working both in Windows and other systems.
go-guess - Go wrapper for libguess
goagrep - fast fuzzy string matching using precomputation
goini - A go library to parse INI files
golorem - lorem ipsum generator
go-migemo - migemo extension for go (Japanese incremental text search)
go-ngram N-gram index for Go
goregen - A Go library for generating random strings from regular expressions.
goskirt - Upskirt markdown library bindings for Go
gosphinx - A Go client interface to the Sphinx standalone full-text search engine
govalidator - Package of string validators and sanitizers
gpKMP - String-matching in Go using the Knuth–Morris–Pratt algorithm
hangul - Handy tools to manipulate Korean character
html2text - Golang HTML to text conversion library
intern - Map strings to symbols for constant-time comparisons
kasia.go - Templating system for HTML and other text documents
kview - Simple wrapper for kasia.go templates. It helps to modularize content of a website
logparse - Parser for most common log formats
NTemplate - Nested Templates
parse - PEG parser that uses reflection to define grammar
peg - Parsing Expression Grammer Parser
plural - No-fuss plurals for formatting both countable and continuous ranges of values.
polyglot - String translation utilities for Go
pretty.go - Pretty-printing for go values
raymond - A complete handlebars implementation in Go.
rubex - A simple regular expression library that supports Ruby's regex syntax. It is faster than Regexp.
sanitize - Package sanitize provides functions for sanitizing html and text.
scanner - A text scanner that parses primitive types, analogous to Java's
segment - An implementation of Norvig's recursive word segmentation algorithm
sprig - Template functions for Go templates.
strftime - strftime implementation
strit - Package strit introduces a new type of string iterator, as well as a number of iterator constructors, wrappers and combinators.
strogonoff - Stenography with Go
strutil - Package strutil collects utils supplemental to the standard strings package.
text - Text paragraph wrapping and formatting
Tideland golib - Stringex package for statistcal analysis
useragent - User agent string parser
xurls - Extract urls from 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

validator - Go Struct and Field validation, including Cross Field, Cross Struct, Map, Slice and Array diving
validation - Simple independent struct/key-value validation

Version Control

git (in go) - Minimal working git client in Go
gogs - Self-hosting Git Server in Go
semver - Semantic Versioning (SemVer) library

Virtual Machines and Languages

agora - A dynamically typed, garbage collected, embeddable programming language built with Go
anko - Scriptable interpreter written in golang
forego - Forth virtual machine
Gelo - Extensible, embeddable interpreter
GoEmPHP - This package is built for Embedding PHP into Go
goenv - Create an isolated environment where you install Go packages, binaries, or even C libraries. Very similar to virtualenv for Python.
GoForth - A simple Forth parser
golemon - A port of the Lemon parser-generator
GoLightly - A flexible and lightweight virtual machine with runtime-configurable instruction set
goll1e - An LL(1) parser generator for the Go programming language.
Golog - Prolog interpreter in Go
go-lua - Shopify's lua interpreter
golua - A fork of GoLua that works on current releases of Go
gomruby - mruby (mini Ruby) bindings for Go
gopher-lua - A Lua 5.1 VM and compiler written in Go
go-php - PHP bindings for Go
go-python - go bindings for CPython C-API
gotcl - Tcl interpreter in Go
v8 - V8 JavaScript engine bindings for Go (supports V8 builds at least up to 5.8.244)
go-v8 - V8 JavaScript engine bindings for Go
LispEx - A dialect of Lisp extended to support for concurrent programming, written in Go.
meme - Scheme interpreter in Go
Minima - A language implemented in Go
ngaro - A ngaro virtual machine to run retroForth images
otto - A JavaScript parser and interpreter written natively in Go
RubyGoLightly - An experimental port of TinyRb to Go

Web Applications

Presento - The simplest possible cross-platform remote control for the presentations
Caddy - A fast, capable, general-purpose HTTP/2 web server that's easy to use
Digestw - A Web Application - Twitter's Timeline Digest
fabio - A fast zero-conf load balancing HTTP router for microservices.
fourohfourfound - A fallback HTTP server that may redirect requests with runtime configurable redirections
Fragmenta - A CMS built in Go
freegeoip - IP geolocation web service (web server of freegeoip.net)
goals-calendar - A web-based Seinfeld calendar implemented in Go
goblog - A static blog engine
gocrawl - A polite, slim and concurrent web crawler.
goflash - Flash player implementation in Go language
gogallery - simple web server with an emphasis on easily browsing images
goof - A simple http server to exchange files over http (upload/download)
gopages - A php-like web framework that allows embedding Go code in web pages
go_spider - A flexible ,modularization and concurrent web crawler framework.
GoURLShortener - A frontend for the http://is.gd/ URL shortener
gowall - A website and user system
httpfolder - A http server to exchange files over http with basic authentication (upload/download)
Hugo - A fast and flexible static site generator implemented in Go
Já Vai Tarde - Unfollows monitoring for Twitter
kurz.go - a url shortener based on web.go and redis
Monsti - Resource friendly flat file CMS for private and small business sites.
now.go - A simple HTTP-based to-do queue.
Peach - A web server for multi-language, real-time synced and searchable documentation.
rabbitmq-http - REST API for RabbitMQ
serve-files - Far-future and gzip wrapper around the standard net/http server.
sf_server - a tiny send file server and client
Tideland golib - Web package for REST request handling
Vantaa - A modular blogging API engine written in Go, Neo4j and Polymer.
websiteskeleton - Simple net/http website skeleton
webtf - Web app to graphical visualization of twitter timelines using the HTML5
Wikifeat - Extensible wiki system using CouchDB written in Golang
Freyr - Server for storing and serving readings from plant environment sensors. Integrates Golang API with ReactJS web app; uses Docker for testing/deployment.
Rickover - Job queue with a HTTP API, backed by Postgres

Web Libraries

Authentication

goth - Package goth provides a simple, clean, and idiomatic way to write authentication packages for Go web applications
authcookie - Package authcookie implements creation and verification of signed authentication cookies.
dgoogauth - Go port of Google's Authenticator library for one-time passwords
goauth - A library for header-based OAuth over HTTP or HTTPS.
GOAuth - OAuth Consumer
go-http-auth - HTTP Basic and HTTP Digest authentication
Go-OAuth - OAuth 1.0 client
goha - Basic and Digest HTTP Authentication for Go http client
hero - OAuth server implementation - be an OAuth provider with Go
httpauth-go - Package httpauth provides utilities to support HTTP authentication policies. Support for both the basic authentication scheme and the digest authentication scheme are provided.
httpauth - HTTP session (cookie) based authentication and authorization
oauth1a - OAuth 1.0 client library
OAuth Consumer - OAuth 1.0 consumer implementation
otp - HOTP and TOTP library with command line replacement for Google Authenticator
totp - Time-Based One-Time Password Algorithm, specified in RFC 6238, works with Google Authenticator
go-otp - Package go-otp implements one-time-password generators used in 2-factor authentication systems like RSA-tokens. Currently this supports both HOTP (RFC-4226), TOTP (RFC-6238) and Base32 encoding (RFC-3548) for Google Authenticator compatibility

DOM handling

Cascadia - CSS selector library
GoQuery - jQuery-like DOM manipulation library, using Go's experimental HTML package.
goq - jQuery-like declarative struct tag scraping and unmarshaling based on GoQuery.
html-query - A fluent and functional approach to querying HTML.
HTML Transform - A CSS selector based html scraping and transformation library

Frameworks and Toolkits

Air - An ideal RESTful web framework for Go.
alien - A lightweight and fast http router
app.go - Web framework for google app engine
arasu - A Lightning Fast Web Framework written in Go & Dart
Beego - Beego is an open source version of the scalable, non-blocking web framework.
browserspeak - Generate HTML templates, CSS or SVG without writing < or >
httpcoala - Library for request coalescing - handy for reverse proxies.
falcore - Modular HTTP server framework
fcgi_client - Go fastcgi client with fcgi params support
florest - High-performance workflow based REST API framework in Go
forgery - A clone of the superb Node.js web framework Express.
Gin Web Framework - Martini-like API and httprouter gives it good performance.
Goal - A toolkit for high productivity web development in Go language built around the concept of code generation.
Go-Blog - Blog framework written in Go
go-fastweb - aims to be a simple, small and clean MVC framework for go
goku - a Web Mvc Framework for Go, mostly like ASP.NET MVC.
Golanger - Golanger Web Framework is a lightweight framework for writing web applications in Go.
Goldorak.Go - a web miniframework built using mustache.go, web.go and Go-Redis
go-restful - lean package for building REST-style Web Services
GoRest - An extensive configuration(tags) based RESTful style web-services framework.
go-rest - A small and evil REST framework for Go
gorilla - Gorilla web toolkit
GoSrv - A Go HTTP server that provides simple command line functionality, config loading, request logging, graceful connection shutdown, and daemonization.
go-start - A high level web-framework for Go
go-urlshortener - interface to google's urlshorten API
goweb - Lightweight RESTful web framework for Go providing Ruby on Rails style routing
go-webproject - Modular web application framework and app server
Gowut - Go Web UI Toolkit is a full-featured, easy to use, platform independent Web UI Toolkit written in pure Go.
HttpRouter - A high performance HTTP request router that scales well
limiter - Simple rate limter middleware for Go
Macaron - Modular web framework in Go
mango - Mango is a modular web-application framework for Go, inspired by Rack, and PEP333.
Martini deprecated - Martini is a popular, lightweight, extensible package for writing modular web apps/services in Go
Negroni - Idiomatic middleware for Go
restclient - Client library for interacting with RESTful APIs.
resty - REST client library inspired by Ruby rest-client.
Revel - High productivity web framework modeled on Play! Framework
Ringo - Lighweight MVC web framework inspired by Rails, Gin.
sawsij - Provides a small, opinionated web framework.
Tango - Micro-kernel & pluggable web framework for Go
Tiger Tonic - framework for building JSON web services inspired by Dropwizard
trinity - MVC framework
Utron - MVC Framework
Violetear - HTTP router
web.go - a simple framework to write webapps
wfdr - Simple web framework designed for and written in go. Works with other languages as well, but not as well.
xweb - A web framework for Go. Just like Struts for Java.

HTML forms

form - Complete bidirectional HTML form encoder & decoder (x-www-form-urlencoded) for arbitrary data (package encoding compatible)
gforms - HTML forms for Go
Go-FORM-it - Go library for easy and highly-customizable forms creation and template rendering.
GoForms - Form data validation, cleaning and error reporting - a la django.forms
htmlfiller - Fills in html forms with default values and errors a la Ian Bicking's htmlfill for Python
MonstiForm - HTML form generator and validator library
revel-csrf - Cross-Site Request Forgery (CSRF) attacks prevention for the Revel framework
xsrftoken - A package for generating and validating tokens used in preventing XSRF attacks

Public API Wrappers

adn - Interface to the App.net API
anaconda - Client library for the Twitter 1.1 API
ddg - DuckDuckGo API interface
facebook - Up-to-date facebook graph API client. Handy and flexible
filepicker-go - Go library for the Filepicker's REST API
firebase - Client library for the Firebase REST API
gh - Scriptable server and net/http middleware for GitHub Webhooks API
github - Go library for accessing the GitHub REST API v3
githubql - Go library for accessing the GitHub GraphQL API v4
gobo - Client library for Sina Weibo
gocaptcha - gocaptcha provides easy access to the reCaptcha API in go
go-dealmap - Go library for accessing TheDealMap's API
go-dropbox - API library for dropbox
go-flickr - A wrapper for Flickr's API
go-get-youtube - A simple library+client for fetching meta data of, and downloading Youtube videos
go-gravatar - Wrapper for the Gravatar API
go-hummingbird - Go library for accessing the Hummingbird.me API
go-libGeoIP - GO Lib GeoIP API for Maxmind
gominatim - Go library to access nominatim geocoding services
gomojo - Instamojo API wrapper
gomwapi - Access mediawiki contents like wikipedia, wiktionary in golang
go-myanimelist - Go library for accessing the MyAnimeList API
googtrans - unofficial go bindings for Google Translate API v2
go-recaptcha - Handles reCaptcha form submissions in Go
gorecurly - A Client app to use with Recurly's api
go.strava - Official client library for the Strava V3 API
go.stripe - a simple credit card processing library for Go using the Stripe API
Gotank - Searchify's Go client for the IndexTank full-text search API
go-tripit - Go API library for the TripIt web services
GoTwilio - Twilio library for Go (golang). Very basic at the moment
gravatar - Gravatar image/profile API library
jsonapi - Generate JSON API from Go structs
postmark - Access postmark API from Go
reddit.go - Client library for Reddit API
shorturl - Generic implementation for interacting with various URL shortening services
Stack on Go - Go wrapper for Stack Exchange API
stripe - Official Stripe client library
SocialSharesCount - Wrapper API on multiple social websites to get URL share statistics
twilio - Simple Twilio API wrapper
twittergo - Client library for Twitter's API
cloudcomb-go-sdk - Go client library for CloudComb

Other

adhoc-http - Quick & dirty HTTP static file server
assets - Helps prepares CSS and JS files for development and production of Go web apps.
bwl - a set of libraries to help build web sites
captcha - Image and audio captcha generator and server
gaerecords - Lightweight wrapper around appengine/datastore providing Active Record and DBO style management of data
get2ch-go - a library to access the 2channel Japanese web bulletin board
gofeed - Parse RSS and Atom feeds in Go
go-gzip-file-server - A net.http.Handler similar to FileServer that serves gzipped content
gohaml - An implementation of the popular XHTML Abstraction Markup Language using the Go language.
go-httpclient - a Go HTTP client with timeouts
gojwt - Json Web Tokens for Go
go-pkg-rss - a packages that reads RSS and Atom feeds
gorefit - A library for theming existing websites
goreman - foreman clone
GoRequest - Simplified HTTP client with rich features such as proxy, timeout, and etc. ( inspired by nodejs SuperAgent )
goroute - A very simple URL router based on named submatches of regular expression that works well with http.Handler .
gorouter - Simple router for go to process url variables
go-rss - Simple RSS parser and generator
go-rss - Simple RSS parser, tested with Wordpress feeds.
goscribble - An MPD Audioscrobble
go-twitter - another Twitter client
go-twitter-oauth - a simple Twitter client (supports OAuth)
grender - Go static site generator
halgo - HAL-compliant API client and serialisation library.
http-gonsole - Speak HTTP like a local. (the simple, intuitive HTTP console, golang version)
httprpc - HTTP RPC codecs (json2, soap, rest)
HypeCMS - A flexible CMS built with Go and MongoDb.
Kontl - A client for kon.tl's URL shortening service
mustache.go - an implementation of the Mustache template language
muxer - Simple muxer for a Go app without regexp
Optimus Sitemap Generator - A universal XML sitemap generator
passwordreset - Creation and verification of secure tokens useful for implementation of "reset forgotten password" feature in web applications.
pat - A Sinatra style pattern muxer
persona - remote verification API for persona
plex - simple, small, light, regexp http muxer with chaining
purell - tiny Go library to normalize URLs
pusher.go - HTTP Server Push module for the standard http package
rest2go - Based on rest.go, forked for improvements and REST consistency
rest.go (forked) - forked rest.go for improvements and REST consistency
robotstxt - The robots.txt exclusion protocol implementation. Allows to parse and query robots.txt file.
seshcookie - A web session library inspired by Beaker
soy - A Go implementation for Soy templates (Google Closure templates). High performance and i18n.
user_agent - An HTTP User-Agent parser
webtestutil - Web and HTTP functional testing utilities. Includes Gorilla testing support.
aop - Aspect Oriented Programming For Go.
yt2pod - Daemon that monitors YouTube channels and publishes audio podcasts of them

Windows

gform - An easy to use Windows GUI toolkit for Go
go-ole - win32 ole implementation for golang
go-Windows-begin - for the absolute Windows-Go beginner
w32 - Windows API wrapper for Go.
walk - "Windows Application Library Kit" for the Go Programming Language
Windows Command Line Shutdow - A tool to shutdown Windows Computer from Command Prompt

Unix

inspect - Linux and MacOSX systems monitoring and diagnostics
unixsums - Legacy Unix checksums: cksum, sum

Unsorted; please help!

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

GoBot - PoC Go HTTP Botnet
ebml-go - EBML decoder
go-bindata - Converts any file into manageable Go source code for embedding binary data into a Go program.
goconsistenthash - Consistent hashing library (based on http://www.lexemetech.com/2007/11/consistent-hashing.html)
go-cron - A small cron job system to handle scheduled tasks, such as optimizing databases or kicking idle users from chat. The cron.go project was renamed to this for go get compatibility.
godebiancontrol - Golang debian control file parser
go-gmetric - Ganglia gmetric protocol support
gographviz - Graphviz DOT language parser for golang
godotviz - Rendering graphics files from "DOT language". Written in golang
dotviz-server - WebBased DOT language visualization tool written in go
goseq - command line tool, written in Go, for creating sequence diagrams using a text-based description language.
golor - golor is a command line tool for golang source code coloring
gopcapreader - Presents realtime pcap data as io.Reader objects
go.psl - Go regdom-libs/public suffix list
go-webfinger - Simple Client Implementation of WebFinger
httptail - tools push stdout/stderr to http chunked
img-LinuxFr.org - A reverse-proxy cache for external images used on LinuxFr.org
seed - Easily seed PRNGs with some entropy
spellabc - Package spellabc implements spelling alphabet code word encoding.
Twackup - Backs up your tweets into local files
Tasks - A simplistic todo list manager written in Go

golang优秀实用开源项目收集

2016年04月15日 17:52:07

阅读数:2405

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开源项目

2016年12月30日 12:14:56

阅读数:18168

近一年来,学习和研究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开源项目的相关教程结束。

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

下载本文的Word格式文档,以方便收藏与打印。