A curated list of awesome Go frameworks, libraries and software. Inspired by awesome-python.
- Awesome Go
Full stack web frameworks.
- Martini - Martini is a powerful package for quickly writing modular web applications/services in Golang.
- Gorilla - Gorilla is a web toolkit for the Go programming language.
- Gin - Gin is a web framework written in Go! It features a martini-like API with much better performance, up to 40 times faster. If you need performance and good productivity.
- Goji - Goji is a minimalistic web framework for Golang that's high in antioxidants.
- web.go - A simple framework to write webapps in Go.
- pat - Sinatra style pattern muxer for Go’s net/http library, by the author of Sinatra.
- Revel - A high-productivity web framework for the Go language.
- Beego - beego is an open-source, high-performance web framework for the Go programming language.
- traffic - Sinatra inspired regexp/pattern mux and web framework for Go.
Libraries and tools for templating and lexing.
- mustache - A Go implementation of the Mustache template language.
- kasia.go - Templating system for HTML and other text documents - go implementation.
- gold - Gold is a template engine for Go. This simplifies HTML coding in Go web application development. This is influenced by Slim and Jade.
- Razor - Razor view engine for Golang.
Authentication and OAuth
Libraries for implementing authentications schemes.
- goauth - A Go library for doing header-based OAuth over HTTP or HTTPS. Mostly created for working with Twitter.
- httpauth - HTTP Authentication middlewares.
Databases implemented in Go.
- tiedot - Your NoSQL database powered by Golang.
- diskv - A home-grown disk-backed key-value store.
- bolt - A low-level key/value database for Go.
- go-cache - An in-memory key:value store/cache (similar to Memcached) library for Go, suitable for single-machine applications.
Libraties for connecting and operating databases.
- Relational Databases
- NoSQL Databases
- mgo - MongoDB driver for the Go language that implements a rich and well tested selection of features under a very simple API following standard Go idioms.
- redis - A simple, powerful Redis client for Go.
- Neo4j-GO - Neo4j REST Client in golang.
- gocouch - Couchdb client for Go.
- gomemcache - memcache client library for the Go programming language.
Libraries for manipulating images.
- img - A selection of image manipulation tools.
- svgo - Go Language Library for SVG generation.
- resize - Image resizing for the Go with common interpolation methods.
- go-pkg-xmlx - Extension to the standard Go XML package. Maintains a node tree that allows forward/backwards browsing and exposes some simple single/multi-node search functions.
- go-pkg-rss - This package reads RSS and Atom feeds and provides a caching mechanism that adheres to the feed specs.
- gocheck - A more advanced testing framework alternative to gotest.
- GoSpec - BDD-style testing framework for the Go programming language.
- gospecify - This provides a BDD syntax for testing your Go code. It should be familiar to anybody who has used libraries such as rspec.
- gomock - Mocking framework for the Go programming language.
- mockhttp.go - Mock object for Go http.ResponseWriter
- assert - Asserts to Go testing
- Hamcrest - fluent framework for declarative Matcher objects that, when applied to input values, produce self-describing results.
- restit - A Go micro framework to help writing RESTful API integration test.
- ginkgo - BDD Testing Framework for Go
Where to discover new Go libraries.
- r/Golang - News about Go.
- Trending Go repositories on GitHub today - Good place to find new Go libraries.
- Flipboard - Go Magazine - A collection of Go articles and tutorials.