Skip to content

Go Package Manager Comparison

Jonathan Hall edited this page Aug 12, 2017 · 7 revisions

There are numerous package dependency managers in the Go ecosystem. How do you choose the one to use? How do they compare?

This table looks at features across several of the popular ones to see how they compare.

Glide GB Godep Govendor
Semantic Versions
Semantic Version Ranges
Resolves dependency trees including versions
Uses common range syntax (similar to PHP, JavaScript, etc)
Tries to import from other package managers
Copies from the GOPATH ✕*
Works with the go toolchain
Locks for reproducible builds
Allows package/version checked into VCS or installed on demand
Aliased repos (e.g., using forks)
Plugin extensibility model
Supports deleting unused repos for cleanup (opt-in)

* Glide keeps the imports separate from the GOPATH so there's no accidental changes there that could cascade into applications using the package.

Obvious disclosure, this is on the Glide project so take that into account.

Note, if there is something inaccurate in this table let's fix it. The goal is to be accurate, mistakes happen, and projects add features.

Clone this wiki locally