- B-Trees -- data structure
- GoLLRB -- data structure
- set -- set data structure for go
- sset -- another implementation of a LLRB
- go-spew -- deep pretty printer for Go data structures to aid in debugging
- hugo -- A Fast and Flexible Static Site Generator
- tree -- A statically typed binary tree in Go without casts or reflection
- Lanyon -- a markdown web server
- go-astar
- httprouter -- a trie based high performance HTTP request router
- package list -- part of golang's standard library
- gengo/goship -- A simple tool for deploying code to servers.
- disintegration/gift -- Go Image Filtering Toolkit
- fisher-lebo/ocd -- Atom & RSS feed parser
- nfnt/resize -- Pure golang image resizing
- edap/poster -- resize and merg images
- jbrukh/bayesian -- Naive Bayesian Classficiation on an arbritrary number of classes
- gust1n/go-render -- Thin wrapper of golang's html/template to provide "extends"
- golang-samples -- Highlights many useful standard library examples
- golang-opencv
- zimbatm/direnv
- Parallel Computations (Fully or Rate Limited) -- Highlights the use of
sync.WaitGroup
. It's good to compare against Worker Pools apporach. - skratchdot/open-golang
- toqueteos/webbrowser
- andrewstuart/hn
- asaskevich/govalidator
- willf/bitset -- See Intro to Bit Arrays for a better appreciation of this package
- headzoo/gosurf --
mechanize
-like client for Go. - ericchiang/pup -- Parsing HTML at the command line
- mdlayher/waveform -- Look at how the command executables are placed in the project structure
- mdlayher/goat -- Interesting Makefile for project
- mitchellh/gox -- A simple Go cross compile tool
- [Workiva/go-datastructures](https://github.com/Workiva/go-data structures)
- seiflotfy/s-bitmap -- S-Bitmap: Distinct Counting with a Self-Learning Bitmap
- go-wiki articles
- Using Go's Present -- can use for alternative scripting languages too!
- Concurrency Is Not Parallelism (video) -- A presentation by Rob Pike
- Google I/O 2012: Go Concurrency Patterns (video)
- Slice Tricks
- Project Layout
- Golang Dependency Management for Rubyists
- gocasts.io -- Bite sized screencasts to help you learn Go Faster
- Effective Go
- Iterators in Go
- How to use interfaces in Go
- Learning Go - Interfaces & Reflections
- Go Object Oriented Design
- no methods on interfaces
- Golang channels tutorial
- What are the use(s) for tags in Go? (stackoverflow)
- Go Tips for Newbie Gophers
- Conserving File Descriptors in Go - Example strategies for building concurrent or parallel worker pools
- Cancellation in Go, the Juju way - Strategies on building workflow pipelines
- Go and Github
- Writing a Command-line Task Tracker in Go
- Intro++ to Go Interfaces
- Is Go An Object Oriented Language?
- EMR Streaming in Go (NYTimes)
- Principles of designing Go APIs with channels
- Ten Useful Techniques in Go
- The Empty Struct
- Simple Go logging using Logrus
- Building a Skiplist
- Back To Basics: Hashtables
- 10 things you (probably) don't know about Go -- a 2012 presentation by Andrew Gerrand
- My (Go-centric) Vim Setup
- Testing Techniques by Andrew Gerrand at Google I/O 2014 (youtube)
- 12 Go Best Practices by Fancesc Campoy Flores -- slides
- How we use Go and MongoDB at MongoDB
- A Tour of Go by Russ Cox
- JSON decoding in Go
- JSON and struct composition in Go
- Go and JSON
- Slice Tricks
- How to properly contribute to a Go project
- Parsing and formatting date/time in Go
- Terminating a Process Started with os.exec in Golang
- Executing Commands In Go
- Embedding assets in Go
- text/template: Is there a way to identify the last element of a ranging array?
- How do you get the output of a system command in Go?
- An Introduction to Programming in Go by Caleb Doxsey
- Learning Go by Miek Gieben, et. al. (pdf)
- The Way To Go: A Thorough Introduction to the Go Programming Language
- Let's Learn Go!
- Go by Example
- Working with Go
- Go Bootcamp by Matt Aimonetti
- Build Web Applications with Golang
- A practical introduction to slices
- Essential Go