This page contains a list of tools for managing Go packages and their dependencies. The tools are divided into categories based on their approach to version management.

The approach endorsed by the Go project is “vendoring” (described below) and godep is a well-maintained tool for managing vendored dependencies.

Vendoring

Vendoring takes the 3rd party source code that is referenced in your project and makes a copy of that code inside a new folder within the project. All the code your project needs is inside the one project repository. Vendoring also provides a performance enhancement on getting the code because only one url call is required.

godephttps://github.com/tools/godep
TitleHelps build packages reproducibly by fixing their dependencies
AuthorKeith Rarick
CategoriesVendoring, Revision Locking (git, mercurial, bazaar)
godepshttps://github.com/dre1080/godeps
TitleSimple dependency management for Go
Authorandoooooo
CategoriesVendoring
NotesRequires goven. godeps is a unix shell script.
gomhttps://github.com/mattn/gom
TitleGo Manager - bundle for go
AuthorYasuhiro Matsumoto
CategoriesVendoring/Bundling
gondlerhttps://github.com/rosylilly/gondler
TitleBundler for golang
AuthorSho Kusano
CategoriesVendoring/Bundling/Revision Locking
goophttps://github.com/nitrous-io/goop
TitleA dependency manager for Go (golang), inspired by Bundler.
AuthorNitrous.IO
CategoriesVendoring, Revision Locking
govenhttps://github.com/kr/goven
TitleVendor Go packages
AuthorKeith Rarick
CategoriesVendoring
NotesNow suggests using github.com/tools/godep
third-partyhttps://github.com/coreos/third_party.go
TitleSelf contained GOPATH helper
AuthorCoreOS
CategoriesVendoring
NotesCoreOS now uses github.com/tools/godep
vendorizehttps://github.com/kisielk/vendorize
AuthorKamil Kisiel
CategoriesVendoring
partyhttps://github.com/mjibson/party
AuthorMatt Jibson
CategoriesVendoring

Revision Locking

Revision Locking creates a dependency file that references specific commits in the different version control systems the code is located in. Just like vendoring, the RL tool is used to get, build and install your project. One advantage is that your project repository continues to only contain the specific project code.

depmanhttps://github.com/vube/depman
TitleSupports versioned dependencies, using standard Golang imports
Authorvube.com
CategoriesRevision Locking (git, mercurial, bazaar)
StatusDeprecated as of Feb 25, 2015
dondurhttps://github.com/oguzbilgic/dondur
TitleFreeze your Go dependencies with ease
AuthorOguz Bilgic
CategoriesRevision Locking (git, mercurial, bazaar)
enviehttps://github.com/sam-falvo/envie
TitleDownload and manage Go projects and their dependencies
AuthorSamuel A. Falvo II
CategoriesRevision Locking (unknown)
glockhttps://github.com/robfig/glock
TitleLock dependencies to specific revisions.
AuthorRob Figueiredo
CategoriesRevision Locking (git)
gobshttps://bitbucket.org/vegansk/gobs
TitleBuild system and package manager for go language
AuthorAnatoly Galiulin
CategoriesRevision Locking (git)
godephttps://github.com/tools/godep
TitleHelps build packages reproducibly by fixing their dependencies
AuthorKeith Rarick
CategoriesVendoring, Revision Locking (git, mercurial, bazaar)
godepshttps://launchpad.net/godeps
TitlePrint, fetch and update dependencies with care. In production use by Canonical. The first tool with this name!
AuthorRoger Peppe
CategoriesRevision Locking (git, mercurial, bzr)
gopackhttps://github.com/d2fn/gopack
TitleDependency management for go inspired by rebar
AuthorDietrich Featherston
CategoriesRevision Locking (git)
gopinhttps://github.com/laher/gopin
TitleExperimental go-get fork with support for tags and alternative repos
AuthorGo Package Manager
CategoriesRevision Locking (git)
gopmhttps://github.com/GPMGo/gopm
TitleTool for search, install, update, share packages in Go
AuthorAm Laher
CategoriesRevision Locking (git, mercurial, bazaar)
gpmhttps://github.com/pote/gpm
TitleBarebones dependency manager for Go.
AuthorPablo Astigarraga
CategoriesRevision Locking (git, mercurial, bazaar)
johnny depshttps://github.com/VividCortex/johnny-deps
TitleBarebones dependency manager for Go
AuthorBaron Schwartz / Gustavo Kristic
CategoriesRevision Locking (git)
packhttps://github.com/theplant/pak
TitleSimple package management tool for Go
AuthorThe Plant
CategoriesRevision Locking (git)
rxhttp://godoc.org/kylelemons.net/go/rx
TitleAutomation for dependency management tasks
AuthorKyle Lemons
CategoriesRevision Locking (git, mercurial)

Import Proxies

Import Proxies act as a man in the middle between the Go tool and the VCS. It parses the data stream while the repository is being cloned.

git-version-proxyhttps://github.com/msiebuhr/git-version-proxy
TitleA HTTP Git proxy that only exposes certain versions
AuthorMorten Siebuhr
CategoriesImport Proxy (git)
gopinhttp://gopin.org
TitleTool-less version pinning for Go
AuthorAlexander Suma
CategoriesImport Proxy (GitHub)
gopkg.inhttps://gopkg.in
TitleRedirect the go tool onto well defined GitHub repositories. Versioning with tags and branches or the repository name.
AuthorGustavo Niemeyer
CategoriesImport Proxy (GitHub)
gopkg.cchttp://gopkg.cc
TitleExposes each branch and tag in a GitHub repository at a separate package path
AuthorSimon Menke
CategoriesImport Proxy (GitHub)

Go Version Managers

Go Version Managers allow you to have multiple versions of Go installed on your machine. It allows you to switch between those versions.

gvmhttps://github.com/moovweb/gvm
TitleGo Version Manager
AuthorJosh Bussdieker
CategoriesGo Version Manager
goenvhttps://bitbucket.org/ymotongpoo/goenv
TitleGo environment manager
AuthorYoshifumi YAMAGUCHI
CategoriesGo Version Manager

Unclassified

Not able to classify these tools.

go-dephttps://github.com/go-dep/dep
TitleGo package dependencies with the help of the Go Dependency Format (GDF)
AuthorMarc Rene Arns
CategoriesNot Sure

Client App Test Packages

Here is a list of packages that authors can use to test their tools against.

beego-mgohttps://github.com/goinggo/beego-mgo
AuthorBill Kennedy
DescSample Application For Using the Beego web framework with MGO
revel-mgohttps://github.com/goinggo/revel-mgo
AuthorBill Kennedy
DescSample revel project with mgo support