blob: dda7b9e0e63d5ed438b95c03bcc28395d1e0a90f [file] [log] [blame] [view]
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001# Indexes and search engines
2
3These sites provide indexes and search engines for Go packages:
4
Jason Buberel005c4cb2015-08-25 08:45:35 -07005 * [awesome-go](https://github.com/avelino/awesome-go) - A community curated list of high-quality resources.
Stan Bright3b81f032016-06-13 14:10:26 +03006 * [Awesome Go @LibHunt](https://go.libhunt.com) - Your go-to Go Toolbox.
Jason Buberel005c4cb2015-08-25 08:45:35 -07007 * [godoc.org](http://godoc.org/) - A documentation browser for any Go open source package.
8 * [go-hardware](https://github.com/rakyll/go-hardware) - Curated list of resources for using Go on non-standard hardware.
Tamer TAS746682f2016-03-06 18:19:09 +02009 * [go-patterns](https://github.com/tmrts/go-patterns) - Commonly used patterns and idioms for Go.
Stratos Neiros008b3ea2015-10-18 10:57:33 +030010 * [gopm.io](http://gopm.io/) - Download Go packages by version
Jason Buberel005c4cb2015-08-25 08:45:35 -070011 * [go-search](http://go-search.org/) - Search engine dedicated to Go projects and source.
Jason Buberel005c4cb2015-08-25 08:45:35 -070012 * [gowalker](http://gowalker.org/) - API documentation generator and search.
Tamer TAS746682f2016-03-06 18:19:09 +020013 * [Golang Data Science](http://www.mjhall.org/golang-data-science-libraries/) - Curated list of data science libraries for Go.
14 * [Go Report Card](http://goreportcard.com/) - Code quality summaries for any Go project.
Jason Buberel005c4cb2015-08-25 08:45:35 -070015 * [Sourcegraph](https://sourcegraph.com/) - Source indexing, analysis and search.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +110016
Jason Buberel016aaf82015-08-23 15:51:34 -070017
Andrew Gerrand5bc444d2014-12-10 11:35:11 +110018## Dead projects
19
nathanyed6b8a02014-12-10 22:48:52 -080020If 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.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +110021
22# Table of Contents
Sven Taute94ed7f62015-02-08 15:45:48 +010023* [Astronomy](#astronomy)
24* [Build Tools](#build-tools)
25* [Caching](#caching)
26* [Cloud Computing](#cloud-computing)
27* [Command-line Option Parsers](#command-line-option-parsers)
28* [Command-line Tools](#command-line-tools)
29* [Compression](#compression)
Jason Buberelcba0d0f2015-11-22 12:24:10 -080030* [Concurrency and Goroutines](#concurrency-and-goroutines)
Sven Taute94ed7f62015-02-08 15:45:48 +010031* [Configuration File Parsers](#configuration-file-parsers)
32* [Console User Interface](#console-user-interface)
Dean Karn86306482015-08-04 17:39:59 -040033* [Continuous Integration](#continuous-integration)
Sven Taute94ed7f62015-02-08 15:45:48 +010034* [Cryptography](#cryptography)
koolhead17376b5be2016-02-29 15:44:44 +053035* [Databases](#databases)
Sven Taute94ed7f62015-02-08 15:45:48 +010036* [Data Processing](#data-processing)
37* [Data Structures](#data-structures)
Muyiwa Olurin (Anthony)9ce06ae2015-07-04 17:38:24 -040038* [Date](#date)
Sven Taute94ed7f62015-02-08 15:45:48 +010039* [Development Tools](#development-tools)
40* [Distributed/Grid Computing](#distributedgrid-computing)
41* [Documentation](#documentation)
42* [Editors](#editors)
Alexandre Cesaro5006ebd2015-09-02 14:37:54 +020043* [Email](#email)
Sven Taute94ed7f62015-02-08 15:45:48 +010044* [Encodings and Character Sets](#encodings-and-character-sets)
Scott Pakin1782c772015-07-31 11:26:50 -060045* [Error handling](#error-handling)
Jason Buberelef2017a2015-08-30 16:20:06 -070046* [File Systems](#file-systems)
Sven Taute94ed7f62015-02-08 15:45:48 +010047* [Games](#games)
48* [GIS](#gis)
49* [Go Implementations](#go-implementations)
50* [Graphics and Audio](#graphics-and-audio)
51* [GUIs and Widget Toolkits](#guis-and-widget-toolkits)
52* [Hardware](#hardware)
53* [Language and Linguistics](#language-and-linguistics)
Jason Buberel6c10cf92015-09-19 10:49:44 -070054* [Logging & Monitoring](#logging-and-monitoring)
Jason Buberel48d750c2015-11-21 09:49:25 -080055* [Machine Learning & AI](#machine-learning)
Sven Taute94ed7f62015-02-08 15:45:48 +010056* [Mathematics](#mathematics)
Kentaro Wakayamaab6572f2016-01-03 20:24:02 +010057* [Microservices](#microservices)
Scott Pakin1782c772015-07-31 11:26:50 -060058* [Miscellaneous](#miscellaneous)
Sven Taute94ed7f62015-02-08 15:45:48 +010059* [Music](#music)
60* [Networking](#networking)
Charles76b765f2016-03-28 01:43:13 -070061 * [DNS](#dns)
62 * [FTP](#ftp)
63 * [HTTP](#http)
64 * [IMAP](#imap)
65 * [Instant Messaging](#instant-messaging)
66 * [NNTP](#nntp)
67 * [Protocol Buffers](#protocol-buffers)
68 * [rsync](#rsync)
69 * [Telnet](#telnet)
70 * [VNC](#vnc)
71 * [Websockets](#websockets)
72 * [ZeroMQ](#zeromq)
73 * [Misc Networking](#misc-networking)
Sven Taute94ed7f62015-02-08 15:45:48 +010074* [Operating System Interfaces](#operating-system-interfaces)
75* [Other Random Toys, Experiments and Example Code](#other-random-toys-experiments-and-example-code)
76* [P2P and File Sharing](#p2p-and-file-sharing)
77* [Programming](#programming)
Dean Karnbe4ae512015-11-18 08:03:05 -050078* [Resource Embedding](#resource-embedding)
Jason Buberel2de0e662015-09-19 11:22:42 -070079* [RPC](#rpc)
Sven Taute94ed7f62015-02-08 15:45:48 +010080* [Scanner and Parser Generators](#scanner-and-parser-generators)
Dmitry Savintsev5f7b8882015-02-25 10:41:26 +010081* [Security](#security)
Sven Taute94ed7f62015-02-08 15:45:48 +010082* [Simulation Modeling](#simulation-modeling)
83* [Sorting](#sorting)
84* [Source Code Management](#source-code-management)
koolhead17376b5be2016-02-29 15:44:44 +053085* [Storage](#storage)
Sven Taute94ed7f62015-02-08 15:45:48 +010086* [Strings and Text](#strings-and-text)
87* [Testing](#testing)
Scott Pakin1782c772015-07-31 11:26:50 -060088* [Unix](#unix)
89* [Unsorted](#unsorted-please-help)
Dean Karna32a7fd2015-07-21 21:28:12 -040090* [Validation](#validation)
Pierre Neidhardt8167a882015-10-08 18:31:26 +020091* [Version Control](#version-control)
Sven Taute94ed7f62015-02-08 15:45:48 +010092* [Virtual Machines and Languages](#virtual-machines-and-languages)
93* [Web Applications](#web-applications)
94* [Web Libraries](#web-libraries)
95* [Windows](#windows)
Andrew Gerrand5bc444d2014-12-10 11:35:11 +110096
97## Astronomy
98
Scott Pakin1782c772015-07-31 11:26:50 -060099 * [go-fits](https://github.com/siravan/fits) - FITS (Flexible Image Transport System) format image and data reader
Sebastien Binete0fa8c92016-06-09 12:26:44 +0200100 * [astrogo/fitsio](https://github.com/astrogo/fitsio) - Pure Go FITS (Flexible Image Transport System) format image and data reader/writer
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100101 * [gonova](https://github.com/pebbe/gonova) - A wrapper for libnova -- Celestial Mechanics, Astrometry and Astrodynamics Library
102 * [meeus](https://github.com/soniakeys/meeus) - Implementation of "Astronomical Algorithms" by Jean Meeus
103 * [novas](https://github.com/pebbe/novas) - Interface to the Naval Observatory Vector Astrometry Software (NOVAS)
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100104
105## Build Tools
106
107 * [colorgo](https://github.com/songgao/colorgo) - Colorize go build output
Dave Day0d6986a2014-12-10 15:02:18 +1100108 * [dogo](https://github.com/liudng/dogo) - Monitoring changes in the source file and automatically compile and run (restart)
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100109 * [fileembed-go](https://bitbucket.org/rj/fileembed-go/) - This is a command-line utility to take a number of source files, and embed them into a Go package
110 * [gb](http://github.com/skelterjohn/go-gb) - A(nother) build tool for go, with an emphasis on multi-package projects
Scott Pakin1782c772015-07-31 11:26:50 -0600111 * [gg](https://github.com/lukess/gg) - A tiny multi golang projects env/make management tool.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100112 * [GG](http://www.manatlan.com/page/gg) - A build tool for Go in Go
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100113 * [godag](http://code.google.com/p/godag/) - A frontend to the Go compiler collection
114 * [goenv](https://bitbucket.org/ymotongpoo/goenv) - goenv provides Go version and Go workspace management tools
Scott Pakin1782c772015-07-31 11:26:50 -0600115 * [gopei](https://github.com/geosoft1/tools) - Simple Go compiler and LiteIDE installer for Ubuntu that adds many features like github support and presenter.
116 * [go-pkg-config](https://github.com/psilva261/go-pkg-config) - lightweight clone of pkg-config
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100117 * [goscons](https://github.com/alberts/goscons) - Another set of SCons builders for Go
118 * [gotgo](https://github.com/droundy/gotgo) - An experimental preprocessor to implement 'generics'
Andrew Carterb16e1c92015-01-07 12:53:43 -0800119 * [gows](https://github.com/ascarter/gows) - Go workspace manager
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100120 * [goxc](https://github.com/laher/goxc) - A build tool with a focus on cross-compiling, packaging, versioning and distribution
121 * [GVM](https://github.com/moovweb/gvm) - GVM provides an interface to manage Go versions
122 * [SCons Go Tools](https://launchpad.net/sconsgo) - A collection of builders that makes it easy to compile Go projects in SCons
123
124## Caching
125
chai2010f95c0322015-08-24 10:14:30 +0800126 * [cache](https://github.com/chai2010/cache) - LevelDB style LRU cache for Go, support non GC object cache.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100127 * [cache2go](https://github.com/muesli/cache2go) - A caching library with expiration capabilities and access counters
128 * [go-cache](http://patrickmylund.com/projects/go-cache/) - An in-memory key:value store/cache (similar to Memcached) library for Go, suitable for single-machine applications
Simon Waldherr42d23f92015-08-15 17:07:42 +0200129 * [golibs/cache](https://github.com/SimonWaldherr/golibs/tree/master/cache) - A tiny cache package
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100130 * [gomemcached](https://github.com/dustin/gomemcached) - A memcached server in go
Scott Pakin1782c772015-07-31 11:26:50 -0600131 * [gomemcache](https://github.com/kklis/gomemcache) - a memcached client
132 * [go-slab](https://github.com/couchbaselabs/go-slab) - Slab allocator for go.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100133 * [groupcache](https://github.com/golang/groupcache) - Caching and cache-filling library, intended as a replacement for memcached in many cases
134 * [libmemcache](https://github.com/valyala/ybc/tree/master/libs/go/memcache) - Fast client and server libraries speaking memcache protocol
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100135 * [memcached-bench](https://github.com/valyala/ybc/tree/master/apps/go/memcached-bench) - Benchmark tool for memcache servers
Scott Pakin1782c772015-07-31 11:26:50 -0600136 * [memcached](https://github.com/valyala/ybc/tree/master/apps/go/memcached) - Fast memcache server, which supports persistence and cache sizes exceeding available RAM
137 * [memcache](https://github.com/smallfish/memcache) - go memcached client, forked from YouTube Vitess
Tiffany Ja5275ec2016-04-12 21:56:11 -0700138 * [rend](https://github.com/Netflix/rend) - A memcached proxy that manages data chunking and L1/L2 caches
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100139 * [YBC bindings](https://github.com/valyala/ybc/tree/master/bindings/go/ybc) - Bindings for YBC library providing API for fast in-process blob cache
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100140
141## Cloud Computing
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100142 * [Docker](http://docker.io) - The Linux container runtime. Developed by dotCloud.
ATR Baltic, SIA315057b2016-01-04 16:48:38 +0200143 * [Enduro/X ASG] (https://github.com/endurox-dev/endurox-go) Application Server for Go. Provides application server and middleware facilities for distributed transaction processing. Supports microservices based application architecture. Developed by ATR Baltic.
Rajender Reddy Kompally080ebd32015-08-20 00:32:38 -0700144 * [Kubernetes](https://github.com/kubernetes/kubernetes) - Container Cluster Manager from Google.
Tamer TAS5e1bf732015-12-18 11:57:51 +0200145 * [flamingo](https://github.com/tmrts/flamingo) - A Lightweight Cloud Instance Contextualizer.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100146 * [gocircuit](http://gocircuit.org) - 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.
147 * [gosync](https://github.com/brettweavnet/gosync) - A package for syncing data to and from S3.
148 * [juju](https://juju.ubuntu.com) - Orchestration tool (deployment, configuration and lifecycle management), developed by Canonical.
Jamesb50857f2016-04-08 04:13:47 -0400149 * [mgmt](https://github.com/purpleidea/mgmt/) - Next Generation Configuration Management tool (parallel, event driven, distributed system) developed by [@purpleidea](https://twitter.com/#!/purpleidea), (a Red Hat employee) and the mgmt community.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100150 * [ShipBuilder](http://shipbuilder.io) - ShipBuilder is a minimalist open source platform as a service, developed by Jay Taylor.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100151 * [swift](https://github.com/ncw/swift) - Go language interface to Swift / Openstack Object Storage / Rackspace cloud files
Scott Pakin1782c772015-07-31 11:26:50 -0600152 * [Tsuru](http://www.tsuru.io/) - Tsuru is an open source polyglot cloud computing platform as a service (PaaS), developed by Globo.com.
Camilo Crespo1faeebb2016-07-24 23:09:03 -0400153* [aws-sdk-go](https://github.com/aws/aws-sdk-go) - AWS SDK for the Go programming language.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100154
155## Command-line Option Parsers
156
157 * [argcfg](http://code.google.com/p/goargcfg/) - Use reflection to populate fields in a struct from command line arguments
158 * [cobra](http://github.com/spf13/cobra) - A commander for modern go CLI interactions supporting commands & POSIX/GNU flags
159 * [command](https://github.com/rakyll/command) - Add subcommands to your CLI, provides help and usage guide.
Scott Pakin1782c772015-07-31 11:26:50 -0600160 * [docopt.go](https://github.com/docopt/docopt.go) - An implementation of docopt in the Go programming language.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100161 * [getopt](http://code.google.com/p/getopt) - full featured traditional (BSD/POSIX getopt) option parsing in Go style
Scott Pakin1782c772015-07-31 11:26:50 -0600162 * [getopt](https://github.com/timtadh/getopt) - Yet Another getopt Library for Go. This one is like Python's.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100163 * [gnuflag](https://launchpad.net/gnuflag) - GNU-compatible flag parsing; substantially compatible with flag.
Scott Pakin1782c772015-07-31 11:26:50 -0600164 * [go-commander](https://code.google.com/p/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.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100165 * [go-flags](https://github.com/jessevdk/go-flags) - command line option parser for go
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100166 * [goopt](https://github.com/droundy/goopt) - a getopt clone to parse command-line flags
Scott Pakin1782c772015-07-31 11:26:50 -0600167 * [go-options](https://github.com/gaal/go-options) - A command line parsing library for Go
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100168 * [options](https://github.com/fd/options/) - Self documenting CLI options parser
169 * [opts.go](http://opts-go.googlecode.com/) - lightweight POSIX- and GNU- style option parsing
170 * [pflag](https://github.com/ogier/pflag) - Drop-in replacement for Go's flag package, implementing POSIX/GNU-style --flags.
171 * [subcommands](https://github.com/maruel/subcommands) - A concurrent, unit tested, subcommand library
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100172 * [uggo](https://github.com/laher/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).
Bob Ziuchkovski0ba90682016-01-22 22:04:46 -0700173 * [writ](https://github.com/ziuchkovski/writ) - A flexible option parser with thorough test coverage. It's meant to "just work" and stay out of the way.
Francisco Cabrita55a94422015-10-27 01:07:12 +0000174 * [cli](https://github.com/mitchellh/cli) - A Go library for implementing command-line interfaces.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100175
176## Command-line Tools
177
Tamer TAS33414b42015-12-19 19:21:40 +0200178 * [boilr](https://github.com/tmrts/boilr) - A blazing fast CLI tool for creating projects from boilerplate templates.
Sven Taute3bd7a102015-02-08 15:41:53 +0100179 * [coshell](https://github.com/gdm85/coshell) - A drop-in replacement for GNU 'parallel'.
180 * [DevTodo2](https://github.com/alecthomas/devtodo2) - A small command-line per-project task list manager.
Rick Beton8e2e13c2016-06-21 21:36:01 +0100181 * [enumeration](https://bitbucket.org/rickb777/enumeration) - Easy enumeration code generation.
Junegunn Choi69763132015-07-21 21:25:53 +0900182 * [fzf](https://github.com/junegunn/fzf) - A command-line fuzzy finder
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100183 * [gich](http://bitbucket.org/jpoirier/gich) - A cross platform which utility written in Go
Scott Pakin1782c772015-07-31 11:26:50 -0600184 * [gister](https://github.com/dutchcoders/gister) - Manage your github gists from the command-line
joliv2f992fe2015-03-01 17:51:15 -0500185 * [gmail2go](https://github.com/rif/gmail2go) - Simple gmail multiple accounts cli mail checker
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100186 * [gocreate](https://bitbucket.org/llg/gocreate/) - Command line utility that create files from templates.
187 * [gojson](https://github.com/ChimeraCoder/gojson) - Command-line tool for manipulating JSON for use in developing Go code.
Sven Taute3bd7a102015-02-08 15:41:53 +0100188 * [GoPasswordCreator](https://github.com/d3xter/GoPasswordCreator) - A small tool, which creates random passwords
Kirity Mahanty7cf23a22016-07-15 16:53:57 +0530189 * [Grozilla](https://github.com/prashant-agarwala/grozilla) - File downloader utility with resume capability.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100190 * [jsonpp](http://jmhodges.github.com/jsonpp/) - A fast command line JSON pretty printer.
Tamer TASee402c12016-01-01 21:28:43 +0200191 * [lsp](https://github.com/dborzov/lsp) - A human-friendlier alternative to `ls`
Marcel Puyatae9780a2016-02-08 16:04:41 -0800192 * [ltst](https://github.com/marcelpuyat/ltst) - View the latest news of your choosing right in your terminal
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100193 * [passhash](https://github.com/gebi/passhash) - Command-line utility to create secure password hashes
seanpont02f6ff02014-12-14 19:49:30 -0800194 * [passman](https://github.com/seanpont/passman) - A command-line password manager
Jeremie863de832015-04-15 21:31:35 -0700195 * [pjs](http://jcasts.github.io/pjs) - Pretty print and search through JSON data structures fast.
Tamer TASee402c12016-01-01 21:28:43 +0200196 * [project](https://github.com/nildev/project) - Very simple CLI tool to setup new projects from boilerplate templates.
Sven Taute3bd7a102015-02-08 15:41:53 +0100197 * [pwdgen](https://github.com/chai2010/pwdgen/) - A small tool, which generate human password, written in Go.
flowonyx31d4c8e2015-03-13 21:24:27 +0200198 * [redis-view](https://github.com/dreamersdw/redis-view) - A tree like tool help you explore data structures in your redis server
Scott Pakin1782c772015-07-31 11:26:50 -0600199 * [restic](https://github.com/restic/restic) - A fast, efficient and secure backup program
flowonyx31d4c8e2015-03-13 21:24:27 +0200200 * [runtemplate](https://github.com/flowonyx/runtemplate) - A very simple command-line tool for executing Go templates, useful for use with `go generate`.
Rick Betond6845302016-06-23 00:12:42 +0100201 * [runtemplate](https://github.com/rickb777/runtemplate) - A simple tool for executing Go templates to support generating Go code for your types.
Dmitry Borzovd201a582015-04-24 01:12:03 -0400202 * [sift](https://github.com/svent/sift) - A fast and powerful open source alternative to `grep`
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100203 * [tecla](https://github.com/michaelmacinnis/tecla) - Command-line editing library
Will Dixon3c46eb32016-04-25 19:12:13 -0400204 * [wlog](https://github.com/dixonwille/wlog) - A simple logging interface that supports cross-platform color and concurrency.
205 * [wmenu](https://github.com/dixonwille/wmenu) - An easy to use menu structure for cli applications that prompts users to make choices.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100206
207## Compression
Klaus Postb5878b92015-10-31 15:01:20 +0100208
209 * [compress](https://github.com/klauspost/compress) - Faster drop in replacements for gzip, zip, zlib, deflate
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100210 * [dgolzo](https://github.com/dgryski/dgolzo) - LZO bindings
211 * [dictzip](https://github.com/pebbe/dictzip) - A reader and writer for files in the random access ` dictzip ` format
212 * [fast-archiver](https://github.com/replicon/fast-archiver) - Alternative archiving tool with fast performance for huge numbers of small files
213 * [gbacomp](https://github.com/salviati/gbacomp) - A Go library to (de)compress data compatible with GBA BIOS
214 * [go-lz4](https://github.com/bkaradzic/go-lz4) - Port of LZ4 lossless compression algorithm to Go.
215 * [go-lzss](https://github.com/salviati/go-lzss) - Implementation of LZSS compression algorithm in Go
216 * [go-sevenzip](https://github.com/salviati/go-sevenzip) - Package sevenzip implements access to 7-zip archives (wraps C interface of LZMA SDK)
217 * [go-zip](https://github.com/hailiang/go-zip) - A wrapper around C library libzip, providing ability to modify existing ZIP archives.
218 * [lzma](http://code.google.com/p/lzma/) - compress/lzma package for Go
Klaus Postb5878b92015-10-31 15:01:20 +0100219 * [pgzip](https://github.com/klauspost/pgzip) - Multicore gzip, compatible with the standard library
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100220 * [snappy-go](http://code.google.com/p/snappy-go/) - Google's Snappy compression algorithm in Go
221 * [yenc](https://github.com/chrisfarms/yenc) - yenc decoder package
222 * [zappy](https://github.com/cznic/zappy) - Package zappy implements the zappy block-based compression format. It aims for a combination of good speed and reasonable compression.
AltaÑ—rd2e320e2016-04-18 19:12:28 +0800223 * [ppmd-go](https://github.com/zwb-ict/ppmd-go) - Golang bindings for the LZMA SDK library. (Only binded PPMD)
Jason Buberelcba0d0f2015-11-22 12:24:10 -0800224
225## Concurrency and Goroutines
226
227 * [grpool](https://github.com/ivpusic/grpool) - Lightweight Goroutine pool.
228 * [pool](https://github.com/go-playground/pool) - Go consumer goroutine pool for easy goroutine handling + time saving.
229 * [tunny](https://github.com/Jeffail/tunny) - A goroutine pool.
230
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100231## Configuration File Parsers
232
Sonia Hamilton56302692015-08-08 17:18:57 +1000233 * [awsenv](https://github.com/soniah/awsenv) - a small binary that loads Amazon (AWS) environment variables for a profile
Aaron Raddonb616a092015-08-21 18:18:49 -0700234 * [confl](https://github.com/lytics/confl) - nginx config syntax, lenient, encode/decode, custom marshaling
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100235 * [flagfile](https://github.com/spacemonkeygo/flagfile) - Adds parsing and serialization support to the standard library flag package (adds a --flagfile option)
236 * [gcfg](http://code.google.com/p/gcfg/) - read INI-style configuration files into Go structs; supports user-defined types and subsections
237 * [globalconf](https://github.com/rakyll/globalconf) - Effortlessly persist to and read flag values from an ini config file
238 * [goconf](http://code.google.com/p/goconf/) - a configuration file parser
Kailash Nadha94017b2015-01-17 00:59:05 +0530239 * [jsonconfig](https://github.com/knadh/jsonconfig) - a JSON configuration file parser with comments support
Jason Buberelb95fdf52015-12-13 11:36:20 -0800240 * [properties](https://github.com/magiconair/properties) - Library for reading and writing properties files
Fumind7ed3542015-03-08 17:49:37 +0800241 * [scribeconf](https://godoc.org/github.com/fumin/scribeconf) - Facebook Scribe server configuration file parser
Scott Pakin1782c772015-07-31 11:26:50 -0600242 * [toml](http://github.com/mojombo/toml):
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100243 * [go-toml-config](http://github.com/stvp/go-toml-config) - TOML-based config for Go
Scott Pakin1782c772015-07-31 11:26:50 -0600244 * [go-toml](http://github.com/pelletier/go-toml) - Go library for the TOML language
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100245 * [gp-config](https://github.com/cbonello/gp-config) - Subset of TOML syntax with basic and reflection APIs
Scott Pakin1782c772015-07-31 11:26:50 -0600246 * [toml-go](http://github.com/laurent22/toml-go) - An easy-to-use Go parser for the Toml format
247 * [toml](http://github.com/BurntSushi/toml) - TOML parser for Go with reflection
248 * [tom-toml](https://github.com/achun/tom-toml) - TOML parser for Go, support comments/formatter/apply.
249 * [viper](http://github.com/spf13/viper) - a complete configuration solution supporting YAML, TOML & JSON and integration with command line flags
250 * yaml:
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100251 * [yaml](http://github.com/go-yaml/yaml) - YAML support for the Go language, by Canonical
252 * [goyaml](http://goyaml.googlecode.com/) - A port of LibYAML to Go
253
254## Console User Interface
255
Tiffany Ja5275ec2016-04-12 21:56:11 -0700256 * [ansi](https://github.com/mgutz/ansi) - Easily create ansi escape code strings and closures to format, color console output
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100257 * [ansiterm](https://github.com/hotei/ansiterm) - pkg to drive text-only consoles that respond to ANSI escape sequences
Scott Pakin1782c772015-07-31 11:26:50 -0600258 * [cons](https://github.com/rferrante/cons) - A simple package for building interactive console tools.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100259 * [gnureadline](https://code.google.com/p/go-gnureadline) - GNU Readline bindings
Scott Pakin1782c772015-07-31 11:26:50 -0600260 * [go-ansiout](https://github.com/tlorens/go-ansiout) - Another ANSI escape code sequence tool for use with command-line applications.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100261 * [gockel](https://github.com/akrennmair/gockel) - a Twitter client for text terminals
Roi Martindf794982015-02-25 00:31:55 +0100262 * [gocui](https://github.com/jroimartin/gocui) - Minimalist library aimed at creating Console User Interfaces
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100263 * [gocurse](https://github.com/jabb/gocurse) - Go bindings for NCurses
264 * [gocurses](https://github.com/tncardoso/gocurses) - NCurses wrapper
Scott Pakin1782c772015-07-31 11:26:50 -0600265 * [go-ibgetkey](https://github.com/tlorens/go-ibgetkey) - "hot key" type user input package for use in processing keystrokes in command-line applications.
266 * [go.linenoise](https://github.com/GeertJohan/go.linenoise) - Linenoise bindings (simple and easy readline with prompt, optional history, optional tab completion)
Dmitry Savintsevf8f40502015-04-24 22:04:14 +0200267 * [goncurses](https://github.com/rthornton128/goncurses) - An ncurses library, including the form, menu and panel extensions
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100268 * [gopass](https://code.google.com/p/gopass/) - Allows typing of passwords without echoing to screen
Scott Pakin1782c772015-07-31 11:26:50 -0600269 * [go-pullbarz](https://github.com/tlorens/go-pullbarz) - Fancy "light bar" menus like in Lotus 123 from the DOS days. Dependent on go-ibgetkey and go-ansiout.
270 * [go.sgr](https://github.com/foize/go.sgr) - Terminal/console colors and text decoration (bold,underlined,etc).
271 * [go-stfl](https://github.com/akrennmair/go-stfl) - a thin wrapper around STFL, an ncurses-based widget toolkit
Apoorva M875eb572016-01-11 20:18:50 +0530272 * [goterminal](https://github.com/apoorvam/goterminal) - A go library that lets you write and then re-write the text on terminal, to update progress. It works on Windows too!
Scott Pakin1782c772015-07-31 11:26:50 -0600273 * [go-web-shell](https://github.com/matiasinsaurralde/go-web-shell) - Remote web shell, implements a net/http server.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100274 * [igo](https://bitbucket.org/binet/igo) - A simple interactive Go interpreter built on exp/eval with some readline refinements
275 * [oh](https://github.com/michaelmacinnis/oh) - A Unix shell written in Go
276 * [pty](https://github.com/kr/pty) - obtain pseudo-terminal devices
Chzyeredc32b92016-03-15 21:11:25 +0800277 * [readline](https://github.com/chzyer/readline) - A pure go implementation for GNU-Readline kind library
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100278 * [termbox-go](https://github.com/nsf/termbox-go) - A minimalist alternative to ncurses to build terminal-based user interfaces
279 * [termios](http://bitbucket.org/taruti/termios) - Terminal support
280 * [termon](http://termon.googlecode.com/) - Easy terminal-control-interface for Go.
Greg Osuri99d1ebb2015-12-08 21:13:24 -0800281 * [uilive](https://github.com/gosuri/uilive) - uilive is a go library for updating terminal output in realtime.
282 * [uiprogress](https://github.com/gosuri/uiprogress) - A library to render progress bars in terminal applications.
283 * [uitable](https://github.com/gosuri/uitable) - A library to improve readability in terminal apps using tabular data.
Sergey Mudrik360ed092015-03-18 21:11:43 +0200284 * [yandex-weather-cli](https://github.com/msoap/yandex-weather-cli) - Command line interface for Yandex weather service
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100285
Dean Karn86306482015-08-04 17:39:59 -0400286## Continuous Integration
287
288 * [goveralls](https://github.com/mattn/goveralls) - Go integration for Coveralls.io continuous code coverage tracking system.
Dean Karn0e92d962015-09-24 08:11:06 -0400289 * [overalls](https://github.com/go-playground/overalls) - Multi-Package go project coverprofile for tools like goveralls
Dean Karn86306482015-08-04 17:39:59 -0400290
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100291## Cryptography
292
293 * [BLAKE2b](https://github.com/dchest/blake2b) - Go implementation of BLAKE2b hash function
Scott Pakin1782c772015-07-31 11:26:50 -0600294 * [cryptogo](https://github.com/vgorin/cryptogo) - some useful cryptography-related functions, including paddings (PKCS7, X.923), PBE with random salt and IV
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100295 * [cryptoPadding](https://github.com/apexskier/cryptoPadding) - Block padding schemes implemented in Go
296 * [dkeyczar](https://github.com/dgryski/dkeyczar) - Go port of Google'e Keyczar cryptography library
297 * [dkrcrypt](https://github.com/dgryski/dkrcrypt) - Korean block ciphers: SEED and HIGHT
298 * [dskipjack](https://github.com/dgryski/dskipjack) - Go implementation of the SKIPJACK encryption algorithm
Scott Pakin1782c772015-07-31 11:26:50 -0600299 * [go-cs](https://github.com/akosela/go-cs) - concurrent ssh client.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100300 * [go-ed25519](https://github.com/tendermint/go-ed25519) - CGO bindings for Floodberry's ed25519-donna. Fast batch verification.
301 * [go-hc128](https://github.com/tomfitzhenry/go-hc128) - Go implementation of HC-128, an eSTREAM stream cipher
Alok Menghrajanide77c192015-07-19 19:54:43 -0700302 * [go-jose](https://github.com/square/go-jose) - Go implementation of the JOSE standards
Jason Buberelca37ce22015-10-09 11:17:28 -0700303 * [go-minilock](https://github.com/cathalgarvey/go-minilock) - Go implementation of the minilock file encryption system.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100304 * [GoSkein](https://github.com/wernerd/Skein3Fish/tree/master/go) - Implementation of Skein hash and Threefisch crypto for Go
305 * [keccak](https://github.com/ebfe/keccak) - A keccak (SHA-3) implementation
306 * [ketama.go](https://github.com/mncaudill/ketama.go) - libketama-style consistent hashing
307 * [kindi](https://github.com/uwedeportivo/Kindi) - encryption command line tool
308 * [openssl](https://github.com/spacemonkeygo/openssl) - openssl bindings for go
andrewclausen45963092015-01-03 06:41:27 -0800309 * [otrcat](https://github.com/andrewclausen/otrcat) - a general purpose command-line tool for communicating using the Off-The-Record protocol
Dmitry Savintsevf8f40502015-04-24 22:04:14 +0200310 * [scrypt](https://go.googlesource.com/crypto/+/master/scrypt/) - Go implementation of Colin Percival's scrypt key derivation function
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100311 * [simpleaes](https://github.com/tadzik/simpleaes) - AES encryption made easy
Scott Pakin1782c772015-07-31 11:26:50 -0600312 * [siphash](https://github.com/dchest/siphash) - SipHash: a fast short-input pseudorandom function
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100313 * [SRP](https://code.google.com/p/go-srp/) - SRP: Secure Remote Password - Implementation in go
314 * [ssh.go](http://bitbucket.org/taruti/ssh.go) - SSH2 Client library
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100315 * [tiger](https://github.com/cxmcc/tiger) - Tiger cryptographic hashing algorithm
316 * [whirlpool](https://github.com/jzelinskie/whirlpool) - whirlpool cryptographic hashing algorithm
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100317
318## Data Processing
319
Jason Buberele6ad5002015-09-25 09:10:25 -0700320 * [automi](https://github.com/vladimirvivien/automi) - Compose process and integration flows on Go channels
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100321 * [gostatsd](https://github.com/kisielk/gostatsd) - Statsd server and library.
Scott Pakin1782c772015-07-31 11:26:50 -0600322 * [Heka](https://github.com/mozilla-services/heka) - Real time data and log file processing engine.
Tiffany Ja5275ec2016-04-12 21:56:11 -0700323 * [Kapacitor](https://github.com/influxdb/kapacitor) - Framework for processing, monitoring and alerting on timeseries data.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100324 * [proto](https://github.com/eblume/proto) - Map/Reduce/Filter etc. for Go using channels as result streams.
325 * [regommend](https://github.com/muesli/regommend) - Recommendation engine.
326 * [rrd](https://github.com/ziutek/rrd) - Bindings for rrdtool.
327
328## Data Structures
329
Tim Henderson3f6ffbd2015-08-03 22:54:20 -0400330### Collections
331
332 * [collections](https://github.com/cosn/collections) - Several common data structures
333 * [data-structures](https://github.com/timtadh/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)
334 * [ps](https://github.com/mndrix/ps) - Persistent data structures
Jason Bubereldb39fb92015-08-23 14:59:44 -0700335 * [Tideland golib](https://github.com/tideland/golib) - A collections library
Tim Henderson3f6ffbd2015-08-03 22:54:20 -0400336
337### Hashtables
338
339 * [gohash](http://code.google.com/p/gohash/) - A simple linked-list hashtable that implements sets and maps
340 * [go-maps](https://github.com/serge-hulne/go-maps) - Go maps generalized to interfaces
341
Scott Pakin1782c772015-07-31 11:26:50 -0600342### Lists
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100343
Scott Pakin1782c772015-07-31 11:26:50 -0600344 * [fs2/mmlist](https://github.com/timtadh/fs2#mmlist) - A memory mapped list.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100345 * [GoArrayList](https://github.com/PhilStephens/GoArrayList) - GoArrayList is a Go language substitute for the Java class ArrayList, with very nearly all features.
346 * [goskiplist](https://github.com/ryszard/goskiplist) - A skip list implementation in Go.
347 * [itreap](https://github.com/glenn-brown/itreap) - An immutable ordered list, internally a treap.
348 * [ListDict](https://bitbucket.org/matrixik/listdict/) - Python List and Dict for Go
349 * [skip](https://github.com/glenn-brown/skiplist) - A fast position-addressable ordered map and multimap.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100350 * [Skiplist](https://github.com/glenn-brown/skiplist) - A fast indexable ordered multimap.
Scott Pakin1782c772015-07-31 11:26:50 -0600351 * [skiplist](https://github.com/huandu/skiplist) - A skip list implementation. Highly customizable and easy to use.
Fumind7ed3542015-03-08 17:49:37 +0800352 * [skiplist](https://godoc.org/github.com/fumin/skiplist) - Skiplist data structure ported from Redis's Sorted Sets.
Alessandro Diaferia5142e132015-06-15 13:55:25 +0100353 * [stackgo](https://github.com/alediaferia/stackgo) - A fast slice-based stack implementation.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100354
Scott Pakin1782c772015-07-31 11:26:50 -0600355### Queues
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100356
357 * [fifo\_queue](https://github.com/yasushi-saito/fifo_queue) - Simple FIFO queue
Scott Pakin1782c772015-07-31 11:26:50 -0600358 * [figo](https://github.com/jasocox/figo) - A simple fifo queue with an optional thread-safe version.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100359 * [go.fifo](https://github.com/foize/go.fifo) - Simple auto-resizing thread-safe fifo queue.
360 * [gopqueue](https://github.com/nu7hatch/gopqueue) - Priority queue at top of container/heap
Scott Pakin1782c772015-07-31 11:26:50 -0600361 * [go-priority-queue](https://code.google.com/p/go-priority-queue/) - An easy to use heap implementation with a conventional priority queue interface.
Simon Waldherr42d23f92015-08-15 17:07:42 +0200362 * [golibs/stack](https://github.com/SimonWaldherr/golibs/tree/master/stack) - A LIFO and ringbuffer package
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100363 * [gringo](https://github.com/textnode/gringo) - A minimalist queue implemented using a stripped-down lock-free ringbuffer
Scott Pakin1782c772015-07-31 11:26:50 -0600364 * [heap](https://github.com/golangplus/container/tree/master/heap) - A general heap package without converting elements to `interface{}` and back.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100365 * [queued](https://github.com/timtadh/queued) - A simple network queue daemon
Kaveh Mousavi Zamanid03056c2016-01-27 01:36:04 +0800366 * [queue] (https://github.com/kavehmz/queue) - A queue manager on top of Redis
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100367
Scott Pakin1782c772015-07-31 11:26:50 -0600368### Graphs
369
Thomas Cyron43992522015-01-26 15:10:35 +0100370 * [graphs](https://github.com/thcyron/graphs) - Implementation of various tree, graph and network algorithms
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100371
Scott Pakin1782c772015-07-31 11:26:50 -0600372### Sets
373
Scott Pakinb7632262015-04-11 00:52:29 -0600374 * [disjoint](https://github.com/spakin/disjoint) - Disjoint sets (union-find algorithm with path compression)
375 * [golang-set](https://github.com/deckarep/golang-set) - A full thread-safe and unsafe set implementation for Go.
Tim Henderson3f6ffbd2015-08-03 22:54:20 -0400376 * [goset](https://github.com/fatih/goset) - A simple, thread safe Set implementation
Scott Pakinb7632262015-04-11 00:52:29 -0600377 * [set](https://github.com/fatih/set) - Set data structure for Go
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100378
Scott Pakin1782c772015-07-31 11:26:50 -0600379### Trees
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100380
381 * [b](https://github.com/cznic/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.
382 * [btree](https://bitbucket.org/santucco/btree) - Package btree implements persistent B-trees with fixed size keys, http://en.wikipedia.org/wiki/Btree
Jason Buberel1aa7ad92015-09-06 13:10:45 -0700383 * [btree](https://github.com/google/btree) - In-memory (not persistent) B-tree implementation, similar API to GoLLRB
Dmitry Savintsevf8f40502015-04-24 22:04:14 +0200384 * [go-avltree](https://github.com/ancientlore/go-avltree) - AVL tree (Adel'son-Vel'skii & Landis) with indexing added
Scott Pakin1782c772015-07-31 11:26:50 -0600385 * [go-btree](https://github.com/liangx8/tree.git) - Simple balance tree implementation
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100386 * [go-darts](https://github.com/awsong/go-darts) - Double-ARray Trie System for Go
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100387 * [GoLLRB](https://github.com/petar/GoLLRB) - A Left-Leaning Red-Black (LLRB) implementation of 2-3 balanced binary search trees in Google Go
Jae Kwonf579c382015-10-22 19:33:26 -0700388 * [go-merkle](https://github.com/tendermint/go-merkle) - Merkle-ized binary (search) trees with proofs.
Scott Pakin1782c772015-07-31 11:26:50 -0600389 * [go-stree](https://github.com/toberndo/go-stree) - A segment tree implementation for range queries on intervals
Jason Buberel88fe84a2015-08-30 12:53:00 -0700390 * [go-radix](https://github.com/armon/go-radix), [go-radix-immutable](https://github.com/hashicorp/go-immutable-radix) - Radix tree implementations.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100391 * [gtreap](https://github.com/steveyen/gtreap) - Persistent treap implementation.
Scott Pakin1782c772015-07-31 11:26:50 -0600392 * [rbtree](https://github.com/yasushi-saito/rbtree) - Yet another red-black tree implementation, with a C++ STL-like API
393 * [rtreego](https://github.com/dhconnelly/rtreego) - an R-Tree library
Alessandro Diaferia52d3a452015-06-15 17:05:24 +0100394 * [triego](https://github.com/alediaferia/triego) - Simple trie implementation for storing words
Alessandro Diaferia33997c22016-06-16 15:13:59 +0100395 * [prefixmap](https://github.com/alediaferia/prefixmap) - Simple trie-based prefix-map for string-based keys
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100396
Scott Pakin1782c772015-07-31 11:26:50 -0600397### Other
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100398
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100399 * [bigendian](https://bitbucket.org/taruti/bigendian) - binary parsing and printing
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100400 * [deepcopy](http://bitbucket.org/taruti/deepcopy) - Make deep copies of data structures
401 * [dgobloom](https://github.com/dgryski/dgobloom) - A Bloom Filter implementation
402 * [epochdate](https://github.com/extemporalgenome/epochdate) - Compact dates stored as days since the Unix epoch
Brett Vickers93616db2016-03-15 17:02:10 -0700403 * [etree](https://github.com/beevik/etree) - Parse and generate XML easily
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100404 * [fsm](https://github.com/looplab/fsm) - Minimalistic state machine for use instead of booleans
405 * [go-algs/ed](https://github.com/daviddengcn/go-algs) - Generalized edit-distance implementation
406 * [go-algs/maxflow](https://github.com/daviddengcn/go-algs) - An energy minimization tool using max-flow algorithm.
407 * [go-extractor](https://github.com/salviati/go-extractor) - Go wrapper for GNU libextractor
Jason Buberel37532842015-09-10 18:25:30 -0700408 * [gocrud](https://github.com/manishrjain/gocrud) - Framework for working with arbitrary depth data structures.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100409 * [Gokogiri](https://github.com/moovweb/gokogiri) - A lightweight libxml wrapper library
410 * [GoNetCDF](https://bitbucket.org/ctessum/gonetcdf) - A wrapper for the NetCDF file format library
411 * [goop](https://github.com/losalamos/goop) - Dynamic object-oriented programming support for Go
meirf3e5cb532015-05-19 01:24:17 -0400412 * [gopart](https://github.com/meirf/gopart)- Type-agnostic partitioning for anything that can be indexed in Go.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100413 * [gotoc](https://github.com/dsymonds/gotoc) - A protocol buffer compiler written in Go
gimabeb49b72015-01-16 00:38:46 +0200414 * [govalid](https://github.com/gima/govalid) - Data validation library
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100415 * [goxml](https://github.com/jbussdieker/golibxml) - A thin wrapper around libxml2
416 * [hyperloglog](https://github.com/clarkduvall/hyperloglog) - An implementation of the HyperLogLog and HyperLogLog++ algorithms for estimating cardinality of sets using constant memory.
Tiffany Ja5275ec2016-04-12 21:56:11 -0700417 * [itertools](https://github.com/xchapter7x/goutil) - Provides generic iterable generator function along with functionality similar to the itertools python package.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100418 * [jsonv](https://github.com/gima/jsonv) - A JSON validator
419 * [libgob](http://code.google.com/p/libgob/) - A low level library for generating gobs from other languages
420 * [Picugen](http://patrickmylund.com/projects/picugen/) - A general-purpose hash/checksum digest generator.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100421 * [tribool](https://github.com/saschpe/tribool) - Ternary (tree-valued) logic for Go
422 * [Tuple](https://bitbucket.org/gotamer/tuple) - Tuple is a go type that will hold mixed types / values
423 * [vcard](https://bitbucket.org/llg/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).
Charles Banning8312de82016-06-04 15:30:48 -0600424 * [mxj](https://github.com/clbanning/mxj) - Marshal/Unmarshal XML doc from/to `map[string]interface{}` or JSON
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100425 * [xlsx](https://github.com/tealeg/xlsx) - A library to help with extracting data from Microsoft Office Excel XLSX files.
426
koolhead17376b5be2016-02-29 15:44:44 +0530427## Databases
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100428
nathanyed6b8a02014-12-10 22:48:52 -0800429See also [[SQLDrivers page|SQLDrivers]].
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100430
vivekmenezes67585872016-02-18 22:55:50 -0500431### CockroachDB
432 * [cockroachdb](https://github.com/cockroachdb/cockroach) - A Scalable, Survivable, Strongly-Consistent SQL Database
433
Scott Pakin1782c772015-07-31 11:26:50 -0600434### MongoDB
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100435
436 * [mgo](http://labix.org/mgo) - Rich MongoDB driver for Go
Jason Buberel2de0e662015-09-19 11:22:42 -0700437 * [rocks-stata](https://github.com/facebookgo/rocks-strata) - MongoDB Backup Utility
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100438
Scott Pakin1782c772015-07-31 11:26:50 -0600439### MySQL
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100440
441 * [Go-MySQL-Driver](https://github.com/go-sql-driver/mysql) - A lightweight and fast MySQL-Driver for Go's database/sql package
442 * [MyMySQL](https://github.com/ziutek/mymysql) - MySQL Client API written entirely in Go.
Jason Buberel1aa7ad92015-09-06 13:10:45 -0700443 * [TiDB](https://github.com/pingcap/tidb) - MySQL compatible distributed database modeled after Google's F1 design.
Dmitry Savintsevf8f40502015-04-24 22:04:14 +0200444 * [vitess](https://github.com/youtube/vitess) - Scaling MySQL databases for the web
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100445
Scott Pakin1782c772015-07-31 11:26:50 -0600446### ODBC
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100447
448 * [go-odbc](https://github.com/weigj/go-odbc) - ODBC Driver for Go
449 * [odbc3-go](https://bitbucket.org/rj/odbc3-go/) - This package is wrapper around ODBC (version 3).
450
Scott Pakin1782c772015-07-31 11:26:50 -0600451### PostgreSQL
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100452
453 * [go-libpq](https://github.com/jgallagher/go-libpq) - cgo-based Postgres driver for Go's database/sql package
454 * [go-pgsql](https://github.com/lxn/go-pgsql) - A PostgreSQL client library for Go
455 * [pgsql.go](https://github.com/jbarham/pgsql.go) - PostgreSQL high-level client library wrapper
456 * [pgx](https://github.com/JackC/pgx) - Go PostgreSQL driver that is compatible with database/sql and has native interface for more performance and features
457 * [pq](https://github.com/lib/pq) - Pure Go PostgreSQL driver for database/sql
Jason Buberel48d750c2015-11-21 09:49:25 -0800458 * [yoke](https://github.com/nanopack/yoke) - Postgres high-availability cluster with auto-failover and automated cluster recovery
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100459
Scott Pakin1782c772015-07-31 11:26:50 -0600460### QL
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100461
462 * [ql](https://github.com/cznic/ql) - A pure Go embedded (S)QL database.
463
Scott Pakin1782c772015-07-31 11:26:50 -0600464### Redis
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100465
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100466 * [godis](https://github.com/simonz05/godis) - Simple client for Redis
Scott Pakin1782c772015-07-31 11:26:50 -0600467 * [Go-Redis](https://github.com/alphazero/Go-Redis) - Client and Connectors for Redis key-value store
468 * [go-redis](https://github.com/fiorix/go-redis) - Redis client built on the skeleton of gomemcache
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100469 * [Redigo](https://github.com/garyburd/redigo) - Go client for Redis.
470 * [redis](https://github.com/vmihailenco/redis) - Redis client for Go
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100471
Scott Pakin1782c772015-07-31 11:26:50 -0600472### [RethinkDB](http://www.rethinkdb.com/)
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100473
m4ng0squ4sh97a9c5e2015-03-17 01:20:44 +0300474 * [GoRethink](https://github.com/dancannon/gorethink) - RethinkDB Driver for Go
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100475
Scott Pakin1782c772015-07-31 11:26:50 -0600476### SQLite
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100477
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100478 * [gosqlite3](https://github.com/kuroneko/gosqlite3) - Go Interface for SQLite3
Scott Pakin1782c772015-07-31 11:26:50 -0600479 * [gosqlite (forked)](https://github.com/gwenn/gosqlite) - A fork of gosqlite
480 * [gosqlite](http://code.google.com/p/gosqlite/) - a trivial SQLite binding for Go.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100481 * [go-sqlite](https://github.com/mxk/go-sqlite) - A database/sql driver and standalone sqlite3 interface
Scott Pakin1782c772015-07-31 11:26:50 -0600482 * [mattn's go-sqlite3](https://github.com/mattn/go-sqlite3) - sqlite3 driver conforming to the built-in database/sql interface
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100483
Scott Pakin1782c772015-07-31 11:26:50 -0600484### ORM
485
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100486 * [beedb](https://github.com/astaxie/beedb) - beedb is an ORM for Go. It lets you map Go structs to tables in a database
Scott Pakin1782c772015-07-31 11:26:50 -0600487 * [go-modeldb](https://github.com/jaekwon/go-modeldb) - A simple wrapper around sql.DB for struct support.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100488 * [gorm](https://github.com/jinzhu/gorm) - An ORM library for Go, aims for developer friendly
489 * [gorp](https://github.com/coopernurse/gorp) - SQL mapper for Go
Scott Pakin1782c772015-07-31 11:26:50 -0600490 * [go-store](https://github.com/gosuri/go-store) - Data-store library for Go that provides a set of platform-independent interfaces to persist and retrieve key-value data.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100491 * [hood](https://github.com/eaigner/hood) - Database agnostic ORM for Go. Supports Postgres and MySQL.
Tiffany Ja5275ec2016-04-12 21:56:11 -0700492 * [qbs](https://github.com/coocood/qbs) - Query By Struct. Supports MySQL, PostgreSQL and SQLite3.
Jason Buberelc549bf62015-09-13 08:22:07 -0700493 * [sqlgen](https://github.com/drone/sqlgen) - Go code generation for SQL interaction.
Jason Buberele6ad5002015-09-25 09:10:25 -0700494 * [structable](https://github.com/Masterminds/structable) - Struct-to-table database mapper.
Lunny Xiaob6258bf2015-01-06 15:28:30 +0800495 * [xorm](https://github.com/go-xorm/xorm) - Simple and Powerful ORM for Go.
Alexey Palazhchenko26a52dd2016-05-19 20:31:47 +0400496 * [reform](https://github.com/AlekSi/reform) - A better ORM for Go, based on non-empty interfaces and code generation.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100497
Scott Pakin1782c772015-07-31 11:26:50 -0600498### Multiple wrappers
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100499
500 * [gosexy/db](http://gosexy.org/db) - an abstraction of wrappers for popular third party SQL and No-SQL database drivers.
501
Scott Pakin1782c772015-07-31 11:26:50 -0600502### Key-Value-Stores
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100503
Sokolov Yuraa37e50a2015-01-18 11:24:14 +0300504 * [bolt](https://github.com/boltdb/bolt) - Persistent key/value store inspired by LMDB.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100505 * [dbm](https://github.com/cznic/exp/tree/master/dbm) - Package dbm (WIP) implements a simple database engine, a hybrid of a hierarchical and/or a key-value one.
Tim Hendersonafeed9a2015-08-03 22:29:36 -0400506 * [fs2/bptree](https://github.com/timtadh/fs2#b+tree) - 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.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100507 * [Diskv](https://github.com/peterbourgon/diskv) - Home-grown, disk-backed key-value store
508 * [etcd](https://github.com/coreos/etcd) - Highly-available key value store for shared configuration and service discovery
Scott Pakin1782c772015-07-31 11:26:50 -0600509 * [gkvlite](https://github.com/steveyen/gkvlite) - Pure go, simple, ordered, atomic key-value persistence based on append-only file format.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100510 * [gocask](http://code.google.com/p/gocask/) - Key-value store inspired by Riak Bitcask. Can be used as pure go implementation of dbm and other kv-stores.
Scott Pakin1782c772015-07-31 11:26:50 -0600511 * [goleveldb](https://github.com/syndtr/goleveldb) - Another implementation of LevelDB key/value in pure Go.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100512 * [kv](http://github.com/cznic/kv) - Yet another key/value persistent store. Atomic operations, two phase commit, automatic crash recovery, ...
513 * [leveldb-go](http://code.google.com/p/leveldb-go/) - This is an implementation of the LevelDB key/value database.
514 * [levigo](https://github.com/jmhodges/levigo) - levigo provides the ability to create and access LevelDB databases.
515 * [persival](https://github.com/nu7hatch/persival) - Programatic, persistent, pseudo key-value storage
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100516
Jason Bubereld5e084b2015-08-24 16:45:00 -0700517### Graph Databases
518
519 * [cayley](https://github.com/google/cayley) - 100% Go graph database, inspired by Freebase and the Google Knowledge Graph.
Jason Buberelca37ce22015-10-09 11:17:28 -0700520 * [go-gremlin](https://github.com/go-gremlin/gremlin) - A Go client for the Apache TinkerTop Graph analytics framework (Gremlin server).
Jason Bubereld5e084b2015-08-24 16:45:00 -0700521
Scott Pakin1782c772015-07-31 11:26:50 -0600522### NoSQL
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100523
Scott Pakin1782c772015-07-31 11:26:50 -0600524 * [influxdb](https://github.com/influxdb/influxdb) - Scalable datastore for metrics, events, and real-time analytics
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100525 * [ledisdb](https://github.com/siddontang/ledisdb) - A high performance NoSQL like Redis.
Lunny Xiaob6258bf2015-01-06 15:28:30 +0800526 * [nodb](https://github.com/lunny/nodb) - A pure Go embed Nosql database with kv, list, hash, zset, bitmap, set.
Scott Pakin1782c772015-07-31 11:26:50 -0600527 * [tiedot](https://github.com/HouzuoGuo/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.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100528
Scott Pakin1782c772015-07-31 11:26:50 -0600529### Other
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100530
531 * [cabinet](https://bitbucket.org/ww/cabinet) - Kyoto Cabinet bindings for go
Jason Buberel30377742015-09-19 10:28:53 -0700532 * [camilistore](https://github.com/camlistore/camlistore) - Personal distributed storage system for life.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100533 * [cass](https://github.com/araddon/cass) - Cassandra Client Lib
534 * [cdb.go](https://github.com/jbarham/cdb.go) - Create and read cdb ("constant database") files
Dmitry Savintsevf8f40502015-04-24 22:04:14 +0200535 * [CodeSearch](https://github.com/google/codesearch) - Index and perform regex searches over large bodies of source code
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100536 * [couch-go](http://couch-go.googlecode.com) - newer maintained CouchDB database binding
537 * [couchgo](https://github.com/lancecarlson/couchgo) - The most feature complete CouchDB Adapter for Go. Modeled after couch.js.
538 * [dbxml](https://github.com/pebbe/dbxml) - A basic interface to Oracle Berkeley DB XML
Jason Buberel8319d242015-11-08 17:52:57 -0800539 * [drive](https://github.com/odeke-em/drive) - A Google drive command line client
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100540 * [Event Horizon](https://github.com/looplab/eventhorizon) - Toolkit for Command Query Responsibility Segregation and Event Sourcing (CQRS/ES)
541 * [go-db-oracle](https://code.google.com/p/go-db-oracle/) - GO interface to Oracle DB
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100542 * [gographite](https://github.com/amir/gographite) - statsd server in go (for feeding data to graphite)
543 * [gokabinet](https://github.com/fsouza/gokabinet) - Go bindings for Kyoto Cabinet DBM implementation
Scott Pakin1782c772015-07-31 11:26:50 -0600544 * [go-notify](https://github.com/lenormf/go-notify) - GO bindings for the libnotify
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100545 * [goprotodb](http://launchpad.net/goprotodb) - A binding to Berkeley DB storing records encoded as Protocol Buffers.
Scott Pakin1782c772015-07-31 11:26:50 -0600546 * [go-rexster-client](https://github.com/sqs/go-rexster-client) - Go client for the [Rexster graph server](https://github.com/tinkerpop/rexster/wiki) (part of the [TinkerPop](http://www.tinkerpop.com/) suite of graph DB tools)
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100547 * [goriak](https://bitbucket.org/lateefj/goriak/overview) - Database driver for riak database (project homepage is now on bitbucket.org)
548 * [goriakpbc](https://github.com/tpjg/goriakpbc) - Riak driver using Riak's protobuf interface
549 * [gotyrant](https://github.com/patrickxb/gotyrant) - A Go wrapper for tokyo tyrant
Scott Pakin1782c772015-07-31 11:26:50 -0600550 * [go-wikiparse](https://github.com/dustin/go-wikiparse) - mediawiki dump parser for working with wikipedia data
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100551 * [hdfs](https://github.com/zyxar/hdfs) - go bindings for libhdfs
552 * [JGDB](http://www.robotamer.com/html/GoTamer/JGDB.html) - JGDB stands for Json Git Database
553 * [mig](https://github.com/jagregory/mig) - Simple SQL-based database migrations
554 * [mongofixtures](https://github.com/OwlyCode/mongofixtures) - A Go quick and dirty utility for cleaning MongoDB collections and loading fixtures into them.
555 * [Neo4j-GO](https://github.com/davemeehan/Neo4j-GO) - Neo4j REST Client in Go
556 * [neoism](https://github.com/jmcvetta/neoism) - Neo4j graph database client, including Cypher and Transactions support.
Jason Buberelca37ce22015-10-09 11:17:28 -0700557 * [null](https://github.com/guregu/null) - Package for handling null values in SQL
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100558 * [Optimus Cache Prime](http://patrickmylund.com/projects/ocp/) - Smart cache preloader for websites with XML sitemaps.
Scott Pakin1782c772015-07-31 11:26:50 -0600559 * [pravasan](https://pravasan.github.io/pravasan) - Simple Migration Tool (like rake db:migrate with more flexibility)
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100560 * [riako](https://github.com/jkassemi/riako) - High level utility methods for interacting with Riak databases
Scott Pakin1782c772015-07-31 11:26:50 -0600561 * [sqlbuilder](https://github.com/thcyron/sqlbuilder) - SQL query builder with row mapping
562 * [squirrel](https://github.com/lann/squirrel) - Fluent SQL generation for Go
Giovanni T. Parracf96cf42015-12-27 19:55:10 -0200563 * [Sublevel](https://github.com/fiatjaf/sublevel) - Separate sections of the same LevelDB
Dmitry Savintsevf8f40502015-04-24 22:04:14 +0200564 * [Weed File System](https://github.com/chrislusf/seaweedfs) - fast distributed key-file store
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100565 * [whisper-go](https://github.com/kisielk/whisper-go) - library for working with whisper databases
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100566
Muyiwa Olurin (Anthony)9ce06ae2015-07-04 17:38:24 -0400567## Date
Scott Pakin1782c772015-07-31 11:26:50 -0600568
Kirill Zhuharev0ac8bf72015-07-06 15:41:05 +0300569 * [now](https://github.com/jinzhu/now) - Now is a time toolkit for golang.
Filippo Tampieria7895752015-08-12 14:37:42 -0400570 * [date](https://github.com/fxtlabs/date) - A package for working with dates.
Rick Betonc394d752016-04-13 10:40:07 +0100571 * [date](https://github.com/rickb777/date) - For dates, date ranges, time spans, periods, and time-of-day.
eli0705cba2016-05-25 20:47:18 -0700572 * [gostrftime](https://github.com/cactus/gostrftime) - strftime(3) like formatting for time.Time
573 * [tai64](https://github.com/cactus/tai64) - tai64 and tai64n parsing and formatting
Tiffany Ja5275ec2016-04-12 21:56:11 -0700574 * [Tideland golib](https://github.com/tideland/golib) - Timex extensions
Kirill Zhuharev0ac8bf72015-07-06 15:41:05 +0300575
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100576## Development Tools
577
578 * [cwrap](https://github.com/hailiang/cwrap) - Go wrapper (binding) generator for C libraries.
579 * [demand](https://github.com/tv42/demand) - Download, build, cache and run a Go app easily.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100580 * [glib](https://github.com/ziutek/glib) - Bindings for GLib type system
581 * [gocog](https://github.com/natefinch/gocog) - A code generator that can generate code using any language
Scott Pakin1782c772015-07-31 11:26:50 -0600582 * [godepgraph](https://github.com/kisielk/godepgraph) - Create a dependency graph for a go package
583 * [godev](https://github.com/kdar/godev) - Recompiles and runs your Go code on source change. Also watches all your imports for changes.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100584 * [godiff](https://github.com/spcau/godiff) - diff file comparison tool with colour html output
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100585 * [gonew](https://github.com/bmatsuo/gonew) - A tool to create new Go projects
586 * [go-play](https://code.google.com/p/go-play) - A HTML5 web interface for experimenting with Go code. Like http://golang.org/doc/play but runs on your computer
Jason Buberelab7c2c02015-10-10 14:03:07 -0700587 * [gore](https://github.com/motemen/gore) - A Go REPL. Featured with line editing, code completion, and more
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100588 * [gorun](https://wiki.ubuntu.com/gorun) - Enables Go source files to be used as scripts.
589 * [go-spew](https://github.com/davecgh/go-spew) - Implements a deep pretty printer for Go data structures to aid in debugging
590 * [goven](https://github.com/kr/goven) - Easily copy code from another project into yours
591 * [gowatcher](https://github.com/nickjj/gowatcher) - Reload a specified go program automatically by monitoring a directory.
Scott Pakin1782c772015-07-31 11:26:50 -0600592 * [GoWatch](https://bitbucket.org/gotamer/gowatch) - GoWatch watches your dev folder for modified files, and if a file changes it restarts the process.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100593 * [goweb](https://bitbucket.org/santucco/goweb) - Literate programming tools for Go based on CWEB by Donald Knuth and Silvio Levy.
594 * [hopwatch](https://github.com/emicklei/hopwatch) - simple debugger for Go
595 * [hsandbox](http://labix.org/hsandbox) - Tool for quick experimentation with Go snippets
Jason Buberel0e6e3cd2015-09-11 17:35:30 -0700596 * [Inject](https://github.com/facebookgo/inject) - Library for dependency injection in Golang (from Facebook)
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100597 * [liccor](https://github.com/gtalent/liccor) - A tool for updating license headers in Go source files
Dmitry Savintsevf8f40502015-04-24 22:04:14 +0200598 * [liteide](https://github.com/visualfc/liteide) - An go auto build tools and qt-based ide for Go
Scott Pakin1782c772015-07-31 11:26:50 -0600599 * [Livedev](https://github.com/qrtz/livedev) - Livedev is a development proxy server that enables live code reloading.
Jason Buberelca37ce22015-10-09 11:17:28 -0700600 * [Martian](https://github.com/google/martian) - HTTP proxy designed for use in E2E testing.
Ashley Wilson96ad57c2015-02-19 18:00:43 +1000601 * [nvm-windows](https://github.com/coreybutler/nvm-windows) - Node.js version manager for Windows
Peter20233c92016-05-03 22:13:28 +0300602 * [prettybenchcmp](https://github.com/im7mortal/prettybenchcmp) - Store and compare benchmarks history locally.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100603 * [rerun](https://github.com/skelterjohn/rerun) - Rerun watches your binary and all its dependencies so it can rebuild and relaunch when the source changes.
Scott Pakin1782c772015-07-31 11:26:50 -0600604 * [syntaxhighlighter](https://github.com/sourcegraph/syntaxhighlight) - language-independent code syntax highlighting library
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100605 * [toggle](https://github.com/xchapter7x/toggle) - A feature toggle library with built in support for environment variable backed toggling. pluggable backing engine support.
Scott Pakin1782c772015-07-31 11:26:50 -0600606 * [trace](https://bitbucket.org/santucco/trace) - A simple debug tracing
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100607
608### Emacs Tags
609
610 * [egotags](http://bitbucket.org/scriptdevil/egotags/) - ETags generator
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100611 * [tago1](https://github.com/willoch/tago) - etags generator for go that builds with go 1
Scott Pakin1782c772015-07-31 11:26:50 -0600612 * [tago](https://github.com/AlexCombas/Tago) - Emacs TAGS generator for Go source
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100613
614## Distributed/Grid Computing
615
Stefan von Cavallarb56f9ac2015-10-14 20:41:29 +1100616 * [celeriac](https://github.com/svcavallar/celeriac.v1) - A library for adding support for interacting and monitoring Celery workers, tasks and events in Go
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100617 * [donut](https://github.com/dforsyth/donut) - A library for building clustered services in Go
Jason Buberel37532842015-09-10 18:25:30 -0700618 * [libchan](https://github.com/docker/libchan) - Go-like channels over the network
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100619 * [locker](https://github.com/jagregory/locker) - A distributed lock service built on top of [etcd](https://github.com/coreos/etcd).
gdm8574c135b2016-04-18 15:16:18 +0200620 * [dlock](https://github.com/temoto/dlock) - A native Go distributed lock manager (client and server) using gRPC.
Jason Bubereldb19b952015-10-17 10:27:03 -0700621 * [mangos](https://github.com/gdamore/mangos) - An implementation of the Scalable Protocols based on [nanomsg](http://nanomsg.org/)
Jason Buberela4ed2ad2015-12-06 11:28:15 -0800622 * [redsync](https://github.com/hjr265/redsync.go) - Redis-based distributed mutual exclusion lock implementation
David Campbell6c7b2c12015-03-06 11:33:59 -0800623 * [Skynet](https://github.com/skynetservices/skynet) - Skynet is distributed mesh of processes designed for highly scalable API type service provision.
Jason Bubereldb39fb92015-08-23 14:59:44 -0700624 * [Tideland golib](https://github.com/tideland/golib) - Includes a map/reduce library
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100625
626## Documentation
627
Scott Pakin1782c772015-07-31 11:26:50 -0600628 * [examplgen](https://github.com/gima/examplgen) - Insert code from .go files to documents (examples to project's readme, for instance).
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100629 * [godocdown](https://github.com/robertkrimen/godocdown) - Format package documentation (godoc) as GitHub friendly Markdown
Scott Pakin1782c772015-07-31 11:26:50 -0600630 * [GoDoc.org](http://godoc.org/) - GoDoc.org generates documentation on the fly from source on Bitbucket, Github, Google Project Hosting and Launchpad.
chai2010319bb7c2015-02-27 15:18:21 +0800631 * [golangdoc](https://github.com/golang-china/golangdoc) - Godoc for Golang, support translate.
Scott Pakin1782c772015-07-31 11:26:50 -0600632 * [Mango](http://code.google.com/p/mango-doc/) - Automatically generate unix man pages from Go sources
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100633 * [redoc](https://github.com/simonz05/redoc) - Commands documentation for Redis
634 * [sphinxcontrib-golangdomain](http://pypi.python.org/pypi/sphinxcontrib-golangdomain) - Sphinx domain for Go
635 * [test2doc](https://code.google.com/p/test2doc/) - Generate documentation for your go units from your unit tests.
636
637## Editors
638
pebbee9ac3592014-12-25 09:15:43 -0800639 * [Conception](https://github.com/shurcooL/Conception) - Conception is an experimental research project, meant to become a modern IDE/Language package. [demo video](http://youtu.be/DNJ7HqlV55k)
Andrew Carter2b07d492015-08-21 10:36:28 -0700640 * [Go-bbpackage](https://github.com/ascarter/Go-bbpackage) - BBEdit package for Go development
Dmitry Savintsevf8f40502015-04-24 22:04:14 +0200641 * [goclipse](https://github.com/GoClipse/goclipse) - An Eclipse-based IDE for Go.
Scott Pakin1782c772015-07-31 11:26:50 -0600642 * [Go conTEXT](http://www.tc33.org/go/go-programming-highlighter-for-context-editor/) - Highlighter plugin
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100643 * [godev](https://github.com/sirnewton01/godev) - Web-based IDE for the Go language
pebbee9ac3592014-12-25 09:15:43 -0800644 * [godit](https://github.com/nsf/godit) - A microemacs-like text editor written in Go.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100645 * [gofinder](https://github.com/mpl/gofinder) - (code) search tool for acme
Scott Pakin1782c772015-07-31 11:26:50 -0600646 * [go-gedit](http://code.google.com/p/go-gedit3-plugin/) - Google Go language plugin for gedit
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100647 * [golab](https://github.com/mb0/lab) - go local application builder - a web-based Go ide
pebbee9ac3592014-12-25 09:15:43 -0800648 * [Google Go for Idea](http://plugins.intellij.net/plugin/?idea&id=5047) - Google Go language plugin for Intellij IDEA
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100649 * [tabby](https://github.com/mikhailt/tabby) - Source code editor
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100650 * [ViGo](https://github.com/kisielk/vigo) - A vim-like text editor.
pebbee9ac3592014-12-25 09:15:43 -0800651 * [Wide](https://github.com/b3log/wide) - A Web-based IDE for Teams using Golang.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100652
Alexandre Cesaro5006ebd2015-09-02 14:37:54 +0200653## Email
654
Nathan Osman4365d022015-10-02 15:44:26 -0700655 * [Hectane](https://github.com/hectane/hectane) - Lightweight SMTP client including a built-in mail queue backed by on-disk storage.
Alexandre Cesaro5006ebd2015-09-02 14:37:54 +0200656 * [gmail](https://github.com/SlyMarbo/gmail) - Simple library for sending emails from a Gmail account, for people not interested in dealing with protocol details.
657 * [go-mail](https://github.com/ungerik/go-mail) - Email utilities including RFC822 messages and Google Mail defaults.
658 * [Gomail](https://github.com/go-gomail/gomail) - A simple and efficient package to send emails.
659 * [go-ses](https://github.com/sourcegraph/go-ses) - Amazon AWS Simple Email Service (SES) API client
660 * [Inbucket](http://jhillyerd.github.io/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.
661 * [mail.go](https://bitbucket.org/taruti/mail.go) - Parse email messages
Jason Buberele6ad5002015-09-25 09:10:25 -0700662 * [MailHog](https://github.com/mailhog/MailHog) - Email testing service, inspired by MailCatcher.
lkalneus4d1f2bc2016-06-10 12:57:00 +0600663 * [MailSlurper](https://github.com/mailslurper/mailslurper) - A handy SMTP mail server useful for local and team application development. Slurp mail into oblivion!
Alexandre Cesaro5006ebd2015-09-02 14:37:54 +0200664
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100665## Error handling
666
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100667 * [errgo](https://github.com/juju/errgo) - Error tracing and annotation.
668 * [errors](https://github.com/juju/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.
anlhordb08328e2015-01-04 22:30:10 +0100669 * [goerr](https://github.com/goerr/goerr) - Allows to make a separate(modular) and reusable error handlers. Exception-like panic() recover() mechanism using Return(error) and catching err := OR1(..)
Jason Buberel95ef4e22015-09-07 18:42:54 -0700670 * [panicparse](https://github.com/maruel/panicparse/) - Parse panics with style.
Scott Pakin1782c772015-07-31 11:26:50 -0600671 * [Space Monkey errors](https://github.com/spacemonkeygo/errors) - Go's missing errors library - stack capture, error hierarchies, error tags
Jason Bubereldb39fb92015-08-23 14:59:44 -0700672 * [Tideland golib](https://github.com/tideland/golib) - Detailed error values
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100673
674## Encodings and Character Sets
675
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100676 * [base58](https://github.com/tv42/base58) - Human input-friendly base58 encoding
Dmitry Savintsevf8f40502015-04-24 22:04:14 +0200677 * [bencode-go](https://github.com/jackpal/bencode-go) - Encoding and decoding the bencode format used by the BitTorrent peer-to-peer file sharing protocol
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100678 * [bsonrpc](https://github.com/skelterjohn/bsonrpc) - BSON codec for net/rpc
679 * [chardet](https://github.com/saintfish/chardet) - Charset detection library ported from ICU
680 * [charmap](https://github.com/disintegration/charmap) - Character encodings in Go
Scott Pakin1782c772015-07-31 11:26:50 -0600681 * [codec-msgpack-binc](https://github.com/ugorji/go/tree/master/codec#readme) High Performance and Feature-Rich Idiomatic Go Library providing encode/decode support for multiple binary serialization formats: [msgpack](http://www.msgpack.org)
682 * [gobson](http://labix.org/gobson) - BSON (de)serializer
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100683 * [go-charset](http://code.google.com/p/go-charset/) - Conversion between character sets. Native Go.
James Hillyerd6d7e5b02016-02-19 12:39:54 -0800684 * [go.enmime](https://github.com/jhillyerd/go.enmime) - MIME email parser library for Go (native)
Scott Pakin1782c772015-07-31 11:26:50 -0600685 * [go-msgpack](https://github.com/ugorji/go-msgpack) - Comprehensive MsgPack library for Go, with pack/unpack and net/rpc codec support (DEPRECATED in favor of [codec](https://github.com/ugorji/go/tree/master/codec#readme) )
686 * [gopack](https://github.com/joshlf13/gopack) - Bit-packing for Go
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100687 * [go-simplejson](https://github.com/bitly/go-simplejson) - a Go package to interact with arbitrary JSON
Jae Kwon97ef15c2015-10-22 19:36:14 -0700688 * [go-wire](https://github.com/tendermint/go-wire) - Binary and JSON codec for structures and more
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100689 * [go-xdr](https://github.com/davecgh/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).
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100690 * [iconv-go](https://github.com/djimenez/iconv-go) - iconv wrapper with Reader and Writer
Scott Pakin1782c772015-07-31 11:26:50 -0600691 * [magicmime](https://github.com/rakyll/magicmime) -- Mime-type detection with Go bindings for libmagic
692 * [Mahonia](http://code.google.com/p/mahonia/source/browse/) - Character-set conversion library in Go
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100693 * [mimemagic](https://bitbucket.org/taruti/mimemagic) - Detect mime-types automatically based on file contents with no external dependencies
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100694 * [msgpack](https://github.com/vmihailenco/msgpack) - Msgpack format implementation for Go
695 * [msgpack-json](https://github.com/tv42/msgpack-json) - Command-line utilities to convert between msgpack and json
Scott Pakin1782c772015-07-31 11:26:50 -0600696 * [nnz](https://sourcegraph.com/github.com/sourcegraph/go-nnz) - String and Int primitives that serialize to JSON and SQL null
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100697 * [storable](https://github.com/kdar/storable) - Write perl storable data
698 * [TNetstring](https://github.com/edsrzf/tnetstring-go) - tnetstrings (tagged Netstrings)
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100699
Jason Buberelef2017a2015-08-30 16:20:06 -0700700## File Systems
701
Jason Buberel00455ab2015-12-06 11:39:22 -0800702 * [afero](https://github.com/spf13/afero) - A File Sytem abstraction system for Go
Jason Buberelef2017a2015-08-30 16:20:06 -0700703 * [go.fs](https://github.com/daaku/go.fs) - A virutal file system abstraction layer.
Jason Buberel48d750c2015-11-21 09:49:25 -0800704 * [poller](https://github.com/npat-efault/poller) - Package poller is a file-descriptor multiplexer. It allows concurent Read and Write operations from and to multiple file-descriptors.
Jason Buberel107e1352015-11-22 12:34:18 -0800705 * [vfsgen](https://github.com/shurcooL/vfsgen) - Generates a vfsdata.go file that statically implements the given virtual filesystem.
706
Jason Buberelef2017a2015-08-30 16:20:06 -0700707
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100708## Games
709
Scott Pakin1782c772015-07-31 11:26:50 -0600710 * [Bampf](https://github.com/gazed/bampf) - Arcade style game based on the Vu 3D engine.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100711 * [bloxorz](https://github.com/YouriAckx/bloxorz) - Solver for bloxorz basic levels
712 * [ChessBuddy](https://github.com/tux21b/ChessBuddy) - Play chess with Go, HTML5, WebSockets and random strangers!
713 * [Fergulator](https://github.com/scottferg/Fergulator) - An NES emulator, using SDL and OpenGL
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100714 * [FlappyBird](https://github.com/himanshushekhar/golang-flappybirdclone) - A simple flappy bird clone written in golang.
Scott Pakin1782c772015-07-31 11:26:50 -0600715 * [godoku](http://code.google.com/p/kylelemons/source/browse?repo=godoku) - Go Sudoku Solver - example of "share by communicating"
716 * [Gongo](https://github.com/skybrian/Gongo) - A program written in Go that plays Go
717 * [gospeccy](https://github.com/remogatto/gospeccy) - A ZX Spectrum 48k Emulator
718 * [Ludo Game](http://ludo.abiosoft.net) - Ludo Board game powered by Go on Appengine
Michael Vetterb109d572016-01-04 20:36:27 +0100719 * [pinkman](https://github.com/jubalh/pinkman) - command line based chess interface to UCI compatible chess engines
LaurenceGA729f38a2015-02-18 00:28:49 +1300720 * [Pong](https://github.com/LaurenceGA/Pong) - A simple Pong clone written in golang
kurehajime4d776202016-02-16 20:50:33 +0900721 * [pong-command](https://github.com/kurehajime/pong-command) - Joke command,ping-like pong.
thinkofdeath04e071a2015-06-22 09:57:52 +0100722 * [Steven](https://github.com/thinkofdeath/steven) - A Minecraft client in Go
G. D. Mc29b6cf2016-01-25 10:27:59 +0100723 * [WolfenGo](https://github.com/gdm85/wolfengo) - A Wolfenstein3D clone in Go, using OpenGL 2.1
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100724
725## GIS
726
Tom Payne34990a12015-12-08 20:15:31 +0100727 * [go-geom](https://github.com/twpayne/go-geom) - Efficient Open Geo Consortium-style geometries with native Go GeoJSON and WKB encoding and decoding (work-in-progress)
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100728 * [go.geo](https://github.com/paulmach/go.geo) - Geometry/geography library targeted at online mapping
729 * [go.geojson](https://github.com/paulmach/go.geojson) - Marshalling and Unmarshalling of GeoJSON objects
Scott Pakin1782c772015-07-31 11:26:50 -0600730 * [gogeos](http://paulsmith.github.io/gogeos/) - Go library for spatial data operations and geometric algorithms
731 * [go-proj-4](https://github.com/pebbe/go-proj-4) - An interface to the Cartographic Projections Library PROJ.4
Tom Payne34990a12015-12-08 20:15:31 +0100732 * [go-kml](https://github.com/twpayne/go-kml) - Google Earth KML generation
733 * [go-polyline](https://github.com/twpayne/go-polyline) - Google Maps polyline encoding and decoding
Peter0ee8adc2016-04-25 01:52:38 +0300734 * [UTM](https://github.com/im7mortal/UTM) - Bidirectional UTM-WGS84 converter
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100735
736## Go Implementations
737
Andrew Wilkinsf52bf142015-10-20 11:23:25 +0800738 * [llgo](http://llvm.org/klaus/llgo) - LLVM-based Go compiler, written in Go
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100739
Dean Karnbe4ae512015-11-18 08:03:05 -0500740
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100741## Graphics and Audio
742
743 * [AnsiGo](https://github.com/fcambus/ansigo) - Simple ANSi to PNG converter written in pure Go
744 * [Arclight](http://www.angryredplanet.com/exh/arclight/) - Arclight is a tool for rendering images
Scott Pakin1782c772015-07-31 11:26:50 -0600745 * [bimg](https://github.com/h2non/bimg) - Small Go library for fast image resize and transformation using libvips
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100746 * [blend](https://github.com/Phrozen/blend) - Image processing library and rendering toolkit for Go.
Scott Pakin1782c772015-07-31 11:26:50 -0600747 * [bpg](https://github.com/chai2010/bpg) - BPG decoder for Go.
Tiffany Ja5275ec2016-04-12 21:56:11 -0700748 * [chart](https://github.com/vdobler/chart) - Library to generate common chart (pie, bar, strip, scatter, histogram) in different output formats.
Dmitry Savintsevf8f40502015-04-24 22:04:14 +0200749 * [draw2d](https://github.com/llgcode/draw2d) - This package provide an API to draw 2d geometrical form on images. This library is largely inspired by postscript, cairo, HTML5 canvas.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100750 * [egl](http://godoc.org/github.com/mortdeus/egles/egl) - egl bindings
751 * [es2](http://godoc.org/github.com/mortdeus/egles/es2) - es2 bindings
Scott Pakine1ee8b32015-02-07 11:05:06 -0700752 * [freetype-go](http://code.google.com/p/freetype-go/) - a Go implementation of FreeType
753 * [glfw 3](https://github.com/go-gl/glfw3) - Go bindings for GLFW 3 library
754 * [glfw](https://github.com/go-gl/glfw) - bindings to the multi-platform library for opening a window, creating an OpenGL context and managing input
755 * [glh](https://github.com/go-gl/glh) - OpenGL helper functions to manage text, textures, framebuffers and more
756 * [gl](https://github.com/go-gl/gl) - OpenGL bindings using glew
757 * [glu](https://github.com/go-gl/glu) - bindings to the OpenGL Utility Library
758 * [gmask](https://github.com/fggp/gmask) - Go adaptation of the Cmask utility for Csound
Will Newtonb549d0c2015-03-05 15:26:32 +0000759 * [goalsa](https://github.com/cocoonlife/goalsa) - Go bindings for ALSA capture and playback
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100760 * [go-cairo](https://github.com/ungerik/go-cairo) - Go wrapper for the cairo graphics library
Rain Liudb2cb5f2015-09-25 11:52:57 -0700761 * [gocl](https://github.com/rainliu/gocl) - Go OpenCL (gocl) binding, support OpenCL 1.1/1.2/2.0 on Mac/Linux/Windows/Android
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100762 * [go-csnd6](https://github.com/fggp/go-csnd6) - Go binding to the Csound6 API
763 * [go-csperfthread](https://github.com/fggp/go-csperfthread) - Go binding to the CsoundPerformanceThread helper class of the Csound6 API
Scott Pakine1ee8b32015-02-07 11:05:06 -0700764 * [goexif](https://github.com/rwcarlsen/goexif) - Retrieve EXIF metadata from image files
Will Newtonb549d0c2015-03-05 15:26:32 +0000765 * [goflac](https://github.com/cocoonlife/goflac) - Go bindings for decoding and encoding FLAC audio with libFLAC
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100766 * [go-gd](https://github.com/bolknote/go-gd) - Go bingings for GD
Scott Pakine1ee8b32015-02-07 11:05:06 -0700767 * [GoGL](https://github.com/chsc/GoGL) - OpenGL binding generator
Sebastien Binet4f681ed2016-06-09 14:00:48 +0200768 * [go-gnuplot](https://github.com/sbinet/go-gnuplot) - go bindings for Gnuplot
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100769 * [go-gtk3](https://github.com/norisatir/go-gtk3) - gtk3 bindings for go
770 * [go-heatmap](https://github.com/dustin/go-heatmap) - A toolkit for making heatmaps
Scott Pakine1ee8b32015-02-07 11:05:06 -0700771 * [GoHM](https://github.com/rainliu/GoHM) - H.265/HEVC HM Video Codec in Go
Dmitry Savintsevf8f40502015-04-24 22:04:14 +0200772 * [goHorde](https://bitbucket.org/tshannon/gohorde/src) - Go Bindings for the Horde3d Rendering engine.
Scott Pakine1ee8b32015-02-07 11:05:06 -0700773 * [GoMacDraw](https://github.com/skelterjohn/gmd) - A mac implementation of go.wde
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100774 * [go-openal](https://github.com/phf/go-openal) - Experimental OpenAL bindings for Go
775 * [go-opencl](https://github.com/tones111/go-opencl) - A go wrapper to the OpenCL heterogeneous parallel programming library
Scott Pakine1ee8b32015-02-07 11:05:06 -0700776 * [Go-OpenGL](https://github.com/banthar/Go-OpenGL) - Go bindings for OpenGL
777 * [Goop](https://github.com/peterbourgon/goop) - Audio synthesizer engine
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100778 * [goray](http://goray.sourceforge.net/) - Raytracer written in Go, based on Yafaray
779 * [gosc](https://bitbucket.org/liamstask/gosc) - Pure Go OSC (Open Sound Control) library
Scott Pakine1ee8b32015-02-07 11:05:06 -0700780 * [go-taglib](https://github.com/wtolson/go-taglib) - Go wrapper for TagLib, an audio meta-data parser
781 * [go-tmx](https://github.com/salviati/go-tmx) - A Go library that reads Tiled's TMX files
782 * [GoVisa](https://github.com/rainliu/GoVisa) - H265/HEVC Bitstream Analyzer in Go
783 * [go-vlc](https://github.com/jteeuwen/go-vlc) - Go bindings for libVLC
784 * [go.wde](https://github.com/skelterjohn/go.wde) - A windowing/drawing/event interface
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100785 * [goxscr](http://goxscr.googlecode.com) - Go rewrites of xscreensaver ports
786 * [gst](https://github.com/ziutek/gst) - Go bindings for GStreamer
Tim Cooper8f122fe2015-12-14 20:24:46 -0400787 * [gumble](https://github.com/layeh/gumble) - Client library for the [Mumble](http://mumble.info) VoIP protocol
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100788 * [hgui](https://github.com/zozor/hgui) - Gui toolkit based on http and gtk-webkit.
Scott Pakin1782c772015-07-31 11:26:50 -0600789 * [imaginary](https://github.com/h2non/imaginary) - Simple and fast HTTP microservice for image resizing and manipulation
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100790 * [imaging](https://github.com/disintegration/imaging) - Package imaging provides basic image manipulation functions (resize, rotate, flip, crop, etc.) as well as simplified image loading and saving.
Scott Pakine1ee8b32015-02-07 11:05:06 -0700791 * [netpbm](https://github.com/spakin/netpbm) - Read and write Netpbm images from Go programs
792 * [opencv](https://github.com/chai2010/opencv/) - Go bindings for OpenCV
Dmitry Savintsevf8f40502015-04-24 22:04:14 +0200793 * [Plotinum](https://github.com/gonum/plot) - An API for creating plots
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100794 * [portaudio](http://code.google.com/p/portaudio-go/) - A Go binding to PortAudio
795 * [pulsego](https://github.com/moriyoshi/pulsego/) - Go binding for PulseAudio
Scott Pakine1ee8b32015-02-07 11:05:06 -0700796 * [pulse-simple](https://github.com/mesilliac/pulse-simple/) - Go bindings for PulseAudio's Simple API, for easy audio capture and playback.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100797 * [resize](https://github.com/nfnt/resize) - Image resizing with different interpolations.
Matthew Alexander Everettf7c8d782016-01-27 17:39:24 +0000798 * [RiGO](https://github.com/mae-global/rigo) - RenderMan Interface implementation in Go.
Scott Pakine1ee8b32015-02-07 11:05:06 -0700799 * [smartcrop](https://github.com/muesli/smartcrop) - Content aware image cropping
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100800 * [starfish](https://github.com/gtalent/starfish) - A simple Go graphics and user input library, built on SDL
801 * [stl](https://github.com/hschendel/stl) - library for reading, writing, and manipulating Stereolithography (.stl) files used in 3D printing
802 * [svgo](https://github.com/ajstarks/svgo) - a library for creating and outputting SVG
David Howdene1ded412015-05-12 12:24:02 +1000803 * [tag](https://github.com/dhowden/tag) - a library for reading tag metadata and creating metadata-invariant checksums for audio files: FLAC, all IDv3 variants, and MP4 (ACC, ALAC)
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100804 * [tga](https://github.com/ftrvxmtrx/tga) - TARGA image format encoding/decoding library
chai2010cbaa9bd2015-02-24 08:51:21 +0800805 * [tiff](https://github.com/chai2010/tiff) - Rich TIFF/BigTIFF/GeoTIFF decoder/encoder for Go.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100806 * [videoinput](https://github.com/chai2010/videoinput) - Go bindings for VideoInput (Windows).
Scott Pakine1ee8b32015-02-07 11:05:06 -0700807 * [vu](https://github.com/gazed/vu) - Virtual Universe. A skeleton 3D engine.
chai2010cbaa9bd2015-02-24 08:51:21 +0800808 * [webp](https://github.com/chai2010/webp) - WebP decoder and encoder for Go.
magsoft-se81974512015-06-01 10:25:31 +0200809 * [wg](https://github.com/magsoft-se/wg) - Web Graphics, display real time go graphics in browser, with user input.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100810 * [window](https://github.com/jbrukh/window) - Optimized moving window for real-time data
811 * [wingo](https://github.com/BurntSushi/wingo) - A fully-featured window manager written in Go.
Scott Pakine1ee8b32015-02-07 11:05:06 -0700812 * [Winhello](https://github.com/MalcolmJSmith/Winhello) - An example Windows GUI hello world application
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100813 * [wxGo](https://github.com/JeroenD/wxGo) - Go Wrapper for the wxWidgets GUI
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100814 * [xgb](https://github.com/BurntSushi/xgb) - A fork of the x-go-binding featuring support for thread safety and all X extensions.
815 * [xgbutil](https://github.com/BurntSushi/xgbutil/) - A utility library to make use of the X Go Binding easier. (Implements EWMH and ICCCM specs, key binding support, etc.)
Scott Pakine1ee8b32015-02-07 11:05:06 -0700816 * [x-go-binding](http://code.google.com/p/x-go-binding/) - bindings for the X windowing system
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100817
818## GUIs and Widget Toolkits
819
820 * [go-fltk](https://github.com/zot/go-fltk) - FLTK2 GUI toolkit bindings for Go
821 * [go-gtk](https://github.com/mattn/go-gtk) - Bindings for GTK
whit3cbc3a932015-02-27 16:38:31 +0100822 * [go-qt5](https://github.com/salviati/go-qt5) - QT5 bindings for go
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100823 * [gothic](https://github.com/nsf/gothic) - Tcl/Tk Go bindings
824 * [gotk3](https://github.com/conformal/gotk3) - Go bindings for GTK3, requires GTK version 3.8
Scott Pakin1782c772015-07-31 11:26:50 -0600825 * [go.uik](https://github.com/skelterjohn/go.uik) - A UI kit for Go, in Go. (project is closed)
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100826 * [go-webkit2](https://sourcegraph.com/github.com/sourcegraph/go-webkit2) - Go bindings for the WebKitGTK+ v2 API (w/headless browser & JavaScript support)
827 * [Gowut](https://sites.google.com/site/gowebuitoolkit/) - 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.
iczab71a01c2015-03-19 14:28:57 +0100828 * [GXUI](https://github.com/google/gxui) - A Go cross platform UI library.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100829 * [iup](https://github.com/grd/iup) - Bindings for [IUP](http://www.tecgraf.puc-rio.br/iup)
830 * [mdtwm](https://github.com/ziutek/mdtwm) - Tiling window manager for X
831 * [qml](https://github.com/niemeyer/qml) - QML support for the Go language
whit3cbc3a932015-02-27 16:38:31 +0100832 * [ui](https://github.com/andlabs/ui) - Platform-native GUI library for Go
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100833
834## Hardware
835
836 * [go.hid](https://github.com/GeertJohan/go.hid) - Provides communication with USB Human Interface Devices.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100837 * [gortlsdr](https://github.com/jpoirier/gortlsdr) - A librtlsdr wrapper, which turns certain USB DVB-T dongles into a low-cost, general purpose software-defined radio receiver.
Scott Pakin1782c772015-07-31 11:26:50 -0600838 * [hwio](https://github.com/mrmorphic/hwio) - Hardware I/O library for SoC boards including BeagleBone Black and Raspberry Pi.
rajasagashe12380412016-01-07 19:13:03 -0800839 * [stressdisk](https://github.com/ncw/stressdisk) - Stress test your disks / memory cards / USB sticks before trusting your valuable data to them
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100840
841## Language and Linguistics
842
843 * [alpinocorpus-go](https://github.com/rug-compling/alpinocorpus-go) - A reader and a writer for Alpino corpora.
844 * [go-aspell](https://github.com/trustmaster/go-aspell) - GNU Aspell spell checking library bindings for Go.
845 * [go-language](https://github.com/matiasinsaurralde/go-language) - A simple language detector using letter frequency data.
Scott Pakin1782c772015-07-31 11:26:50 -0600846 * [goling](https://github.com/gyuho/goling) - String Similarity(Cosine Similarity, Levenshtein Distance), Spell Check, Segmentation
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100847 * [go.stringmetrics](https://github.com/robyoung/go.stringmetrics) - String distance metrics implemented in Go
848 * [inflect](https://bitbucket.org/pkg/inflect) - Word inflection library (similar to Ruby ActiveSupport::Inflector). Singularize(), Pluralize(), Underscore() etc.
849 * [libtextcat](https://github.com/pebbe/libtextcat) - A Go wrapper for libtextcat.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100850 * [sego](https://github.com/huichen/sego) - Chinese language segmenter.
Scott Pakin1782c772015-07-31 11:26:50 -0600851 * [textcat](https://github.com/pebbe/textcat) - N-gram based text categorization, with support for utf-8 and raw text
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100852
Jason Buberel6c10cf92015-09-19 10:49:44 -0700853## Logging and Monitoring
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100854
Jason Bubereldb39fb92015-08-23 14:59:44 -0700855 * [colog](https://github.com/comail/colog) - CoLog is a prefix-based leveled execution log for Go
Bob Ziuchkovski30139082016-03-12 21:32:10 -0700856 * [cue](https://github.com/bobziuchkovski/cue) - Fast and flexible contextual logger. Supports output to file, syslog, structured syslog, stdout/stderr, socket, Loggly, Honeybadger, Opbeat, Rollbar, and Sentry.
Nicolas Embriz8d99b9c2016-07-01 09:47:30 +0200857 * [epazote](https://github.com/nbari/epazote) - Automated Microservices Supervisor.
Scott Pakin1782c772015-07-31 11:26:50 -0600858 * [factorlog](https://github.com/kdar/factorlog) - Really fast, featureful logging infrastructure (supports colors, verbosity, and many formats)
better0332148b04d2016-04-26 18:54:12 +0800859 * [vlog](https://github.com/better0332/vlog) - Leveled log on std log for Go
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100860 * [glog](https://github.com/golang/glog) - Leveled execution logs for Go
861 * [go-logging](https://github.com/op/go-logging) - Supports different logging backends like syslog, file and memory. Multiple backends can be utilized with different log levels per backend and logger.
Erik Davidsonb7109232015-09-08 09:34:50 -0500862 * [gomol](https://www.github.com/aphistic/gomol) - A multi-output logging library designed for outputs that support additional metadata with log messages.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100863 * [graylog-golang](https://github.com/robertkowalski/graylog-golang) - graylog-golang is a full implementation for sending messages in GELF (Graylog Extended Log Format) from Google Go (Golang) to Graylog
Scott Pakin1782c772015-07-31 11:26:50 -0600864 * [jWalterWeatherman](https://github.com/spf13/jwalterweatherman) - Seamless terminal printing and file logging that’s as easy to use as fmt.Println
865 * [log4go](http://log4go.googlecode.com/) - Go logging package akin to log4j
866 * [logrus](https://github.com/Sirupsen/logrus) - Structured, pluggable logging for Go with built-in hooks for third-party loggers: Airbrake, Papertrail, Loggly, Sentry...
Jason Buberel6c10cf92015-09-19 10:49:44 -0700867 * [MailJet Live Event Dashboard](https://github.com/arnaudbreton/mailjet-live-event-dashboard) - API monitoring in real time.
JT Olds2e0f70d2016-06-23 23:12:48 -0600868 * [monkit](https://github.com/spacemonkeygo/monkit) - A flexible process data collection, metrics, monitoring, instrumentation, and tracing library for Go
Tobias Schmidt2733c052016-05-26 00:25:07 -0400869 * [Prometheus](https://github.com/prometheus/prometheus) - Monitoring system and time-series database.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100870 * [rfw](https://github.com/mipearson/rfw) - Rotating file writer - a 'logrotate'-aware file output for use with loggers
871 * [sd](https://github.com/aletheia7/sd) - Writes to the systemd journal, supports user defined systemd journal fields
Scott Pakin1782c772015-07-31 11:26:50 -0600872 * [seelog](https://github.com/cihub/seelog) - Flexible dispatching, filtering, and formatting
Jason Buberelb95fdf52015-12-13 11:36:20 -0800873 * [snap](https://github.com/intelsdi-x/snap) - Telemetry framework
Scott Pakin1782c772015-07-31 11:26:50 -0600874 * [spacelog](https://github.com/spacemonkeygo/spacelog) - Hierarchical, leveled, and structured logging library for Go
Jason Buberel48d750c2015-11-21 09:49:25 -0800875 * [statsgod](https://github.com/acquia/statsgod) - A rewrite of StatsD in Go.
Scott Pakin1782c772015-07-31 11:26:50 -0600876 * [syslog](https://github.com/ziutek/syslog) - With this package you can create your own syslog server with your own handlers for different kind of syslog messages
Jason Bubereldb39fb92015-08-23 14:59:44 -0700877 * [Tideland golib](https://github.com/tideland/golib) - Flexible logging
Scott Pakin1782c772015-07-31 11:26:50 -0600878 * [timber](https://github.com/ngmoco/timber) - Configurable Logger for Go
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100879
880## Machine Learning
Scott Pakin1782c772015-07-31 11:26:50 -0600881
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100882 * [bayesian](https://github.com/jbrukh/bayesian) - A naive bayes classifier.
Jason Buberel32228172015-08-26 15:43:25 -0700883 * [ctw](https://github.com/fumin/ctw) - Context Tree Weighting and Rissanen-Langdon Arithmetic Coding
Jason Buberel48d750c2015-11-21 09:49:25 -0800884 * [evo](https://github.com/cbarrick/evo) - a framework for implementing evolutionary algorithms in Go.
Scott Pakin1782c772015-07-31 11:26:50 -0600885 * [go-algs/maxflow](https://github.com/daviddengcn/go-algs/tree/master/maxflow) Maxflow (graph-cuts) energy minimization library.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100886 * [go-galib](https://github.com/thoj/go-galib) - Genetic algorithms.
Daniël de Koke65bb412015-03-24 11:08:52 +0100887 * [golinear](https://github.com/danieldk/golinear) - Linear SVM and logistic regression.
Scott Pakin1782c772015-07-31 11:26:50 -0600888 * [go\_ml](https://github.com/alonsovidales/go_ml) - Linear Regression, Logistic Regression, Neural Networks, Collaborative Filtering, Gaussian Multivariate Distribution.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100889 * [go-porterstemmer](https://github.com/reiver/go-porterstemmer) - An efficient native Go clean room implementation of the Porter Stemming algorithm.
Scott Pakin1782c772015-07-31 11:26:50 -0600890 * [go-pr](https://github.com/daviddengcn/go-pr) - Gaussian classifier.
891 * [ntm](https://github.com/fumin/ntm) - [Neural Turing Machines](http://arxiv.org/pdf/1410.5401v2.pdf) implementation
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100892 * [paicehusk](https://github.com/Rookii/paicehusk) - Go implementation of the Paice/Husk Stemmer
893 * [snowball](https://bitbucket.org/tebeka/snowball) - Snowball stemmer
Steven Miller98d877f2015-10-15 11:11:01 -0700894 * [go-mind](https://github.com/stevenmiller888/go-mind) - A neural network library built in Go
Tim Schindler32afced2016-05-18 00:02:13 +0200895 * [Anna](https://github.com/xh3b4sd/anna) - Artificial Neural Network Aspiration, aims to be self-learning and self-improving software.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100896
897## Mathematics
898
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100899 * [bayesian](https://github.com/jbrukh/bayesian) - Naive Bayesian Classification for Go
900 * [blas](https://github.com/ziutek/blas) - Go implementation of BLAS (Basic Linear Algebra Subprograms)
901 * [cartconvert](https://github.com/the42/cartconvert) - cartography functions for the Go programming language
Scott Pakin996ac942015-11-10 10:31:48 -0700902 * [clp](https://github.com/losalamos/clp) - Go bindings for the COIN-OR Linear Programming (CLP) library
903 * [Cvx](https://github.com/hrautila/cvx) - Convex optimization package, port of CVXOPT python package
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100904 * [dice](https://github.com/tonio-ramirez/dice) - Dice rolling library
905 * [evaler](https://github.com/soniah/evaler) - A simple floating point arithmetic expression evaluator
Scott Pakin996ac942015-11-10 10:31:48 -0700906 * [fixed](https://github.com/klkblake/fixed) - A fixed point (Q32.32 format) math library
907 * [geom](https://github.com/skelterjohn/geom) - 2d geometry
908 * [gochipmunk](https://github.com/paulcoyle/gochipmunk) - Go bindings to the Chipmunk Physics library
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100909 * [gocomplex](http://code.google.com/p/gocomplex/) - a complex number library
Dmitry Savintsevf8f40502015-04-24 22:04:14 +0200910 * [godec](http://godoc.org/speter.net/go/exp/math/dec/inf) - multi-precision decimal arithmetic
Scott Pakin1782c772015-07-31 11:26:50 -0600911 * [gofd](https://bitbucket.org/gofd/gofd) - concurrent finite domain constraint solver.
912 * [go-fftw](https://github.com/runningwild/go-fftw) - Go bindings for FFTW - The Fastest Fourier Transform in the West
913 * [go-fn](https://code.google.com/p/go-fn/) - Special functions that would not fit in "math" pkg
Dmitry Savintsevf8f40502015-04-24 22:04:14 +0200914 * [gographviz](https://github.com/awalterschulze/gographviz) - Graphviz DOT language parser for Go
Scott Pakin1782c772015-07-31 11:26:50 -0600915 * [go-gt](https://code.google.com/p/go-gt/) - Graph theory algorithms
916 * [go-humanize](https://github.com/dustin/go-humanize) - Formatting numbers for humans.
Simon Waldherr42d23f92015-08-15 17:07:42 +0200917 * [golibs/xmath](https://github.com/SimonWaldherr/golibs/tree/master/xmath) - a collection of math functions (mostly mean algorithms)
Scott Pakin1782c772015-07-31 11:26:50 -0600918 * [go-lm](https://github.com/awblocker/go-lm) - Linear models in Go. Provides WLS and regression with t residuals via a cgo -> BLAS/LAPACK interface.
919 * [go.mahalanobis](https://github.com/ant0ine/go.mahalanobis) - Naive implementation of the Mahalanobis distance using go.matrix
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100920 * [gomat](http://code.google.com/p/gomat/) - lightweight FAST matrix and vector math
Scott Pakin1782c772015-07-31 11:26:50 -0600921 * [go\_matrix\_cuda](https://godoc.org/github.com/alonsovidales/go_matrix_cuda) - GPU-Accelerated Linear Algebra Libraries based in CUDA
922 * [go.matrix](https://github.com/skelterjohn/go.matrix) - a linear algebra package
Sebastien Binet42efe4c2016-06-09 14:05:55 +0200923 * [gonum](https://github.com/gonum) - Scientific packages (linear algebra, BLAS, LAPACK, differentiation, plots, linear programming, statistics, ...)
Scott Pakin1782c772015-07-31 11:26:50 -0600924 * [go-symexpr](https://github.com/verdverm/go-symexpr) - Symbolic math as an AST with derivatives, simplification, and non-linear regression
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100925 * [gsl](https://bitbucket.org/mingzhi/gsl) - GNU Scientific Library bindings
cznicc957f232015-06-08 21:46:54 +0200926 * [interval](http://godoc.org/github.com/cznic/interval) - Package interval handles sets of ordered values laying between two, possibly infinite, bounds.
927 * [mathutil](http://godoc.org/github.com/cznic/mathutil) - Package mathutil provides utilities supplementing the standard 'math' and 'rand' packages.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100928 * [mt19937\_64](https://github.com/farces/mt19937_64) - Mersenne Twister int64 random source
929 * [polyclip.go](https://github.com/akavel/polyclip.go) - Go implementation of algorithm for Boolean operations on 2D polygons
Filippo Tampiericaac56b2015-08-19 13:06:04 -0400930 * [primes](https://github.com/fxtlabs/primes) - Simple functionality for working with prime numbers.
Kaveh Mousavi Zamaniafbbb252016-02-20 13:46:19 +0800931 * [prime](https://github.com/kavehmz/prime) - Go version of Segmented Sieve and non Segmented sieve to produce prime numbers
CRGreathouse099b31c2016-03-17 14:44:28 -0400932 * [primegen.go](https://github.com/jbarham/primegen.go) - Sieve of Atkin prime number generator
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100933 * [pso-go](https://github.com/tenntenn/pso-go) - A library of PSO (Particle Swarm Optimization) for Go.
934 * [rand](https://bitbucket.org/MaVo159/rand) - 64-bit version of the math/rand package with Mersenne twister support.
Jason Buberelcffa57a2015-08-23 15:55:01 -0700935 * [roger](https://github.com/senseyeio/roger) - A Go client for the RServer, allowing you to invoke R programs from Go.
Montana Flynne5ef2cd2015-10-15 12:56:55 -0700936 * [stats](https://github.com/montanaflynn/stats) - A statistics package with common functions missing from the Golang standard library.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100937 * [statistics](https://github.com/grd/stat) - GNU GSL Statistics (GPLv3)
Jason Bubereldb39fb92015-08-23 14:59:44 -0700938 * [Tideland golib](https://github.com/tideland/golib) - Numerics package for statistcal analysis
Scott Pakin1782c772015-07-31 11:26:50 -0600939 * [Units](https://github.com/smyrman/units) - Implements types, units, converter functions and some mathematics for some common physical types. lib
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100940 * [vector](https://github.com/proxypoke/vector) - A small vector lib.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100941
Jason Buberel4130ec42015-09-13 08:10:37 -0700942## Microservices
943
944 * [gokit](https://github.com/go-kit/kit) - The Go Kit microservice framework (and [author interview](http://www.infoq.com/news/2015/09/microservices-with-go-kit)).
Jason Buberel48d750c2015-11-21 09:49:25 -0800945 * [go-micro](https://github.com/micro/go-micro) - Go Micro is a microservices library which provides the fundamental building blocks for writing fault tolerant distributed systems at scale.
Jason Buberel576b3da2015-09-13 18:27:54 -0700946 * [kite](https://github.com/koding/kite) - RPC server and client framework.
Jason Buberel4130ec42015-09-13 08:10:37 -0700947
Scott Pakin1782c772015-07-31 11:26:50 -0600948## Miscellaneous
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100949
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100950 * [atexit](https://bitbucket.org/tebeka/atexit) - Simple atexit library
Dmitry Savintsevf8f40502015-04-24 22:04:14 +0200951 * [bíogo](https://github.com/biogo/biogo) - Basic bioinformatics functions for the Go language.
Scott Pakin1782c772015-07-31 11:26:50 -0600952 * [Breaker](https://github.com/matttproud/golang_circuitbreaker) - Breaker enables graceful degraded mode operations by means of wrapping unreliable interservice interface points with circuit breaker primitives.
953 * [btcrpcclient](https://github.com/btcsuite/btcrpcclient) - A Websocket-enabled Bitcoin JSON-RPC client.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100954 * [cast](https://github.com/spf13/cast) - Safe and easy casting from one type to another in Go
Scott Pakin1782c772015-07-31 11:26:50 -0600955 * [CGRates](https://github.com/rif/cgrates) - Rating system designed to be used in telecom carriers world
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100956 * [cpu](https://github.com/jpoirier/cpu) - A Go package that reports processor topology
957 * [cron](https://github.com/robfig/cron) - A library for running jobs (funcs) on a cron-formatted schedule
Scott Pakin1782c772015-07-31 11:26:50 -0600958 * [daemonigo](https://github.com/tyranron/daemonigo) - A simple library to daemonize Go applications.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100959 * [dbus-go](http://code.google.com/p/dbus-go/) - D-Bus Go library
960 * [desktop](https://bitbucket.org/tebeka/desktop) - Open file/uri with default application (cross platform)
961 * [devboard](https://launchpad.net/devboard) - Kanban board application based on Simple-Khanban
Jannick Fahlbusch8de90032016-01-24 21:59:31 +0100962 * [dioder-api](https://github.com/piLights/Dioder-API) - An API to IKEA dioder LED-strips
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100963 * [dump](http://code.google.com/p/golang/source/browse/src/pkg/dump/) - An utility that dumps Go variables, similar to PHP's var\_dump
964 * [env](https://github.com/darkhelmet/env) - Easily pull environment variables with defaults
965 * [epub](https://gitorious.org/go-pkg/epub) - Bindings for libepub to read epub content.
Scott Pakin1782c772015-07-31 11:26:50 -0600966 * [EventBus](https://github.com/asaskevich/EventBus) - Lightweight event bus with async compatibility for Go .
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100967 * [faker](https://github.com/manveru/faker) - Generate fake data, names, text, addresses, etc.
968 * [fsnotify](https://github.com/howeyc/fsnotify) - File system notifications for Go
969 * [functional](https://github.com/tcard/functional) - Functional programming library including a lazy list implementation and some of the most usual functions.
Scott Pakin1782c772015-07-31 11:26:50 -0600970 * [GCSE](http://go-search.org/) - Go code search engine. [source](https://github.com/daviddengcn/gcse)
Dean Karnbe4ae512015-11-18 08:03:05 -0500971 * [generate](https://github.com/go-playground/generate) - runs go generate recursively on a specified path or environment variable and can filter by regex.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100972 * [go-amiando](https://github.com/ungerik/go-amiando) - Wrapper for the Amiando event management API
973 * [go-bit](http://code.google.com/p/go-bit/) - An efficient and comprehensive bitset implementation with utility bit functions.
Chih-Min Chaofceb7222015-02-23 22:50:12 +0800974 * [go-bitops](https://github.com/cmchao/go-bitops) - common bit operations for 32/64 bit integer
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100975 * [go-business-creditcard](https://github.com/dsparling/go-business-creditcard) - Validate/generate credit card checksums/names.
976 * [gochem](http://github.com/rmera/gochem) - A computational chemistry/biochemistry library.
Scott Pakin1782c772015-07-31 11:26:50 -0600977 * [gocsv](http://code.google.com/p/gocsv) - Library for CSV parsing and emitting
978 * [go.dbus](https://github.com/guelfey/go.dbus) - Native Go library for D-Bus
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100979 * [go-ean](https://github.com/nicholassm/go-ean) - A minimal utility library for validating EAN-8 and EAN-13 and calculating checksums.
980 * [go-eco](https://code.google.com/p/go-eco/) - Functions for use in ecology
981 * [go-erx](https://github.com/StepLg/go-erx) - Extended error reporting library
Scott Pakin1782c772015-07-31 11:26:50 -0600982 * [go-eventsocket](https://github.com/fiorix/go-eventsocket) - An event socket client/server library for the [FreeSWITCH](https://freeswitch.org) telephony platform.
983 * [GoFakeIt](http://godoc.org/github.com/brianvoe/gofakeit) - Fake Data Generator. 65+ different variations and examples for each
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100984 * [go-fann](https://github.com/white-pony/go-fann) - Go bindings for FANN, library for artificial neural networks
Scott Pakin1782c772015-07-31 11:26:50 -0600985 * [GoFlow](https://github.com/trustmaster/goflow) - Flow-based and dataflow programming library for Go
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100986 * [goga](https://github.com/rrs/goga) - A genetic algorithm framework
987 * [gogobject](https://github.com/nsf/gogobject) - GObject-introspection based bindings generator
Scott Pakin1782c772015-07-31 11:26:50 -0600988 * [go-idn](http://code.google.com/p/go-idn/) - a project to bring IDN support to Go, feature compatible with libidn
989 * [GoLCS](https://github.com/makokaka/goalgo/tree/master/algo) - Solve Longest Common Sequence problem in go
Simon Waldherr42d23f92015-08-15 17:07:42 +0200990 * [golibs/as](https://github.com/SimonWaldherr/golibs/tree/master/as) - Converting data types
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100991 * [golife](https://github.com/r2p2/golife) - Implementation of Game of Life for command line
992 * [go-magic](https://code.google.com/p/go-magic/) - A Go wrapper for libmagic
993 * [go-magic](https://github.com/kwilczynski/go-magic) - Simple interface to libmagic for Go Programming Language
Scott Pakin1782c772015-07-31 11:26:50 -0600994 * [go-metrics](https://github.com/rcrowley/go-metrics) - Go port of Coda Hale's Metrics library
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100995 * [gommap](https://launchpad.net/gommap) - gommap enables Go programs to directly work with memory mapped files and devices in a very efficient way
Scott Pakin1782c772015-07-31 11:26:50 -0600996 * [gomusicbrainz](https://github.com/michiwend/gomusicbrainz) - MusicBrainz WS2 client library
Andrew Gerrand5bc444d2014-12-10 11:35:11 +1100997 * [goneuro](https://github.com/jbrukh/goneuro) - Go driver for NeuroSky devices.
Scott Pakin1782c772015-07-31 11:26:50 -0600998 * [goNI488](https://github.com/jpoirier/goNI488) - A Go wrapper around National Instruments NI488.2 General Purpose Interface Bus (GPIB) driver.
999 * [go-osx-plist](https://github.com/kballard/go-osx-plist) - CoreFoundation Property List support for Go
1000 * [go-papi](https://github.com/losalamos/go-papi) - Go interface to the PAPI performance API
1001 * [go.pcsclite](https://github.com/ebfe/go.pcsclite) - Go wrapper for pcsc-lite
1002 * [Go-PhysicsFS](https://github.com/DeedleFake/Go-PhysicsFS) - Go bindings for the PhysicsFS archive-access abstraction library.
1003 * [go.pipeline](https://github.com/songgao/go.pipeline) - Library that emulates Unix pipelines
1004 * [go-pkg-mpd](https://github.com/jteeuwen/go-pkg-mpd) - A library to access the MPD music daemon
1005 * [go-pkg-xmlx](https://github.com/jteeuwen/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
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001006 * [goplan9](http://code.google.com/p/goplan9/) - libraries for interacting with Plan 9
Scott Pakin1782c772015-07-31 11:26:50 -06001007 * [goPromise](https://github.com/anschelsc/goPromise/) - Scheme-like delayed evaluation for Go
1008 * [go-qrand](https://github.com/salviati/go-qrand) - Go client for quantum random bit generator service at random.irb.hr
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001009 * [goraphing](http://code.google.com/p/goraphing/) - A tool to generate a simple graph data structures from JSON data files
Scott Pakin1782c772015-07-31 11:26:50 -06001010 * [go-selenium](https://github.com/sourcegraph/go-selenium) - Selenium WebDriver client for Go
1011 * [go-semvar](http://code.google.com/p/go-semver/) - Semantic versions (see http:/semver.org)
1012 * [go-serial](https://github.com/mikepb/go-serial) - Go binding to libserialport for serial port functionality (cgo).
Scott Pakin1782c772015-07-31 11:26:50 -06001013 * [goST](https://bitbucket.org/pseudomind/gost) - A steam properties (steam table) library written for Go. This was designed as a native go equivalent to XSteam.
Scott Pakin1782c772015-07-31 11:26:50 -06001014 * [go-taskstats](https://github.com/salviati/go-taskstats) - Go interface for Linux taskstats
1015 * [gotenv](https://github.com/subosito/gotenv) - Loads environment variables from ` .env ` file
1016 * [Gotgo](https://github.com/droundy/gotgo) - A Go preprocessor that provides an implementation of generics
1017 * [go-translate](https://github.com/mattn/go-translate) - Google Language Translate library
1018 * [go-uuid](https://code.google.com/p/go-uuid/) - Universal Unique IDentifier generator and parser
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001019 * [gouuid](https://github.com/nu7hatch/gouuid) - Pure Go UUID v3, 4 and 5 generator compatible with RFC4122
Scott Pakin1782c772015-07-31 11:26:50 -06001020 * [go-villa](https://github.com/daviddengcn/go-villa) - Some miscellaneous wrapper and small algorithms.(wrappers to slices, priority queues, path related apis, a string set type)
1021 * [Hranoprovod](https://github.com/aquilax/hranoprovod-go) - Command-line calorie tracking
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001022 * [lineup](https://github.com/jdp/lineup) - A minimalistic message queue server
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001023 * [mitigation](https://github.com/sarnowski/mitigation) - Package mitigation provides the possibility to prevent damage caused by bugs or exploits.
1024 * [nma.go](https://github.com/dustin/nma.go) - A NotifyMyAndroid client for go.
Pawel Knapc6b24ec2015-03-23 21:25:54 +01001025 * [notify](https://github.com/rjeczalik/notify) - File system event notification library with API similar to os/signal.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001026 * [passwd](https://github.com/willdonnelly/passwd) - A parser for the /etc/passwd file
1027 * [pool](https://github.com/stefantalpalaru/pool) - A generic worker pool
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001028 * [procfile](https://github.com/hecticjeff/procfile) - A Procfile parser
Scott Pakin1782c772015-07-31 11:26:50 -06001029 * [Prometheus Instrumentation/Metrics Client](https://github.com/prometheus/client_golang) - 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.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001030 * [randat](https://github.com/extemporalgenome/randat) - Devel tool for generating random bytestrings and encoding files in code-friendly forms
Tim Hendersonccc7dd62015-09-03 17:22:25 -04001031 * [recycler](https://github.com/timtadh/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.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001032 * [replaykit](https://github.com/dustin/replaykit) - A library for replaying time series data.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001033 * [serial](https://github.com/ziutek/serial) - Serial ports API (pure Go)
1034 * [sio](https://github.com/schleibinger/sio) - Package sio lets you access old serial junk. It's a go-gettable fork and modification of dustin's rs232 package.
Dean Karnbe4ae512015-11-18 08:03:05 -05001035 * [stats](https://github.com/go-playground/stats) - Monitors Go MemStats + System stats such as Memory, Swap and CPU and sends via UDP anywhere you want for logging etc...
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001036 * [symutils](https://github.com/salviati/symutils) - Various tools and libraries to handle symbolic links
Scott Pakin1782c772015-07-31 11:26:50 -06001037 * [twitterfetcher](https://bitbucket.org/georgebaev/twitterfetcher) - A tool to make Twitter API requests using the [Application-only authentication](https://dev.twitter.com/docs/auth/application-only-auth)
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001038 * [udis86](https://github.com/jroimartin/udis86) - Go bindings for libudis86
Alexey Derbyshev9dce3982016-03-07 13:24:56 +03001039 * [ugo](https://github.com/alxrm/ugo) - underscore.js like toolbox for Go
Scott Pakin1782c772015-07-31 11:26:50 -06001040 * [Vboxgo](https://github.com/th4t/vboxgo) - user-like access to VirtualBox VMs from Go.
1041 * [Wukong](https://github.com/huichen/wukong) - A highly extensible full-text search engine written in Go.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001042 * [xplor](http://bitbucket.org/mpl/xplor) - Files tree browser for p9p acme
1043 * [yubigo](https://github.com/GeertJohan/yubigo) - Yubikey OTP validation and auhtentication API client.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001044
1045## Music
1046
Scott Pakin1782c772015-07-31 11:26:50 -06001047 * [gmask](https://github.com/fggp/gmask) - Go adaptation of the Cmask utility for Csound
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001048 * [go-csnd6](https://github.com/fggp/go-csnd6) - Go binding to the Csound6 API
1049 * [go-csperfthread](https://github.com/fggp/go-csperfthread) - Go binding to the CsoundPerformanceThread helper class of the Csound6 API
Scott Pakin1782c772015-07-31 11:26:50 -06001050 * [go-libshout](https://github.com/systemfreund/go-libshout) - Go bindings for libshout
1051 * [gompd](http://code.google.com/p/gompd/) - A client interface for the MPD (Music Player Daemon)
1052 * [launchpad](https://github.com/rakyll/launchpad) - A Go client for Novation Launchpad
1053 * [portmidi](https://github.com/rakyll/portmidi) - Go bindings for libportmidi
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001054
1055## Networking
Scott Pakin1782c772015-07-31 11:26:50 -06001056
Charles9b60edf2016-03-28 01:22:34 -07001057### DNS
1058 * [bitz](https://github.com/nictuku/bitz) - BitMessage client node and library
1059 * [dns](https://github.com/miekg/dns) - A DNS library in Go
1060 * [dnsimple](https://github.com/pearkes/dnsimple) - an interface to the DNSimple API
1061 * [dyndnscd](https://github.com/akrennmair/dyndnscd) - a configurable dyndns client
1062 * [GeoDNS](https://github.com/abh/geodns) - geo-aware authoritative DNS server
1063 * [grong](https://github.com/bortzmeyer/grong) - Small authoritative DNS name server
1064 * [mdns](https://github.com/davecheney/mdns/) - Multicast DNS library for Go
Jay Taylor51f58892016-05-27 21:59:52 -07001065 * [hostsfile](https://github.com/jaytaylor/go-hostsfile) - /etc/hostsfile reverse lookup IP => names
Charles9b60edf2016-03-28 01:22:34 -07001066
1067### FTP
1068 * [ftp4go](http://code.google.com/p/ftp4go/) - An FTP client for Go, started as a port of the standard Python FTP client library
1069 * [ftp](https://bitbucket.org/zombiezen/ftp/) - Package ftp provides a minimal FTP client as defined in RFC 959
1070 * [ftps](https://github.com/webguerilla/ftps) - An implementation of the FTPS protocol
1071 * [goftp](https://github.com/jlaffaye/) - A FTP client library
1072
Charles8f810442016-03-28 01:13:22 -07001073### HTTP
Scott Pakin1782c772015-07-31 11:26:50 -06001074 * [apiproxy](https://sourcegraph.com/github.com/sourcegraph/apiproxy/tree) - proxy for HTTP/REST APIs with configurable cache timeouts
1075 * [boom](https://github.com/rakyll/boom) - HTTP(s) benchmarking tool, Apache Benchmark replacement
Charles8f810442016-03-28 01:13:22 -07001076 * [eventsource](https://github.com/antage/eventsource) - Server-sent events for net/http server.
1077 * [fasthttp](https://github.com/valyala/fasthttp) - Fast HTTP package for Go
1078 * [gbench](https://github.com/sasanrose/gbench) - HTTP(s) Load Testing And Benchmarking Tool inspired by Apache Benchmark and Siege.
1079 * [gobench](https://github.com/cmpxchg16/gobench) - HTTP/HTTPS load test and benchmark tool
1080 * [go-curl](https://github.com/andelf/go-curl) - libcurl bingding that supports go func callbacks
Charles9b60edf2016-03-28 01:22:34 -07001081 * [goproxy](https://github.com/elazarl/goproxy) - a programmable HTTP proxy.
Charles8f810442016-03-28 01:13:22 -07001082
1083### IMAP
1084 * [go-imap](https://github.com/martine/go-imap) - IMAP client library
1085 * [go-imap](https://github.com/mxk/go-imap) - Implementation of IMAP4rev1 client, as described in RFC 3501
1086
Charles9b60edf2016-03-28 01:22:34 -07001087### Instant Messaging
1088 * [gobir](http://code.google.com/p/kylelemons/source/browse?repo=gobir) - Extensible IRC bot with channel administration, seen support, and go documentation querying
1089 * [goexmpp](http://code.google.com/p/goexmpp/) - XMPP client implementation
1090 * [goirc](https://github.com/fluffle/goirc/) - event-based stateful IRC client framework
1091 * [go-irc](https://github.com/husio/go-irc) - Simple IRC client library
1092 * [gorobot](https://github.com/aimxhaisse/gorobot) - a modular IRC bot
1093 * [go-xmpp](https://github.com/mattn/go-xmpp) - XMPP client library
1094 * [ircflu](https://github.com/muesli/ircflu) - IRC bot with support for commands, scripting and web-hooks
1095 * [irc.go](http://code.google.com/p/go-bot/source/browse/irc.go) - Go IRC bot framework
1096 * [sirius](https://github.com/ortuman/sirius) - A fast and ultra-lightweight chat server written in Go
1097 * [xmpp-client](https://github.com/agl/xmpp-client) - an XMPP client with OTR (off-the-record) support
1098
Charles8f810442016-03-28 01:13:22 -07001099### NNTP
1100 * [go-nntp](https://github.com/dustin/go-nntp) - An NNTP client and server library for go
1101
Charles9b60edf2016-03-28 01:22:34 -07001102### Protocol Buffers
1103 * [gogoprotobuf](http://code.google.com/p/gogoprotobuf/) - another Go implementation of Protocol Buffers, but with extensions and code generation plugins.
1104 * [golang\_protobuf\_extensions](https://github.com/matttproud/golang_protobuf_extensions) - Protocol Buffer extensions to support streaming message encoding and decoding.
1105 * [goprotobuf](http://code.google.com/p/goprotobuf/) - the Go implementation of Google's Protocol Buffers
1106 * [protorpc](https://github.com/chai2010/protorpc/) - Google Protocol Buffers RPC for Go and C++
1107
Charles7f417a92016-03-28 01:28:29 -07001108### rsync
Charles9b60edf2016-03-28 01:22:34 -07001109 * [replican-sync](https://github.com/cmars/replican-sync) - An rsync algorithm implementation in Go
1110 * [Rsync](https://github.com/julian-gutierrez-o/rsync) - Rsync algorithm as a Go library
1111
Charles7f417a92016-03-28 01:28:29 -07001112### Telnet
1113 * [telnet](https://github.com/reiver/go-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.
1114 * [telnet](https://github.com/ziutek/telnet) - A simple interface for interacting with Telnet connection
1115 * [telnets](https://github.com/reiver/telnets) - A client for the TELNETS (secure TELNET) protocol.
1116
Charles8f810442016-03-28 01:13:22 -07001117### VNC
1118 * [glibvnc](https://github.com/LukeMauldin/glibvnc) - Go wrapper using CGO for the libvnc library.
1119
Charles7f417a92016-03-28 01:28:29 -07001120### Websockets
1121 * [Gorilla WebSocket](https://github.com/gorilla/websocket) - WebSocket protocol implementation
Charles796ccba2016-03-28 01:39:06 -07001122 * [websocketd](https://github.com/joewalnes/websocketd) - HTTP server that converts STDIN/STDOUT program into WebSockets service. Also handles HTML and CGI.
Charles7f417a92016-03-28 01:28:29 -07001123
1124### ZeroMQ
1125 * [goczmq](https://github.com/zeromq/goczmq) - Wrapper for the CZMQv3 interface - [blog post](http://taotetek.github.io/oldschool.systems/post/goczmq1/)
1126 * [gozmq](https://github.com/alecthomas/gozmq) - Go Bindings for 0mq (zeromq/zmq)
1127 * [zmq2](https://github.com/pebbe/zmq2) - A Go interface to ZeroMQ (zmq, 0MQ) version 2.
1128 * [zmq3](https://github.com/pebbe/zmq3) - A Go interface to ZeroMQ (zmq, 0MQ) version 3.
1129 * [zmq4](https://github.com/pebbe/zmq4) - A Go interface to ZeroMQ (zmq, 0MQ) version 4.
1130
Charles8f810442016-03-28 01:13:22 -07001131### Misc Networking
Charles796ccba2016-03-28 01:39:06 -07001132 * [betwixt](https://github.com/zubairhamed/betwixt) - Betwixt implements the OMA Lightweight M2M (LWM2M) protocol for Device Management and Monitoring
Zubair Hamedaace5dd2015-12-06 10:09:54 +08001133 * [canopus](https://github.com/zubairhamed/canopus) - CoAP Client/Server implementation (RFC 7252)
Kailash Nadhf1015272015-03-19 12:49:50 +05301134 * [chunkedreader](https://github.com/knadh/chunkedreader) - A light weight library for reading continuous fixed sized messages from TCP streams.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001135 * [circle](https://github.com/losalamos/circle/) - Go interface to the [libcircle](http://hpc.github.io/libcircle/) distributed-queue API
Scott Pakin1782c772015-07-31 11:26:50 -06001136 * [createsend-go](https://sourcegraph.com/github.com/sourcegraph/createsend-go/tree) - API client for [Monitor http://www.campaignmonitor.com](wiki/Campaign) (email campaign service)
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001137 * [dmrgo](https://github.com/dgryski/dmrgo) - Library for with Hadoop Streaming map/reduce
1138 * [doozerconfig](https://github.com/srid/doozerconfig) - Go package for managing json-encoded configuration in Doozer
1139 * [doozerd](https://github.com/ha/doozerd) - A consistent distributed data store
Florian von Bock28490df2015-04-08 11:04:54 +09001140 * [endless](https://github.com/fvbock/endless) Zero downtime restarts for go servers (Drop in replacement for http.ListenAndServe/TLS)
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001141 * [gearman-go](https://bitbucket.org/mikespook/gearman-go) - A native implementation for Gearman API with Go.
Scott Pakin1782c772015-07-31 11:26:50 -06001142 * [Glue](https://github.com/desertbit/glue) - Robust Go and Javascript Socket Library (Alternative to Socket.io)
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001143 * [goagain](https://github.com/rcrowley/goagain) - zero-downtime restarts in Go
Scott Pakin1782c772015-07-31 11:26:50 -06001144 * [Go Ajax](https://github.com/jeffreybolle/goajax) - Go Ajax is a JSON-RPC implementation designed to create AJAX powered websites.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001145 * [gobeanstalk](https://github.com/iwanbk/gobeanstalk) - Go Beanstalkd client library
eli257cad52016-05-25 20:52:35 -07001146 * [go-camo](https://github.com/cactus/go-camo) - Go http image proxy (camo clone) to route images through SSL
Scott Pakin1782c772015-07-31 11:26:50 -06001147 * [go-dbus](https://github.com/norisatir/go-dbus) - A library to connect to the D-bus messaging system
1148 * [go-diameter](https://github.com/fiorix/go-diameter) - Diameter stack and Base Protocol (RFC 6733)
Alexandre Fiori7227fec2015-09-24 10:31:42 -04001149 * [go-smpp](https://github.com/fiorix/go-smpp) - SMPP 3.4 protocol implementation
Scott Pakin1782c772015-07-31 11:26:50 -06001150 * [go-flowrate](https://github.com/mxk/go-flowrate) - Data transfer rate control (monitoring and limiting)
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001151 * [gogammu](https://github.com/ziutek/gogammu) - Library for sending and receiving SMS
Scott Pakin1782c772015-07-31 11:26:50 -06001152 * [go-icap](http://code.google.com/p/go-icap/) - ICAP (Internet Content Adaptation Protocol) server library
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001153 * [gonetbench](https://github.com/nu7hatch/gonetbench) - Simple TCP benchmarking tool
1154 * [gonetcheck](https://github.com/bjdean/gonetcheck) - package for checking general internet access
Lex T56fd0af2015-05-19 11:24:48 +10001155 * [goodhosts](https://github.com/lextoumbourou/goodhosts) - Simple hosts file (/etc/hosts) management in Go
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001156 * [gopacket](http://code.google.com/p/gopacket) - Packet encoding/decoding, pcap/pfring/afpacket support, TCP assembly, and more!
1157 * [gopcap](https://github.com/akrennmair/gopcap) - A simple wrapper around libpcap
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001158 * [goq](https://github.com/anandkunal/goq) - A persistent message queue written in Go.
1159 * [goradius](https://github.com/kirves/goradius) - A Radius client written in Go
Scott Pakin1782c772015-07-31 11:26:50 -06001160 * [go-rpcgen](https://github.com/kylelemons/go-rpcgen) - ProtoBuf RPC binding generator for net/rpc and AppEngine
1161 * [gorpc](https://github.com/valyala/gorpc) - RPC optimized for high load
1162 * [GoRTP](https://github.com/wernerd/GoRTP) - RTP / RTCP stack implementation for Go
1163 * [GoSIPs](https://github.com/rainliu/gosips) - SIP (Session Initiation Protocol) Stack in Go
Rain Liu290540e2015-09-25 11:50:18 -07001164 * [mqtt](https://github.com/rainliu/mqtt) - MQTT stack in Go
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001165 * [gosndfile](https://github.com/mkb218/gosndfile) - Go binding for libsndfile
1166 * [gosnmp](https://github.com/soniah/gosnmp) - an SNMP library written in GoLang.
Scott Pakin1782c772015-07-31 11:26:50 -06001167 * [go-socket.io](https://github.com/madari/go-socket.io) - A Socket.IO backend implementation written in Go
1168 * [gosocks](https://github.com/hailiang/gosocks) - A SOCKS (SOCKS4, SOCKS4A and SOCKS5) proxy client library in Go.
1169 * [go-sslterminator](https://github.com/cmpxchg16/go-sslterminator) - SSL terminator proxy
eli97338802016-05-25 20:43:35 -07001170 * [go-statsd-client](https://github.com/cactus/go-statsd-client) - Go statsd client library
Scott Pakin1782c772015-07-31 11:26:50 -06001171 * [Grumble](https://github.com/mkrautz/grumble) - Mumble (VoIP) server implementation
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001172 * [handlersocket-go](https://github.com/bketelsen/handlersocket-go) - Go native library to connect to HandlerSocket interface of InnoDB tables
Jason Buberel48d750c2015-11-21 09:49:25 -08001173 * [HomeControl](https://github.com/brutella/hc) - an implementation of Apple's HomeKit Accessory Protocol (HAP)
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001174 * [Hprose](https://github.com/hprose/hprose-go) - Hprose is a High Performance Remote Object Service Engine.
Scott Pakin1782c772015-07-31 11:26:50 -06001175 * [httpfstream](https://sourcegraph.com/github.com/sourcegraph/httpfstream/tree) - streaming append and follow of HTTP resources (using WebSockets)
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001176 * [ipaddress](https://github.com/llimllib/ipaddress) - Convenient ip address functions: ip -> int, int -> ip, and IPNet broadcast address
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001177 * [iris-go](https://github.com/karalabe/iris-go) - Go binding for the Iris decentralized messaging framework.
Scott Pakin1782c772015-07-31 11:26:50 -06001178 * [iris](http://iris.karalabe.com) - Peer-to-peer messaging for back-end decentralization.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001179 * [kafka.go](https://github.com/jdamick/kafka.go) - Producer & Consumer for the Kafka messaging system
Anton Skorokhodb8b8e342016-02-21 02:09:46 +01001180 * [lcvpn](https://github.com/kanocz/lcvpn) - Decentralized VPN implementation
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001181 * [ldap](https://github.com/mmitton/ldap) - Basic LDAP v3 functionality for the GO programming language.
1182 * [mbxchan](https://bitbucket.org/levarnon/mbx) - An easy communication between distributed Go applications using standard Go channels and remote procedure calls.
Scott Pakin1782c772015-07-31 11:26:50 -06001183 * [nagiosplugin](https://github.com/fractalcat/nagiosplugin) - package for writing Nagios/monitoring plugins
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001184 * [NATS](https://github.com/apcera/nats) - NATS distributed messaging system client for Go
1185 * [netsnail](https://github.com/purex01/netsnail) - A low-bandwidth simulator
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001186 * [netutils](https://github.com/timtadh/netutils) - Simple interface for turning TCP Sockets into channels.
Scott Pakin1782c772015-07-31 11:26:50 -06001187 * [npipe](https://github.com/natefinch/npipe) - a pure Go wrapper for Windows named pipes
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001188 * [opendap](https://github.com/mqu/openldap) - Go wrapper for Openldap
Scott Pakin1782c772015-07-31 11:26:50 -06001189 * [pusher-http-go](https://github.com/pusher/pusher-http-go) - Go library for interacting with the Pusher Realtime API
1190 * [QRP](https://github.com/liamzebedee/go-qrp) - QRP is a simple packet-based RPC protocol designed as a simple alternative to Go's rpc, that can run over UDP
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001191 * [remotize](https://github.com/josvazg/remotize) - A remotize package and command that helps remotizing methods without having to chaneg their signatures for rpc
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001192 * [rs232](https://github.com/dustin/rs232.go) - Serial interface for those of us who still have modems (or arduinos)
1193 * [rss](https://github.com/SlyMarbo/rss) - RSS parsing library.
1194 * [seamless](https://bitbucket.org/tebeka/seamless) - Reverse TCP Proxy with HTTP management API
Scott Pakin1782c772015-07-31 11:26:50 -06001195 * [shell2http](https://github.com/msoap/shell2http) - Executing shell commands via simple http server
1196 * [sockjs-go](https://github.com/fzzy/sockjs-go) - Implements server side counterpart for the SockJS-client browser library.
1197 * [SOCKS5 Server](https://code.google.com/p/go-socks5) - Scalable SOCKS5 server with Access Control Lists
1198 * [spark](https://github.com/rif/spark) - Emergency web server (for static files)
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001199 * [spdy](https://github.com/SlyMarbo/spdy) - SPDY library, wired into net/http, currently supporting servers only.
1200 * [statsd-go](https://github.com/jbuchbinder/statsd-go) - Statsd implementation in Go, forked from gographite, which submits to Ganglia
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001201 * [stompngo\_examples](https://github.com/gmallard/stompngo_examples) - Examples for stompngo.
Scott Pakin1782c772015-07-31 11:26:50 -06001202 * [stompngo](https://github.com/gmallard/stompngo) - A Stomp 1.1 Compliant Client
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001203 * [tcp\_fallback](https://github.com/Memset/tcp_fallback) - A TCP proxy implementing a simple fallback mechanism.
Skip Tavakkolianf2c9f3d2015-12-21 19:24:45 -08001204 * [tcpmeter](https://github.com/9nut/tcpmeter) - A TCP throughput measuring tool
Jason Buberel4130ec42015-09-13 08:10:37 -07001205 * [toxiproxy](https://github.com/shopify/toxiproxy) - Framework for simulating network conditions.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001206 * [traceroute](https://github.com/aeden/traceroute) - A traceroute implementation
Jason Buberele6ad5002015-09-25 09:10:25 -07001207 * [traefix](https://github.com/emilevauge/traefik) - Modern, reverse proxy in Go
Scott Pakin1782c772015-07-31 11:26:50 -06001208 * [Uniqush](http://uniqush.org/) - A free and open source software which provides a unified push service for server-side notification to apps on mobile devices.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001209 * [uritemplates](https://github.com/jtacoma/uritemplates) - A level 4 implementation of URI Templates (RFC 6570)
Scott Pakin1782c772015-07-31 11:26:50 -06001210 * [VDED](https://github.com/jbuchbinder/vded) - Vector Delta Engine Daemon - track deltas in ever-increasing values (written in Go)
Scott Pakin1782c772015-07-31 11:26:50 -06001211 * [zero-downtime-daemon](https://bitbucket.org/PinIdea/zero-downtime-daemon) - Configurable zero downtime daemon (Hot Update) framework for any kind of TCP,HTTP,FCGI services
1212 * [zeroupgrade](https://github.com/thcyron/zeroupgrade) - Upgrades network servers with zero downtime
Ivan Stefanov43586b92015-09-28 22:19:44 +03001213 * [cwmp-proxy](https://github.com/FeNoMeNa/cwmp-proxy) - Reverse cwmp proxy
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001214
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001215## Operating System Interfaces
1216
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001217 * [Go FUSE file system library](http://bazil.org/fuse/) - From-scratch implementation of the kernel-userspace communication protocol based on Russ Cox'.
Scott Pakin1782c772015-07-31 11:26:50 -06001218 * [Go-fuse](https://github.com/hanwen/go-fuse) - Library to write FUSE filesystems in Go
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001219 * [go-osx-xattr](https://github.com/bitcartel/go-osx-xattr) - Package xattr wraps OS X functions to manipulate the extended attributes of a file, directory and symbolic link.
syamp96523b52015-05-15 16:10:14 -07001220 * [inspect/os](https://github.com/square/inspect) - Metrics library for operating system measurements (Linux/MacOSX)
aletheia7ba81b162016-05-20 11:44:18 -07001221 * [service](https://github.com/kardianos/service) - Service will install / un-install, start / stop, and run a program as a service (daemon) on Windows/Linux and OSX.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001222
1223## Other Random Toys, Experiments and Example Code
1224
Scott Pakin1782c772015-07-31 11:26:50 -06001225 * [goconc](http://code.google.com/p/goconc/) - A collection of useful concurrency idioms and functions for Go, compiled
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001226 * [go-crazy](https://github.com/droundy/go-crazy) - An experimental source-to-source compiler for go
1227 * [go-gtk-demo](https://github.com/pebbe/go-gtk-demo) - A demonstration of how to use GTK+ with Go.
1228 * [go-hashmap](https://github.com/phf/go-hashmap) - A hash table in pure go as an experiment in Go performance
Simon Waldherrc66024d2015-08-15 17:20:46 +02001229 * [golang-examples](https://github.com/SimonWaldherr/golang-examples) - A bunch of golang examples
1230 * [GolangSortingVisualization](https://github.com/SimonWaldherr/GolangSortingVisualization) - A visualization of various sorting algorithms in Go
1231 * [golibs](https://github.com/SimonWaldherr/golibs) - A collection of tiny go packages (and also a test repo for various CI and coverage services)
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001232 * [goplay](https://github.com/timtadh/goplay) - A bunch of random small programs in Go
1233 * [lifegame-on-golang](https://github.com/horiuchi/lifegame-on-golang) - Game of Life in Go
1234 * [linear](https://github.com/tychofreeman/Linear) - Playing around with the linear algebra
cznic56324252015-09-26 09:46:22 +02001235 * [pl0](http://github.com/cznic/pl0) - PL/0 front end, compiler and VM. .
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001236 * [project euler in go](https://github.com/yyyc514/project_euler_in_go) - Solutions to Project Euler in Go also
1237 * [shadergo](https://github.com/gyuque/shadergo) - shader test using Go
1238 * [travisci-golang-example](https://github.com/atotto/travisci-golang-example) - Travis-CI example for Go
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001239
1240## P2P and File Sharing
1241
Scott Pakin1782c772015-07-31 11:26:50 -06001242 * [DHT](https://github.com/nictuku/dht) - Kademlia DHT node used by Taipei-Torrent, compatible with BitTorrent
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001243 * [ed2kcrawler](https://github.com/kevinwatt/ed2kcrawler) - eDonkey2000 link crawler
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001244 * [gop2p](https://github.com/nacmartin/gop2p) - A simple p2p app to learn Go
Jae Kwon5e41dbd2015-10-22 19:34:09 -07001245 * [go-p2p](https://github.com/tendermint/go-p2p/) - P2P module for blockchains and more
Sourabh Desai71d3ca92015-03-26 21:31:49 -05001246 * [GoTella](https://github.com/sourabhdesai/gotella/) - A Go implementation of the Gnutella Protocol
Scott Pakin1782c772015-07-31 11:26:50 -06001247 * [Taipei-Torrent](https://github.com/jackpal/Taipei-Torrent) - A BitTorrent client
Jae Kwona5711802015-10-22 19:42:39 -07001248 * [Tendermint](https://github.com/tendermint/tendermint) - P2P Byzantine-Fault-Tolerant consensus & blockchain stack
Scott Pakin1782c772015-07-31 11:26:50 -06001249 * [wgo](https://github.com/royger/wgo) - A simple BitTorrent client based in part on the Taipei-Torrent and gobit code
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001250
1251## Programming
1252
Sebastien Bineta39f1202016-06-09 14:02:04 +02001253 * [go-clang](http://github.com/go-clang) - cgo bindings to the C-API of libclang
Scott Pakin1782c772015-07-31 11:26:50 -06001254 * [godeferred](https://github.com/mattn/godeferred) - port of jsdeferred: http://cho45.stfuawsc.com/jsdeferred/
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001255 * [go-galib](https://github.com/thoj/go-galib) - a library of Genetic Algorithms
1256 * [go-intset](https://github.com/phf/go-intset) - a library to work with bounded sets of integers, including multiple alternative implementations
1257 * [go-parse](https://github.com/vito/go-parse) - a Parsec-like parsing library
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001258 * [Shuffle](https://github.com/earthboundkid/shuffle) - Implementation of the Fisher–Yates shuffle (or Knuth shuffle) in Go.
1259
Dean Karnbe4ae512015-11-18 08:03:05 -05001260## Resource Embedding
UnnoTed829225a2016-02-29 21:43:00 -03001261 * [fileb0x](https://github.com/UnnoTed/fileb0x) - Simple tool to embed files in go with focus on "customization" and ease to use.
Dean Karnbe4ae512015-11-18 08:03:05 -05001262 * [go-bindata](https://github.com/jteeuwen/go-bindata) - Package that converts any file into managable Go source code.
1263 * [go-resources](https://github.com/omeid/go-resources) - Unfancy resources embedding with Go.
1264 * [go.rice](https://github.com/GeertJohan/go.rice) - go.rice is a Go package that makes working with resources such as html,js,css,images and templates very easy.
1265 * [statics](https://github.com/go-playground/statics) - Embeds static resources into go files for single binary compilation + works with http.FileSystem + symlinks.
Dean Karnbe4ae512015-11-18 08:03:05 -05001266
Jason Buberel2de0e662015-09-19 11:22:42 -07001267## RPC
1268
1269 * [gowsdl](https://github.com/hooklift/gowsdl) - WSDL code generation
1270 * [gRPC](https://grpc.io) - Google's multi-language RPC framework with Go support
1271
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001272## Scanner and Parser Generators
1273
1274 * [ebnf2y](http://github.com/cznic/ebnf2y) - Utility for converting EBNF grammars into yacc compatible skeleton .y files.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001275 * [gocc](http://code.google.com/p/gocc/) - Go Compiler Compiler
1276 * [golex](http://github.com/cznic/golex) - Lex/flex like fast (DFA) scanners generator.
1277 * [gopp](http://github.com/skelterjohn/gopp) - Go Parser Parser
1278 * [goyacc](http://github.com/cznic/goyacc) - Goyacc is a version of yacc generating Go parsers.
cznicc4025d22015-02-18 11:38:41 +01001279 * [y](http://github.com/cznic/y) - Package y converts .y (yacc) source files to data suitable for a parser generator.
cznic648d5952015-09-26 09:43:57 +02001280 * [yy](http://github.com/cznic/yy) - yacc to yacc compiler.
Tim Hendersonf6dbfdc2016-05-27 14:39:46 -04001281 * [flexgo](https://github.com/pebbe/flexgo) - A version of flex that can produce Go code.
1282 * [fsm](http://github.com/cznic/fsm) - FSM (NFA, DFA) utilities.
1283 * [Ragel](http://www.complang.org/ragel/) - State Machine Compiler
1284 * [lexmachine](https://github.com/timtadh/lexmachine) - Lexical Analysis Framework for Golang
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001285
Jason Buberel1aa7ad92015-09-06 13:10:45 -07001286## Security
Dmitry Savintsev5f7b8882015-02-25 10:41:26 +01001287
Jason Buberela4ed2ad2015-12-06 11:28:15 -08001288 * [acme](https://github.com/hlandau/acme) - ACME certificate acquisition tool
Jason Buberel44b4ce62015-09-24 16:26:41 -07001289 * [gryffin](https://github.com/yahoo/gryffin) - A large scale security scanner by Yahoo!
Dmitry Savintsev16451a72015-02-25 11:26:02 +01001290 * [hyperfox](https://github.com/xiam/hyperfox) - a security tool for proxying and recording HTTP and HTTPs communications on a LAN
Jason Buberela4ed2ad2015-12-06 11:28:15 -08001291 * [lego](https://github.com/xenolf/lego) - Let's Encrypt client and ACME library
Dmitry Savintsev16451a72015-02-25 11:26:02 +01001292 * [webseclab](https://github.com/yahoo/webseclab) - a sample set of web security test cases and a toolkit to construct new ones
Dmitry Savintsev5f7b8882015-02-25 10:41:26 +01001293
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001294## Simulation Modeling
1295
1296 * [godes](https://github.com/agoussia/godes) - Library for building discrete event simulation models
1297
1298## Sorting
1299
1300 * [funnelsort](https://github.com/eikeon/funnelsort) - Lazy funnel sort -- a cache-oblivious sorting algorithm
1301 * [Sortutil](http://patrickmylund.com/projects/sortutil/) - Nested, case-insensitive, and reverse sorting for Go.
1302 * [sortutil](https://github.com/cznic/sortutil) - Utilities supplemental to the Go standard "sort" package
1303 * [tarjan](http://github.com/looplab/tarjan) - Graph loop detection function based on Tarjan's algorithm
1304 * [timsort](https://github.com/psilva261/timsort) - Fast, stable sort, uses external comparator or sort.Interface
1305
1306## Source Code Management
1307
1308 * [go-deps](https://github.com/sourcegraph/go-deps) - Analyzes and recursively installs Go package deps (library functionality similar to ` go get `)
Scott Pakin1782c772015-07-31 11:26:50 -06001309 * [go-diff](https://github.com/daviddengcn/go-diff) - A diff command for go languange showing semantic differences of two go source files.
1310 * [gogitver](https://github.com/aletheia7/gogitver) - Embeds a git tag (version string) into your application
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001311 * [go-pkgs](https://github.com/sourcegraph/go-pkgs) - Finds all matching packages in all of the GOPATH trees (library functionality similar to ` go list all `)
Scott Pakin1782c772015-07-31 11:26:50 -06001312 * [go-vcs](https://github.com/sourcegraph/go-vcs) - clone and check out revs of VCS repositories (git and hg support)
1313 * [go-vcsurl](https://github.com/sourcegraph/go-vcsurl) - Lenient VCS repository URL parsing library
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001314 * [hggofmt](http://bitbucket.org/ede/hggofmt/) - A Mercurial/hg extension with a hook to
1315 * [nut](https://github.com/AlekSi/nut) - Nut is a tool to manage versioned Go source code packages, called "nuts".
1316 * [vcstool](https://github.com/wjwwood/vcstool) - VCS abstraction tool
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001317
koolhead17376b5be2016-02-29 15:44:44 +05301318## Storage
1319
1320 * [Minio](https://minio.io/) - Object Storage compatible with Amazon S3 API
1321
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001322## Strings and Text
1323
Scott Pakinc5c48c72015-07-31 11:30:06 -06001324 * [awk](https://github.com/spakin/awk) - Easy AWK-style text processing in Go
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001325 * [binarydist](https://github.com/kr/binarydist/) - Binary diff and patch
Scott Pakin1782c772015-07-31 11:26:50 -06001326 * [Black Friday](https://github.com/russross/blackfriday) - A markdown processor
Jonathan Gautheronf5e5d0c2015-08-21 12:16:43 +02001327 * [codename-generator](https://github.com/jgautheron/codename-generator) - A codename generator meant for naming software releases
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001328 * [columnize](https://code.google.com/p/go-columnize/) - format slice or array into aligned columns
1329 * [csvutil](https://github.com/bmatsuo/csvutil) - A heavy duty CSV reading and writing library.
1330 * [dgohash](https://github.com/dgryski/dgohash) - Collection of string hashing functions, including Murmur3 and others
Aymerick5581a2e2015-06-15 11:51:11 +02001331 * [douceur](https://github.com/aymerick/douceur) - A simple CSS parser and inliner in Go.
Mhd Sulhan46a7ee72015-10-05 01:54:19 +07001332 * [dsv](https://github.com/shuLhan/dsv) - A library for working with delimited separated value (DSV).
Scott Pakin1782c772015-07-31 11:26:50 -06001333 * [flux](https://github.com/alexanderbartels/flux) - Fluent Regular Expressions in golang
1334 * [genex](https://github.com/alixaxel/genex) - Expansion of Regular Expressions
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001335 * [gettext-go](https://github.com/chai2010/gettext-go/) - GNU's gettext support, written in pure Go
Scott Pakin1782c772015-07-31 11:26:50 -06001336 * [gettext](https://github.com/gosexy/gettext) - Golang bindings for gettext; Feature complete, cgo
1337 * [go-colortext](https://github.com/daviddengcn/go-colortext) - Change the color of the text and background in the console, working both in Windows and other systems.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001338 * [go-guess](https://github.com/salviati/go-guess) - Go wrapper for libguess
Zacka905d532016-04-04 07:19:03 -04001339 * [goagrep](https://github.com/schollz/goagrep) - fast fuzzy string matching using precomputation
Jay Taylorc79137e2015-04-07 13:34:48 -07001340 * [goini](https://github.com/glacjay/goini) - A go library to parse INI files
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001341 * [golorem](https://github.com/drhodes/golorem) - lorem ipsum generator
Scott Pakin1782c772015-07-31 11:26:50 -06001342 * [go-migemo](https://github.com/mattn/go-migemo) - migemo extension for go (Japanese incremental text search)
1343 * [go-ngram](https://github.com/Lazin/go-ngram) N-gram index for Go
Zach Klippensteinf05046a2015-01-08 21:48:08 -08001344 * [goregen](https://github.com/zach-klippenstein/goregen) - A Go library for generating random strings from regular expressions.
Scott Pakin1782c772015-07-31 11:26:50 -06001345 * [goskirt](https://github.com/madari/goskirt) - Upskirt markdown library bindings for Go
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001346 * [gosphinx](https://github.com/kpumuk/gosphinx) - A Go client interface to the Sphinx standalone full-text search engine
Scott Pakin1782c772015-07-31 11:26:50 -06001347 * [govalidator](https://github.com/asaskevich/govalidator) - Package of string validators and sanitizers
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001348 * [gpKMP](https://github.com/paddie/goKMP) - String-matching in Go using the Knuth–Morris–Pratt algorithm
Jay Taylorc79137e2015-04-07 13:34:48 -07001349 * [hangul](https://github.com/suapapa/go_hangul) - Handy tools to manipulate Korean character
Jay Taylord6926072015-04-07 13:36:52 -07001350 * [html2text](https://github.com/jaytaylor/html2text) - Golang HTML to text conversion library
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001351 * [kasia.go](https://github.com/ziutek/kasia.go) - Templating system for HTML and other text documents
1352 * [kview](https://github.com/ziutek/kview) - Simple wrapper for kasia.go templates. It helps to modularize content of a website
Scott Pakin1782c772015-07-31 11:26:50 -06001353 * [logparse](https://github.com/xojoc/logparse) - Parser for most common log formats
Scott Pakin1782c772015-07-31 11:26:50 -06001354 * [NTemplate](https://github.com/yohcop/ntemplate.go) - Nested Templates
rymis8d927752016-02-09 12:52:54 +03001355 * [parse](https://github.com/rymis/parse) - PEG parser that uses reflection to define grammar
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001356 * [peg](https://github.com/badgerodon/peg) - Parsing Expression Grammer Parser
Rick Beton9c3371b2016-04-13 10:43:02 +01001357 * [plural](https://github.com/rickb777/plural) - No-fuss plurals for formatting both countable and continuous ranges of values.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001358 * [polyglot](https://github.com/lxn/polyglot) - String translation utilities for Go
1359 * [pretty.go](https://github.com/kr/pretty.go) - Pretty-printing for go values
Aymerick3291fc02015-06-15 11:49:12 +02001360 * [raymond](https://github.com/aymerick/raymond) - A complete handlebars implementation in Go.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001361 * [rubex](https://github.com/moovweb/rubex) - A simple regular expression library that supports Ruby's regex syntax. It is faster than Regexp.
Jason Buberel6e44ada2015-09-21 18:00:26 -07001362 * [sanitize](https://github.com/kennygrant/sanitize) - Package sanitize provides functions for sanitizing html and text.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001363 * [scanner](http://code.google.com/p/golang/source/browse/src/pkg/scanner) - A text scanner that parses primitive types, analogous to Java's
1364 * [segment](https://github.com/llimllib/segment) - An implementation of Norvig's recursive word segmentation algorithm
Jason Buberel1fecbe82015-09-15 08:59:59 -07001365 * [sprig](https://github.com/Masterminds/sprig) - Template functions for Go templates.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001366 * [strftime](https://bitbucket.org/tebeka/strftime) - strftime implementation
Scott Pakin1782c772015-07-31 11:26:50 -06001367 * [strogonoff](https://github.com/jbochi/strogonoff) - Stenography with Go
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001368 * [strutil](https://github.com/cznic/strutil) - Package strutil collects utils supplemental to the standard strings package.
1369 * [text](https://github.com/kr/text) - Text paragraph wrapping and formatting
Jason Bubereldb39fb92015-08-23 14:59:44 -07001370 * [Tideland golib](https://github.com/tideland/golib) - Stringex package for statistcal analysis
xojoce8a92f32015-02-24 01:08:20 +01001371 * [useragent](https://github.com/xojoc/useragent) - User agent string parser
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001372
1373## Testing
1374
Dean Karn0e92d962015-09-24 08:11:06 -04001375 * [assert](https://github.com/go-playground/assert) - Basic Assertion Library used along side native go testing, with building blocks for custom assertions
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001376 * [assert](https://github.com/chai2010/assert) - Assert for go test.
Scott Pakin1782c772015-07-31 11:26:50 -06001377 * [assert](https://github.com/golangplus/testing/tree/master/assert) - Handy assert package.
seanpont68662222014-12-14 19:58:15 -08001378 * [assert](https://github.com/seanpont/assert) - JUnit-like asserts with excellent error messages
Scott Pakin1782c772015-07-31 11:26:50 -06001379 * [counterfeiter](https://github.com/maxbrunsfeld/counterfeiter) - Tool for generating self-contained and type-safe mocks.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001380 * [downtest](https://github.com/jmcvetta/downtest) - Automatically run tests for all known downstream consumers of a Go package.
Scott Pakin1782c772015-07-31 11:26:50 -06001381 * [ginkgo](https://github.com/onsi/ginkgo) - BDD Testing Framework for Go.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001382 * [go2xunit](https://bitbucket.org/tebeka/go2xunit) - Convert "go test -v" output to xunit XML output
Scott Pakin1782c772015-07-31 11:26:50 -06001383 * [go-assert](http://github.com/daviddengcn/go-assert) - Testing utils for Go.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001384 * [goautotest](https://github.com/ryanslade/goautotest) - Automatically run unit tests when code changes are made
Michael Whatcott57b284a2015-02-26 23:41:51 -07001385 * [goblin](https://github.com/franela/goblin) - Minimal and Beautiful Go testing framework
Scott Pakin1782c772015-07-31 11:26:50 -06001386 * [Gocheck](http://labix.org/gocheck) - Rich test framework with suites, fixtures, assertions, good error reporting, etc
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001387 * [GoConvey](http://goconvey.co) - Browser-based reporting, uses ` go test `, supports traditional Go tests, clean DSL
1388 * [gocov](https://github.com/axw/gocov) - Code coverage testing/analysis tool
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001389 * [gomega](https://github.com/onsi/gomega) - Ginkgo's Preferred Matcher Library.
1390 * [gomock](http://code.google.com/p/gomock/) - a mocking framework for Go.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001391 * [GoSpec](https://github.com/orfjackal/gospec) - a BDD framework
1392 * [gospecify](https://github.com/stesla/gospecify) - another BDD framework
1393 * [go-stat](https://github.com/mreiferson/go-stat) - performant instrumentation/profiling for Go
1394 * [go-tap](https://github.com/Merovius/go-tap) - TAP (Test Anything Protocol) parser in Go
Michael Whatcott25f04592015-02-26 23:40:14 -07001395 * [gounit](https://github.com/mdwhatcott/gounit) - xunit for Go
cznicc4025d22015-02-18 11:38:41 +01001396 * [GSpec](https://github.com/hailiang/gspec) - _Expressive, reliable, concurrent and extensible_ Go test framework that makes it productive to organize and verify the mind model of software.
Victor Gaydov38f15312016-06-30 10:50:33 +04001397 * [httpexpect](https://github.com/gavv/httpexpect) - Concise, declarative, and easy to use end-to-end HTTP and REST API testing
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001398 * [Nitro](https://github.com/spf13/nitro) - A quick and simple profiler For Go
Eric Duncana78e4262016-06-11 22:11:49 -04001399 * [mspec](https://github.com/eduncan911/mspec) - BDD framework that frees you to Stub and Spec your code first with natural BDD language.
Jason Buberel6e44ada2015-09-21 18:00:26 -07001400 * [muxy](https://github.com/mefellows/muxy) - Simulating real-world distributed system failures.
Peter Götza3385a82016-01-18 00:45:06 +01001401 * [Pegomock](https://github.com/petergtz/pegomock) - a mocking framework based on [golang/mock](https://github.com/golang/mock), but uses a DSL closely related to [Mockito](http://site.mockito.org/mockito/docs/current/org/mockito/Mockito.html).
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001402 * [terst](https://github.com/robertkrimen/terst) - A terse, easy-to-use testing library for Go
Scott Pakin1782c772015-07-31 11:26:50 -06001403 * [test2doc](https://code.google.com/p/test2doc/) - Generate documentation for your go units from your unit tests.
Andrey Nering06380942016-03-24 08:07:44 -03001404 * [testfixtures](https://github.com/go-testfixtures/testfixtures) - Rails' like test fixtures for testing database driven apps.
Scott Pakin1782c772015-07-31 11:26:50 -06001405 * [testflight](https://github.com/drewolson/testflight) - Painless http testing in Go
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001406 * [Testify](https://github.com/stretchrcom/testify) - A set of packages that provide many tools for testifying that your code will behave as you intend.
Phil Pearl0ea7b5b2015-06-04 16:14:33 +01001407 * [ut](https://github.com/philpearl/ut) - Awesome mocks without magic.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001408
Dean Karna32a7fd2015-07-21 21:28:12 -04001409## Validation
1410
Dean Karn0e92d962015-09-24 08:11:06 -04001411 * [validator](https://github.com/go-playground/validator) - Go Struct and Field validation, including Cross Field, Cross Struct, Map, Slice and Array diving
Dean Karna32a7fd2015-07-21 21:28:12 -04001412
Jason Buberel2de0e662015-09-19 11:22:42 -07001413## Version Control
1414
1415 * [git (in go)](https://github.com/dskinner/git) - Minimal working git client in Go
1416 * [gogs](http://gogs.io/) - Self-hosting Git Server in Go
Jason Buberela4ed2ad2015-12-06 11:28:15 -08001417 * [semver](https://github.com/blang/semver) - Semantic Versioning (SemVer) library
Jason Buberel2de0e662015-09-19 11:22:42 -07001418
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001419## Virtual Machines and Languages
1420
Kirill Zhuhareve4f4f432015-07-20 14:14:51 +03001421 * [agora](https://github.com/PuerkitoBio/agora) - A dynamically typed, garbage collected, embeddable programming language built with Go
1422 * [anko](https://github.com/mattn/anko) - Scriptable interpreter written in golang
1423 * [forego](https://github.com/unixdj/forego) - Forth virtual machine
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001424 * [Gelo](http://code.google.com/p/gelo/) - Extensible, embeddable interpreter
Kirill Zhuhareve4f4f432015-07-20 14:14:51 +03001425 * [GoEmPHP](https://github.com/mikespook/goemphp) - This package is built for Embedding PHP into Go
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001426 * [goenv](https://github.com/smyrman/goenv) - Create an isolated environment where you install Go packages, binaries, or even C libraries. Very similar to virtualenv for Python.
Scott Pakin1782c772015-07-31 11:26:50 -06001427 * [GoForth](https://github.com/ArtemTitoulenko/GoForth) - A simple Forth parser
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001428 * [golemon](https://github.com/nsf/golemon) - A port of the Lemon parser-generator
Scott Pakin1782c772015-07-31 11:26:50 -06001429 * [GoLightly](https://github.com/feyeleanor/GoLightly) - A flexible and lightweight virtual machine with runtime-configurable instruction set
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001430 * [goll1e](https://github.com/realistschuckle/goll1e) - An LL(1) parser generator for the Go programming language.
Scott Pakin1782c772015-07-31 11:26:50 -06001431 * [Golog](https://github.com/mndrix/golog) - Prolog interpreter in Go
David Hilton5a05be72016-07-27 10:13:47 -06001432 * [go-lua](https://github.com/Shopify/go-lua) - Shopify's lua interpreter
David Hilton1234c342016-07-27 10:04:54 -06001433 * [golua](https://github.com/aarzilli/golua) - A fork of GoLua that works on current releases of Go
Scott Pakin1782c772015-07-31 11:26:50 -06001434 * [gomruby](https://github.com/AlekSi/gomruby) - mruby (mini Ruby) bindings for Go
Tim Coopera7fd09a2015-04-12 13:14:44 -03001435 * [gopher-lua](https://github.com/yuin/gopher-lua) - A Lua 5.1 VM and compiler written in Go
Alex Palaistras1e545c22015-10-22 16:43:54 +01001436 * [go-php](https://github.com/deuill/go-php) - PHP bindings for Go
Scott Pakin1782c772015-07-31 11:26:50 -06001437 * [go-python](https://github.com/sbinet/go-python) - go bindings for CPython C-API
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001438 * [gotcl](http://code.google.com/p/gotcl/) - Tcl interpreter in Go
Ivan Fraixedesfffe8f12015-02-26 10:11:34 +00001439 * [go-v8](https://github.com/lazytiger/go-v8) - V8 JavaScript engine bindings for Go
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001440 * [LispEx](https://github.com/kedebug/LispEx) - A dialect of Lisp extended to support for concurrent programming, written in Go.
Kirill Zhuhareve4f4f432015-07-20 14:14:51 +03001441 * [meme](http://bitbucket.org/anacrolix/meme) - Scheme interpreter in Go
1442 * [Minima](https://github.com/opesun/minima) - A language implemented in Go
Kirill Zhuhareve4f4f432015-07-20 14:14:51 +03001443 * [ngaro](http://www.anarchyinthetubes.com/hg/go/ngaro) - A ngaro virtual machine to run retroForth images
Jason Buberel1aa7ad92015-09-06 13:10:45 -07001444 * [otto](https://github.com/robertkrimen/otto) - A JavaScript parser and interpreter written natively in Go
Kirill Zhuhareve4f4f432015-07-20 14:14:51 +03001445 * [RubyGoLightly](https://github.com/feyeleanor/RubyGoLightly) - An experimental port of TinyRb to Go
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001446
1447## Web Applications
1448
Matt Holt4665cab2015-09-01 20:29:38 -06001449 * [Caddy](https://caddyserver.com) - A fast, capable, general-purpose HTTP/2 web server that's easy to use
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001450 * [Digestw](https://github.com/mocchira/digestw) - A Web Application - Twitter's Timeline Digest
Jason Buberel6f9df142015-11-01 17:16:01 -08001451 * [fabio](https://github.com/eBay/fabio) - A fast zero-conf load balancing HTTP router for microservices.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001452 * [fourohfourfound](https://github.com/whee/fourohfourfound/) - A fallback HTTP server that may redirect requests with runtime configurable redirections
Kenny9f7032c2015-09-21 20:18:52 +01001453 * [Fragmenta](http://fragmenta.eu/) - A CMS built in Go
Scott Pakin1782c772015-07-31 11:26:50 -06001454 * [freegeoip](https://github.com/fiorix/freegeoip) - IP geolocation web service (web server of freegeoip.net)
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001455 * [goals-calendar](https://github.com/nono/goals-calendar) - A web-based Seinfeld calendar implemented in Go
1456 * [goblog](https://github.com/begoon/begoon.github.com) - A static blog engine
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001457 * [gocrawl](https://github.com/PuerkitoBio/gocrawl) - A polite, slim and concurrent web crawler.
1458 * [goflash](https://sourceforge.net/p/goflash/home/Home/) - Flash player implementation in Go language
1459 * [gogallery](http://code.google.com/p/gogallery/) - simple web server with an emphasis on easily browsing images
1460 * [goof](https://github.com/stone/goof) - A simple http server to exchange files over http (upload/download)
1461 * [gopages](http://code.google.com/p/gopages/) - A php-like web framework that allows embedding Go code in web pages
Scott Pakin1782c772015-07-31 11:26:50 -06001462 * [go\_spider](https://github.com/hu17889/go_spider) - A flexible ,modularization and concurrent web crawler framework.
1463 * [GoURLShortener](https://github.com/NickPresta/GoURLShortener) - A frontend for the http://is.gd/ URL shortener
biorisk1b8b1f92015-02-09 18:07:22 -06001464 * [httpfolder](https://github.com/biorisk/httpfolder) - A http server to exchange files over http with basic authentication (upload/download)
Scott Pakin1782c772015-07-31 11:26:50 -06001465 * [Hugo](https://github.com/spf13/hugo) - A fast and flexible static site generator implemented in Go
1466 * [Já Vai Tarde](https://github.com/nictuku/javaitarde) - Unfollows monitoring for Twitter
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001467 * [kurz.go](https://github.com/fs111/kurz.go) - a url shortener based on web.go and redis
1468 * [Monsti](https://github.com/chrneumann/monsti) - Resource friendly flat file CMS for private and small business sites.
1469 * [now.go](https://github.com/alloy-d/now.go) - A simple HTTP-based to-do queue.
Jason Buberelca37ce22015-10-09 11:17:28 -07001470 * [Peach](http://peachdocs.org/) - A web server for multi-language, real-time synced and searchable documentation.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001471 * [rabbitmq-http](https://github.com/smallfish/rabbitmq-http) - REST API for RabbitMQ
Scott Pakin1782c772015-07-31 11:26:50 -06001472 * [sf\_server](http://code.google.com/p/rflk/source/browse/#svn%2Ftrunk%2Fsw%2FGo%2Fsend_file_go) - a tiny send file server and client
Jason Bubereldb39fb92015-08-23 14:59:44 -07001473 * [Tideland golib](https://github.com/tideland/golib) - Web package for REST request handling
Jason Buberel0e6e3cd2015-09-11 17:35:30 -07001474 * [Vantaa](https://github.com/nathandao/vantaa) - A modular blogging API engine written in Go, Neo4j and Polymer.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001475 * [websiteskeleton](https://github.com/jadekler/git-go-websiteskeleton) - Simple net/http website skeleton
Scott Pakin1782c772015-07-31 11:26:50 -06001476 * [webtf](http://code.google.com/p/webtf/) - Web app to graphical visualization of twitter timelines using the HTML5
James Adam50ae00b2015-12-07 13:22:09 -05001477 * [Wikifeat](https://github.com/rhinoman/wikifeat) - Extensible wiki system using CouchDB written in Golang
Steven James Erdmanczyk Jr56cdee72016-05-25 21:15:58 -07001478 * [Freyr](https://github.com/serdmanczyk/Freyr) - Server for storing and serving readings from plant environment sensors. Integrates Golang API with ReactJS web app; uses Docker for testing/deployment.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001479
1480## Web Libraries
1481
Scott Pakin1782c772015-07-31 11:26:50 -06001482### Authentication
hannibal0112f080a6a2016-05-11 14:35:56 +08001483 * [goth](https://github.com/markbates/goth) - Package goth provides a simple, clean, and idiomatic way to write authentication packages for Go web applications
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001484 * [authcookie](https://github.com/dchest/authcookie) - Package authcookie implements creation and verification of signed authentication cookies.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001485 * [dgoogauth](https://github.com/dgryski/dgoogauth) - Go port of Google's Authenticator library for one-time passwords
Scott Pakin1782c772015-07-31 11:26:50 -06001486 * [goauth](https://github.com/alloy-d/goauth) - A library for header-based OAuth over HTTP or HTTPS.
1487 * [GOAuth](https://github.com/hokapoka/goauth) - OAuth Consumer
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001488 * [go-http-auth](https://github.com/abbot/go-http-auth) - HTTP Basic and HTTP Digest authentication
Scott Pakin1782c772015-07-31 11:26:50 -06001489 * [Go-OAuth](https://github.com/garyburd/go-oauth) - OAuth 1.0 client
Jason Buberel8319d242015-11-08 17:52:57 -08001490 * [goha](https://github.com/FeNoMeNa/goha) - Basic and Digest HTTP Authentication for Go http client
1491 * [hero](https://github.com/gernest/hero) - OAuth server implementation - be an OAuth provider with Go
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001492 * [httpauth-go](https://bitbucket.org/rj/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.
Scott Pakin1782c772015-07-31 11:26:50 -06001493 * [httpauth](https://github.com/apexskier/httpauth) - HTTP session (cookie) based authentication and authorization
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001494 * [oauth1a](https://github.com/kurrik/oauth1a) - OAuth 1.0 client library
Scott Pakin1782c772015-07-31 11:26:50 -06001495 * [OAuth Consumer](https://github.com/mrjones/oauth) - OAuth 1.0 consumer implementation
1496 * [otp](http://tristanwietsma.github.io/otp/) - HOTP and TOTP library with command line replacement for Google Authenticator
1497 * [totp](https://github.com/balasanjay/totp) - Time-Based One-Time Password Algorithm, specified in RFC 6238, works with Google Authenticator
Ivan Stefanoveddd2a22015-09-28 22:11:39 +03001498
Scott Pakin1782c772015-07-31 11:26:50 -06001499### DOM handling
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001500
1501 * [Cascadia](http://code.google.com/p/cascadia) - CSS selector library
1502 * [GoQuery](https://github.com/PuerkitoBio/goquery) - jQuery-like DOM manipulation library, using Go's experimental HTML package.
1503 * [html-query](https://github.com/hailiang/html-query) - A fluent and functional approach to querying HTML.
1504 * [HTML Transform](http://code.google.com/p/go-html-transform/) - A CSS selector based html scraping and transformation library
1505
Scott Pakin1782c772015-07-31 11:26:50 -06001506### Frameworks and Toolkits
1507
Geofrey Ernest1404ff62016-03-05 18:44:01 +03001508 * [alien](https://github.com/gernest/alien) - A lightweight and fast http router
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001509 * [app.go](https://github.com/georgenava/appgo) - Web framework for google app engine
Jason Buberel2d5a8622015-08-25 07:25:48 -07001510 * [arasu](https://github.com/arasuresearch/arasu) - A Lightning Fast Web Framework written in Go & Dart
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001511 * [Beego](http://beego.me/) - Beego is an open source version of the scalable, non-blocking web framework.
Scott Pakin1782c772015-07-31 11:26:50 -06001512 * [browserspeak](https://github.com/xyproto/browserspeak) - Generate HTML templates, CSS or SVG without writing `<` or `>`
Jason Buberel48d750c2015-11-21 09:49:25 -08001513 * [httpcoala](https://github.com/goware/httpcoala) - Library for request coalescing - handy for reverse proxies.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001514 * [falcore](https://github.com/fitstar/falcore) - Modular HTTP server framework
1515 * [fcgi\_client](https://bitbucket.org/PinIdea/fcgi_client) - Go fastcgi client with fcgi params support
1516 * [forgery](http://goforgery.appspot.com/) - A clone of the superb Node.js web framework Express.
Paweł Szczurf6bac2a2015-09-14 13:34:28 +02001517 * [Gin Web Framework](https://github.com/gin-gonic/gin) - Martini-like API and httprouter gives it good performance.
alkchre02069c2015-10-26 14:21:50 +06001518 * [Goal](https://github.com/colegion/goal) - A toolkit for high productivity web development in Go language built around the concept of code generation.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001519 * [Go-Blog](https://github.com/matt-west/go-blog) - Blog framework written in Go
1520 * [go-fastweb](http://code.google.com/p/go-fastweb/) - aims to be a simple, small and clean MVC framework for go
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001521 * [goku](https://github.com/QLeelulu/goku) - a Web Mvc Framework for Go, mostly like ASP.NET MVC.
1522 * [Golanger](https://github.com/golangers/framework) - Golanger Web Framework is a lightweight framework for writing web applications in Go.
1523 * [Goldorak.Go](https://github.com/nono/Goldorak.Go) - a web miniframework built using mustache.go, web.go and Go-Redis
Scott Pakin1782c772015-07-31 11:26:50 -06001524 * [go-restful](https://github.com/emicklei/go-restful) - lean package for building REST-style Web Services
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001525 * [GoRest](http://code.google.com/p/gorest/) - An extensive configuration(tags) based RESTful style web-services framework.
Scott Pakin1782c772015-07-31 11:26:50 -06001526 * [go-rest](https://github.com/ungerik/go-rest) - A small and evil REST framework for Go
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001527 * [gorilla](https://github.com/gorilla) - Gorilla web toolkit
1528 * [GoSrv](https://github.com/jcasts/gosrv) - A Go HTTP server that provides simple command line functionality, config loading, request logging, graceful connection shutdown, and daemonization.
Scott Pakin1782c772015-07-31 11:26:50 -06001529 * [go-start](https://github.com/ungerik/go-start) - A high level web-framework for Go
1530 * [go-urlshortener](https://github.com/mattn/go-urlshortener) - interface to google's urlshorten API
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001531 * [goweb](https://github.com/stretchrcom/goweb) - Lightweight RESTful web framework for Go providing Ruby on Rails style routing
Scott Pakin1782c772015-07-31 11:26:50 -06001532 * [go-webproject](http://go-webproject.appspot.com) - Modular web application framework and app server
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001533 * [Gowut](http://code.google.com/p/gowut) - Go Web UI Toolkit is a full-featured, easy to use, platform independent Web UI Toolkit written in pure Go.
1534 * [HttpRouter](https://github.com/julienschmidt/httprouter) - A high performance HTTP request router that scales well
Jason Buberelca37ce22015-10-09 11:17:28 -07001535 * [limiter](https://github.com/ulule/limiter) - Simple rate limter middleware for Go
1536 * [Macaron](https://github.com/Unknwon/macaron) - Modular web framework in Go
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001537 * [mango](https://github.com/paulbellamy/mango) - Mango is a modular web-application framework for Go, inspired by Rack, and PEP333.
Jason Buberel2de0e662015-09-19 11:22:42 -07001538 * [Martini **deprecated**](https://github.com/codegangsta/martini) - Martini is a popular, lightweight, extensible package for writing modular web apps/services in Go
1539 * [Negroni](https://github.com/codegangsta/negroni) - Idiomatic middleare for Go
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001540 * [restclient](https://github.com/jmcvetta/restclient) - Client library for interacting with RESTful APIs.
alkchr57d7e572015-10-26 14:19:29 +06001541 * [resty](https://github.com/go-resty/resty) - REST client library inspired by Ruby rest-client.
Scott Pakin1782c772015-07-31 11:26:50 -06001542 * [Revel](http://robfig.github.com/revel/) - High productivity web framework modeled on Play! Framework
Jason Buberelca37ce22015-10-09 11:17:28 -07001543 * [Ringo](https://github.com/jjyr/ringo) - Lighweight MVC web framework inspired by Rails, Gin.
Scott Pakin1782c772015-07-31 11:26:50 -06001544 * [sawsij](https://bitbucket.org/jaybill/sawsij/src) - Provides a small, opinionated web framework.
1545 * [Tango](https://github.com/lunny/tango) - Micro-kernel & pluggable web framework for Go
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001546 * [Tiger Tonic](https://github.com/rcrowley/go-tigertonic) - framework for building JSON web services inspired by Dropwizard
1547 * [trinity](https://github.com/cihub/trinity) - MVC framework
Jason Buberel2de0e662015-09-19 11:22:42 -07001548 * [Utron](https://github.com/gernest/utron) - MVC Framework
Jason Buberel37f37f52015-10-23 17:52:09 -07001549 * [VioletEar](https://github.com/nbari/violetear) - HTTP router
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001550 * [web.go](https://github.com/hoisie/web) - a simple framework to write webapps
1551 * [wfdr](https://github.com/crazy2be/wfdr) - Simple web framework designed for and written in go. Works with other languages as well, but not as well.
1552 * [xweb](https://github.com/go-xweb/xweb) - A web framework for Go. Just like Struts for Java.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001553
Scott Pakin1782c772015-07-31 11:26:50 -06001554### HTML forms
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001555
Kirill Zhuharev3b603c92015-07-12 00:05:51 +03001556 * [form](https://github.com/ajg/form) - Complete bidirectional HTML form encoder & decoder (x-www-form-urlencoded) for arbitrary data (package encoding compatible)
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001557 * [gforms](https://github.com/vmihailenco/gforms) - HTML forms for Go
Scott Pakin1782c772015-07-31 11:26:50 -06001558 * [Go-FORM-it](https://github.com/kirves/go-form-it) - Go library for easy and highly-customizable forms creation and template rendering.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001559 * [GoForms](https://github.com/absoludity/goforms) - Form data validation, cleaning and error reporting - a la django.forms
1560 * [htmlfiller](https://github.com/griffy/htmlfiller) - Fills in html forms with default values and errors a la Ian Bicking's htmlfill for Python
1561 * [MonstiForm](https://github.com/monsti/form) - HTML form generator and validator library
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001562 * [revel-csrf](https://github.com/cbonello/revel-csrf) - Cross-Site Request Forgery (CSRF) attacks prevention for the Revel framework
Scott Pakin1782c772015-07-31 11:26:50 -06001563 * [xsrftoken](http://code.google.com/p/xsrftoken) - A package for generating and validating tokens used in preventing XSRF attacks
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001564
Scott Pakin1782c772015-07-31 11:26:50 -06001565### Public API Wrappers
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001566
1567 * [adn](https://github.com/whee/adn/) - Interface to the App.net API
1568 * [anaconda](https://github.com/ChimeraCoder/anaconda) - Client library for the Twitter 1.1 API
1569 * [ddg](https://github.com/whee/ddg) - DuckDuckGo API interface
Scott Pakin1782c772015-07-31 11:26:50 -06001570 * [facebook](https://github.com/huandu/facebook) - Up-to-date facebook graph API client. Handy and flexible
Jason Buberel1aa7ad92015-09-06 13:10:45 -07001571 * [filepicker-go](https://github.com/filepicker/filepicker-go) - Go library for the Filepicker's REST API
Scott Pakin1782c772015-07-31 11:26:50 -06001572 * [firebase](https://github.com/cosn/firebase) - Client library for the Firebase REST API
Rafal Jeczalik4d388f62015-03-26 08:59:00 +01001573 * [gh](https://github.com/rjeczalik/gh) - Scriptable server and net/http middleware for GitHub Webhooks API
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001574 * [gobo](https://github.com/huichen/gobo) - Client library for Sina Weibo
1575 * [gocaptcha](https://github.com/GeertJohan/gocaptcha) - gocaptcha provides easy access to the reCaptcha API in go
1576 * [go-dealmap](https://github.com/ancientlore/go-dealmap) - Go library for accessing TheDealMap's API
1577 * [go-dropbox](https://github.com/nickoneill/go-dropbox) - API library for dropbox
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001578 * [go-flickr](https://github.com/mncaudill/go-flickr) - A wrapper for Flickr's API
Scott Pakin1782c772015-07-31 11:26:50 -06001579 * [go-get-youtube](https://github.com/knadh/go-get-youtube) - A simple library+client for fetching meta data of, and downloading Youtube videos
Stratos Neirosbb261172015-05-19 03:54:31 +03001580 * [go-github](https://github.com/google/go-github) - Go library for accessing the GitHub API
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001581 * [go-gravatar](https://github.com/ungerik/go-gravatar) - Wrapper for the Gravatar API
Stratos Neirosb1d70a32015-06-05 21:14:58 +03001582 * [go-hummingbird](https://github.com/nstratos/go-hummingbird) - Go library for accessing the Hummingbird.me API
Scott Pakin1782c772015-07-31 11:26:50 -06001583 * [go-libGeoIP](https://github.com/nranchev/go-libGeoIP) - GO Lib GeoIP API for Maxmind
1584 * [gominatim](https://github.com/grindhold/gominatim) - Go library to access nominatim geocoding services
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001585 * [gomojo](https://github.com/dotmanish/gomojo) - Instamojo API wrapper
1586 * [gomwapi](https://github.com/kracekumar/go-mwapi) - Access mediawiki contents like wikipedia, wiktionary in golang
Scott Pakin1782c772015-07-31 11:26:50 -06001587 * [go-myanimelist](https://github.com/nstratos/go-myanimelist) - Go library for accessing the MyAnimeList API
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001588 * [googtrans](https://github.com/bthomson/googtrans) - unofficial go bindings for Google Translate API v2
1589 * [go-recaptcha](https://github.com/dpapathanasiou/go-recaptcha) - Handles reCaptcha form submissions in Go
1590 * [gorecurly](https://github.com/mbeale/gorecurly) - A Client app to use with Recurly's api
1591 * [go.strava](https://github.com/strava/go.strava) - Official client library for the Strava V3 API
1592 * [go.stripe](https://github.com/bradrydzewski/go.stripe) - a simple credit card processing library for Go using the Stripe API
1593 * [Gotank](https://github.com/searchify/gotank) - Searchify's Go client for the IndexTank full-text search API
1594 * [go-tripit](https://github.com/ancientlore/go-tripit) - Go API library for the TripIt web services
1595 * [GoTwilio](https://github.com/sfreiberg/gotwilio) - Twilio library for Go (golang). Very basic at the moment
1596 * [gravatar](https://github.com/ftrvxmtrx/gravatar) - Gravatar image/profile API library
Jason Buberel6e44ada2015-09-21 18:00:26 -07001597 * [jsonapi](https://github.com/shwoodard/jsonapi) - Generate JSON API from Go structs
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001598 * [postmark](https://github.com/gcmurphy/postmark) - Access postmark API from Go
1599 * [reddit.go](https://github.com/tadzik/reddit.go) - Client library for Reddit API
1600 * [shorturl](https://github.com/subosito/shorturl) - Generic implementation for interacting with various URL shortening services
1601 * [Stack on Go](https://github.com/laktek/Stack-on-Go) - Go wrapper for Stack Exchange API
Sumesh Suvarna8ff4da22016-06-17 08:12:38 +10001602 * [stripe](https://github.com/stripe/stripe-go) - Official Stripe client library
1603 * [SocialSharesCount](https://github.com/gssumesh/socialsharescount) - Wrapper API on multiple social websites to get URL share statistics
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001604 * [twilio](https://github.com/subosito/twilio) - Simple Twilio API wrapper
1605 * [twittergo](https://github.com/kurrik/twittergo) - Client library for Twitter's API
1606
Scott Pakin1782c772015-07-31 11:26:50 -06001607### Other
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001608
1609 * [adhoc-http](https://github.com/tv42/adhoc-httpd) - Quick & dirty HTTP static file server
1610 * [assets](https://github.com/mostafah/assets) - Helps prepares CSS and JS files for development and production of Go web apps.
1611 * [bwl](https://github.com/bobappleyard/bwl) - a set of libraries to help build web sites
1612 * [captcha](https://github.com/dchest/captcha) - Image and audio captcha generator and server
1613 * [gaerecords](https://github.com/matryer/gae-records) - Lightweight wrapper around appengine/datastore providing Active Record and DBO style management of data
1614 * [get2ch-go](https://github.com/tanaton/get2ch-go) - a library to access the 2channel Japanese web bulletin board
mmcdolea42f67a2016-04-04 23:47:44 -05001615 * [gofeed](https://github.com/mmcdole/gofeed) - Parse RSS and Atom feeds in Go
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001616 * [go-gzip-file-server](https://github.com/joaodasilva/go-gzip-file-server) - A net.http.Handler similar to FileServer that serves gzipped content
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001617 * [gohaml](https://github.com/realistschuckle/gohaml) - An implementation of the popular XHTML Abstraction Markup Language using the Go language.
Scott Pakin1782c772015-07-31 11:26:50 -06001618 * [go-httpclient](https://github.com/mreiferson/go-httpclient) - a Go HTTP client with timeouts
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001619 * [gojwt](https://github.com/mzgoddard/gojwt) - Json Web Tokens for Go
Scott Pakin1782c772015-07-31 11:26:50 -06001620 * [go-pkg-rss](https://github.com/jteeuwen/go-pkg-rss) - a packages that reads RSS and Atom feeds
1621 * [gorefit](http://code.google.com/p/gorefit/) - A library for theming existing websites
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001622 * [goreman](https://github.com/mattn/goreman) - foreman clone
Scott Pakin1782c772015-07-31 11:26:50 -06001623 * [GoRequest](https://github.com/parnurzeal/gorequest) - Simplified HTTP client with rich features such as proxy, timeout, and etc. ( inspired by nodejs SuperAgent )
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001624 * [goroute](https://github.com/johncylee/goroute) - A very simple URL router based on named submatches of regular expression that works well with http.Handler .
1625 * [gorouter](https://github.com/rsentry/gorouter) - Simple router for go to process url variables
Scott Pakin1782c772015-07-31 11:26:50 -06001626 * [go-rss](https://github.com/KonishchevDmitry/go-rss) - Simple RSS parser and generator
1627 * [go-rss](https://github.com/ungerik/go-rss) - Simple RSS parser, tested with Wordpress feeds.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001628 * [goscribble](https://github.com/amir/goscribble) - An MPD Audioscrobble
Scott Pakin1782c772015-07-31 11:26:50 -06001629 * [go-twitter](https://github.com/jb55/go-twitter) - another Twitter client
1630 * [go-twitter-oauth](https://github.com/montsamu/go-twitter-oauth) - a simple Twitter client (supports OAuth)
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001631 * [grender](https://github.com/peterbourgon/grender) - Go static site generator
1632 * [halgo](https://github.com/jagregory/halgo) - [HAL](http://stateless.co/hal_specification.html)-compliant API client and serialisation library.
1633 * [http-gonsole](https://github.com/mattn/http-gonsole) - Speak HTTP like a local. (the simple, intuitive HTTP console, golang version)
1634 * [httprpc](https://github.com/kdar/httprpc) - HTTP RPC codecs (json2, soap, rest)
1635 * [HypeCMS](https://github.com/opesun/hypecms) - A flexible CMS built with Go and MongoDb.
1636 * [Kontl](https://github.com/geovedi/kontl) - A client for kon.tl's URL shortening service
1637 * [mustache.go](https://github.com/hoisie/mustache.go) - an implementation of the Mustache template language
1638 * [muxer](http://code.google.com/p/go-muxer/) - Simple muxer for a Go app without regexp
1639 * [Optimus Sitemap Generator](http://patrickmylund.com/projects/osg/) - A universal XML sitemap generator
1640 * [passwordreset](https://github.com/dchest/passwordreset) - Creation and verification of secure tokens useful for implementation of "reset forgotten password" feature in web applications.
1641 * [pat](https://github.com/bmizerany/pat) - A Sinatra style pattern muxer
1642 * [persona](https://github.com/areed/persona) - remote verification API for persona
1643 * [plex](https://bitbucket.org/agallego/plex) - simple, small, light, regexp http muxer with chaining
1644 * [purell](https://github.com/PuerkitoBio/purell) - tiny Go library to normalize URLs
1645 * [pusher.go](https://github.com/madari/pusher.go) - HTTP Server Push module for the standard http package
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001646 * [rest2go](https://github.com/Kissaki/rest2go) - Based on rest.go, forked for improvements and REST consistency
Scott Pakin1782c772015-07-31 11:26:50 -06001647 * [rest.go (forked)](https://github.com/Kissaki/rest.go) - forked rest.go for improvements and REST consistency
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001648 * [robotstxt](https://github.com/temoto/robotstxt-go) - The robots.txt exclusion protocol implementation. Allows to parse and query robots.txt file.
1649 * [seshcookie](https://github.com/bpowers/seshcookie) - A web session library inspired by Beaker
Paweł Szczurf6bac2a2015-09-14 13:34:28 +02001650 * [soy](https://github.com/robfig/soy) - A Go implementation for Soy templates (Google Closure templates). High performance and i18n.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001651 * [user\_agent](https://github.com/mssola/user_agent) - An HTTP User-Agent parser
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001652 * [webtestutil](https://github.com/chlu/webtestutil) - Web and HTTP functional testing utilities. Includes Gorilla testing support.
Zealdb0c35b2016-01-27 00:16:04 +08001653 * [aop](https://github.com/gogap/aop) - Aspect Oriented Programming For Go.
Duncan Holm3623cc42016-02-25 10:13:54 +00001654 * [yt2pod](https://github.com/frou/yt2pod) - Daemon that monitors YouTube channels and publishes audio podcasts of them
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001655
1656## Windows
1657
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001658 * [gform](https://github.com/AllenDang/gform) - An easy to use Windows GUI toolkit for Go
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001659 * [go-ole](https://github.com/mattn/go-ole/) - win32 ole implementation for golang
Scott Pakin1782c772015-07-31 11:26:50 -06001660 * [go-Windows-begin](https://github.com/yoffset/absolute-Windows---Go-Language-beginner) - for the absolute Windows-Go beginner
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001661 * [w32](https://github.com/AllenDang/w32) - Windows API wrapper for Go.
1662 * [walk](https://github.com/lxn/walk) - "Windows Application Library Kit" for the Go Programming Language
Scott Pakin1782c772015-07-31 11:26:50 -06001663 * [Windows Command Line Shutdow](http://software-download.name/2012/windows-command-line-shutdown/) - A tool to shutdown Windows Computer from Command Prompt
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001664
1665## Unix
Scott Pakin1782c772015-07-31 11:26:50 -06001666
syamp96523b52015-05-15 16:10:14 -07001667 * [inspect](https://github.com/square/inspect) - Linux and MacOSX systems monitoring and diagnostics
Scott Pakin1782c772015-07-31 11:26:50 -06001668 * [unixsums](https://github.com/cxmcc/unixsums) - Legacy Unix checksums: cksum, sum
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001669
1670## Unsorted; please help!
1671
1672The following entries have not been filed. Please help by putting these in relevant categories.
Jason Buberelef014bb2015-10-17 10:18:52 -07001673 * [GoBot](https://github.com/SaturnsVoid/GoBot) - PoC Go HTTP Botnet
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001674 * [domainerator](https://github.com/hgfischer/domainerator) - Command line tool to combine wordlist and suffixes/TLDs into domain names and check if they are registered or not
1675 * [ebml-go](http://code.google.com/p/ebml-go/) - EBML decoder
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001676 * [go-bindata](https://github.com/jteeuwen/go-bindata) - Converts any file into manageable Go source code for embedding binary data into a Go program.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001677 * [goconsistenthash](https://github.com/caglar10ur/goconsistenthash) - Consistent hashing library (based on http://www.lexemetech.com/2007/11/consistent-hashing.html)
Scott Pakin1782c772015-07-31 11:26:50 -06001678 * [go-cron](https://github.com/rk/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.
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001679 * [godebiancontrol](https://github.com/mstap/godebiancontrol) - Golang debian control file parser
Scott Pakin1782c772015-07-31 11:26:50 -06001680 * [go-gmetric](https://github.com/jbuchbinder/go-gmetric) - Ganglia gmetric protocol support
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001681 * [gographviz](http://code.google.com/p/gographviz) - Graphviz DOT language parser for golang
Jason Buberel2d5a8622015-08-25 07:25:48 -07001682 * [godotviz](http://github.com/sc0rp1us/godotviz) - Rendering graphics files from "DOT language". Written in golang
1683 * [dotviz-server](http://github.com/sc0rp1us/dotviz-server) - WebBased DOT language visualization tool written in go
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001684 * [golor](https://github.com/hantuo/golor) - golor is a command line tool for golang source code coloring
Scott Pakin1782c772015-07-31 11:26:50 -06001685 * [go-nat-pmp](http://code.google.com/p/go-nat-pmp/) - A client for the NAT-PMP protocol used in Apple and open-source routers
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001686 * [gopcapreader](http://code.google.com/p/gopcapreader) - Presents realtime pcap data as io.Reader objects
Scott Pakin1782c772015-07-31 11:26:50 -06001687 * [go.psl](https://github.com/ebfe/go.psl) - Go regdom-libs/public suffix list
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001688 * [gostax](https://github.com/maxymania/gostax) - A Streaming API for XML (StAX) in go
Scott Pakin1782c772015-07-31 11:26:50 -06001689 * [go-webfinger](https://github.com/ant0ine/go-webfinger) - Simple Client Implementation of WebFinger
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001690 * [httptail](https://github.com/smallfish/httptail) - tools push stdout/stderr to http chunked
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001691 * [humanize-bytes](https://github.com/tv42/humanize-bytes) - Command-line utilities to convert "MiB" etc to raw numbers, and back
Scott Pakin1782c772015-07-31 11:26:50 -06001692 * [humanize](https://bitbucket.org/dchapes/humanize) - formats large numbers into human readable small numbers
Andrew Gerrand5bc444d2014-12-10 11:35:11 +11001693 * [img-LinuxFr.org](https://github.com/nono/img-LinuxFr.org) - A reverse-proxy cache for external images used on LinuxFr.org
1694 * [netstat-nat](https://github.com/dominikh/netstat-nat) - Display NAT entries on Linux systems
1695 * [seed](https://github.com/tv42/seed) - Easily seed PRNGs with some entropy
1696 * [spellabc](https://github.com/elasticdog/spellabc) - Package spellabc implements spelling alphabet code word encoding.
Scott Pakin1782c772015-07-31 11:26:50 -06001697 * [Twackup](https://github.com/tv42/twackup) - Backs up your tweets into local files
Suraj Patilc7d00b52016-02-15 21:06:30 +05301698 * [validation](https://github.com/kdar/validation) - Simple independent struct/key-value validation
Jay Taylor51f58892016-05-27 21:59:52 -07001699 * [Tasks](https://github.com/thewhitetulip/Tasks) - A simplistic todo list manager written in Go