Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
Happy Time Golang Libraries

Happy Time Go Libraries.

Another curated list like awesome-go.
Not complete. Not authoritative. Not cupcake.
Send suggestions: @squarism :)
☆ = Github stars (in November 2016)

Adapters and Drivers

Postgres (2395☆)

MySQL (2868☆)

Sqlite (1463☆)

RethinkDB (1067☆)


Memcached (679☆)

Redis (2587☆)

Elastigo - A Go (golang) based Elasticsearch client library. (809☆)

Databases in Go

Bolt - A low-level key/value database for Go (5054☆)

Go-cache - An in-memory key:value store/cache (similar to Memcached), suitable for single-machine apps (658☆)

Doozer - A consistent distributed data store for small amounts of extremely important data. (2781☆)

etd - A highly-available key value store for shared configuration and service discovery (11316☆)


Now - date math sugar now.EndOfWeek() (717☆)


go-spew - Implements a deep pretty printer for Go data structures to aid in debugging
go get -u (1094☆) †

delve - Debugger (4479☆)


Email - email for humans (721☆)

Image Processing

Gift - image processing with no dependencies (826☆)


Hellabot - irc bot framework (87☆)


Logrus - structured, pluggable logging for Go. (3498☆)

Machine Learning

Golearn - GoLearn is a 'batteries included' machine learning library for Go. (3431☆)

Shield - English text bayes classifier (88☆)


AMQP - rabbitmq client (1002☆)

Go-workers - sidekiq compatible workers (782☆)

Libchan - like go channels over the network (2090☆)

Gozmq - Go (golang) bindings for the ZeroMQ 4 (447☆)

Gnatsd - High Performance Golang Server for NATS, the cloud native messaging system. (2491☆)


I want to call this section DevOps but I won't. :)

Influxdb - Metrics! Influx->Graphana (UI) Like statsd+graphite. (9143☆)

statsd - Statsd server in go. (112☆)


Gorp - ORM-ish (go doesn't have objects really) library for Go (2255☆)

Package Management

Gpm - minimalistic package manager for Go (805☆) †


go/codec - collection of serialization libraries including msgpack (677☆)


Mustache - The mustache template language in Go (809☆)


Ginkgo - BDD testing (1220☆)

GoConvey - a yummy Go testing tool for gophers. Works with go test. (2449☆)

Gory - Factories for your Go structs. Think factory_girl. (67☆)

Testify - A sacred extension to the standard go testing package (mocks) (2386☆)

Looper - Like guard for go (or autotest) (289☆)


Blackfriday - a markdown processor for Go (2092☆)

Toml - TOML parser (1078☆)

YAML - yaml 1.2 parser (30 watchers)

Gokogiri - libxml nokogiri port (465☆)

Utilities and Miscellaneous

Gojson - gojson attempts to generate go struct definitions from json documents (1174)

Cobra - Command Line Options (2924☆)

Viper - Configuration library for 12 factor apps (2194☆)

Gopencils - Easily consume REST APIs with Go (363☆)

goagain - Zero-downtime restarts in Go (1518☆)

Text User Interfaces

Termbox-go - cross Win/Linux TUI API to make terminal UIs (1702☆)

Color - ANSI color library (1212☆)


Go.auth - Authentication API for Go web applications. (332☆)

Binding - Binds form and JSON data from net/http Request to struct. (529☆)

Nosurf - A CSRF protection middleware for Go. (690☆)

Martini - classy web framework (sinatra inspired) (8835☆)

Render - easy rendering serialized JSON, XML, and HTML template responses (234☆)

Negroni - idiomatic http middleware (4108☆)

Gin - Gin is like Martini but really fast (7981☆)

Goji - Goji is a minimalistic web framework for Golang that's high in antioxidants (3181☆)

fasthttp - Http client and server tools beyond net/http (3492☆)

Editors and tools

you would probably not install these like libraries

GoSublime - Sublime Text 2 plugin. Does code completion and fixes imports (among other things) (2426☆) †

Vim-go - vim plugin (5665☆) †

† uninstallable via go get, skipped by below install script

Quick install script

for library in `curl -s \ \
| grep -v † | grep -E "^<code>.*</code>" | sed -e 's/<[^>]*>//g' | awk '{print $1}'`
do go get -u $library
  echo '-->' $library done.

# some above are not golang repos or have special installation paths
brew install gpm
go get

Many of these require dependencies, like yum, rpm, apt-get or brew install fun times.

TODO: list out all the depenencies for like one platform (mac) as a hint.

brew install zmq hg gflagsl

If you don't have go this do this in homebrew:

brew install go --cross-compile-common
Copy link

joeatbayes commented Nov 4, 2017

Please consider adding: - HTTP based Key / Value meta data service. Designed to manage Terabytes of data in forward propagated caches too large to use pure in-memory cache systems. - General purpose machine learning classifier written in GO

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment