Skip to content

Instantly share code, notes, and snippets.

Embed
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
github.com/lib/pq (2395☆)

MySQL
github.com/go-sql-driver/mysql (2868☆)

Sqlite
github.com/mattn/go-sqlite3 (1463☆)

RethinkDB
github.com/dancannon/gorethink (1067☆)

MongoDB
gopkg.in/mgo.v2

Memcached
github.com/bradfitz/gomemcache (679☆)

Redis
github.com/garyburd/redigo (2587☆)

Elastigo - A Go (golang) based Elasticsearch client library.
github.com/mattbaird/elastigo (809☆)

Databases in Go

Bolt - A low-level key/value database for Go
github.com/boltdb/bolt (5054☆)

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

Doozer - A consistent distributed data store for small amounts of extremely important data.
github.com/ha/doozerd (2781☆)

etd - A highly-available key value store for shared configuration and service discovery
github.com/coreos/etcd (11316☆)

Date

Now - date math sugar now.EndOfWeek()
github.com/jinzhu/now (717☆)

Debugging

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

delve - Debugger github.com/derekparker/delve (4479☆)

Email

Email - email for humans
github.com/jordan-wright/email (721☆)

Image Processing

Gift - image processing with no dependencies
github.com/disintegration/gift (826☆)

Internet

Hellabot - irc bot framework
github.com/whyrusleeping/hellabot (87☆)

Logging

Logrus - structured, pluggable logging for Go.
github.com/sirupsen/logrus (3498☆)

Machine Learning

Golearn - GoLearn is a 'batteries included' machine learning library for Go.
github.com/sjwhitworth/golearn (3431☆)

Shield - English text bayes classifier
github.com/eaigner/shield (88☆)

Messaging

AMQP - rabbitmq client
github.com/streadway/amqp (1002☆)

Go-workers - sidekiq compatible workers
github.com/jrallison/go-workers (782☆)

Libchan - like go channels over the network
github.com/docker/libchan (2090☆)

Gozmq - Go (golang) bindings for the ZeroMQ 4
github.com/pebbe/zmq4 (447☆)

Gnatsd - High Performance Golang Server for NATS, the cloud native messaging system. github.com/nats-io/gnatsd (2491☆)

Monitoring

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

Influxdb - Metrics! Influx->Graphana (UI) Like statsd+graphite.
github.com/influxdata/influxdb (9143☆)

statsd - Statsd server in go. github.com/quipo/statsd (112☆)

ORMs

Gorp - ORM-ish (go doesn't have objects really) library for Go
github.com/go-gorp/gorp (2255☆)

Package Management

Gpm - minimalistic package manager for Go
github.com/pote/gpm (805☆) †

Serialization

go/codec - collection of serialization libraries including msgpack github.com/ugorji/go (677☆)

Templates

Mustache - The mustache template language in Go
github.com/hoisie/mustache (809☆)

Testing

Ginkgo - BDD testing
github.com/onsi/ginkgo (1220☆)

GoConvey - a yummy Go testing tool for gophers. Works with go test.
github.com/smartystreets/goconvey (2449☆)

Gory - Factories for your Go structs. Think factory_girl.
github.com/modocache/gory (67☆)

Testify - A sacred extension to the standard go testing package (mocks) github.com/stretchr/testify (2386☆)

Looper - Like guard for go (or autotest) github.com/nathany/looper (289☆)

Text

Blackfriday - a markdown processor for Go
github.com/russross/blackfriday (2092☆)

Toml - TOML parser
github.com/BurntSushi/toml (1078☆)

YAML - yaml 1.2 parser
bitbucket.org/zombiezen/yaml (30 watchers)

Gokogiri - libxml nokogiri port
github.com/moovweb/gokogiri (465☆)

Utilities and Miscellaneous

Gojson - gojson attempts to generate go struct definitions from json documents
github.com/ChimeraCoder/gojson (1174)

Cobra - Command Line Options
github.com/spf13/cobra (2924☆)

Viper - Configuration library for 12 factor apps github.com/spf13/viper (2194☆)

Gopencils - Easily consume REST APIs with Go
github.com/bndr/gopencils (363☆)

goagain - Zero-downtime restarts in Go
github.com/rcrowley/goagain (1518☆)

Text User Interfaces

Termbox-go - cross Win/Linux TUI API to make terminal UIs
github.com/nsf/termbox-go (1702☆)

Color - ANSI color library
github.com/fatih/color (1212☆)

Web

Go.auth - Authentication API for Go web applications.
github.com/bradrydzewski/go.auth (332☆)

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

Nosurf - A CSRF protection middleware for Go.
github.com/justinas/nosurf (690☆)

Martini - classy web framework (sinatra inspired)
github.com/go-martini/martini (8835☆)

Render - easy rendering serialized JSON, XML, and HTML template responses
github.com/martini-contrib/render (234☆)

Negroni - idiomatic http middleware
github.com/urfave/negroni (4108☆)

Gin - Gin is like Martini but really fast
github.com/gin-gonic/gin (7981☆)

Goji - Goji is a minimalistic web framework for Golang that's high in antioxidants
github.com/zenazn/goji (3181☆)

fasthttp - Http client and server tools beyond net/http github.com/valyala/fasthttp (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)
github.com/DisposaBoy/GoSublime (2426☆) †

Vim-go - vim plugin
github.com/fatih/vim-go (5665☆) †

† uninstallable via go get, skipped by below install script

Quick install script

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

# some above are not golang repos or have special installation paths
brew install gpm
go get github.com/dotcloud/docker/utils

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
@joeatbayes

This comment has been minimized.

Copy link

commented Nov 4, 2017

Please consider adding:
https://bitbucket.org/joexdobs/meta-data-server - 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.

https://bitbucket.org/joexdobs/ml-classifier-gesture-recognition - 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
You can’t perform that action at this time.