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)
gomhttps://github.com/mattn/gom
TitleGo Manager - bundle for go
AuthorYasuhiro Matsumoto
CategoriesVendoring/Bundling
goophttps://github.com/nitrous-io/goop
TitleA dependency manager for Go (golang), inspired by Bundler.
AuthorNitrous.IO
CategoriesVendoring, Revision Locking
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
prewritehttps://github.com/dmitris/prewrite
AuthorDmitry Savintsev
CategoriesVendoring
vendorhttps://github.com/kardianos/vendor
AuthorDaniel Theophanes
CategoriesVendoring,Import rewrite
bunchhttps://github.com/dkulchenko/bunch
Titlenpm-like tool for managing Go dependencies
AuthorDaniil Kulchenko
CategoriesVendoring/Bundling/Revision Locking
gigohttps://github.com/LyricalSecurity/gigo
TitleHelps provide go get support for private repositories, pip for golang
AuthorLyrical Security
CategoriesVendoring, Revision Locking
gondlerhttps://github.com/rosylilly/gondler
TitleBundler for golang
AuthorSho Kusano
CategoriesVendoring/Bundling/Revision Locking. Requires Ruby

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.

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)
glidehttps://github.com/Masterminds/glide
TitleSimplified Go workspace and dependency management.
AuthorMatt Butcher and Matt Farina
CategoriesVendoring, Revision Locking (git, mercurial, bzr, svn)
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)
wgohttps://github.com/skelterjohn/wgo
TitleManaged workspaces on top of the go tool
AuthorJohn Asmuth
CategoriesRevision Locking (git, extensible)

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)
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)

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