Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Go Package Manager Comparison
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.
|Semantic Version Ranges||✓||✕||✕||✕|
|Resolves dependency trees including versions||✓||✕||✕||✕|
|Tries to import from other package managers||✓||✕||✕||✕|
|Copies from the
|Works with the
|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.