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.

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.