You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.
John Olheiser ef0d29afa3
Rewrite (#7)
2 years ago
cmd Rewrite (#7) 2 years ago
database Rewrite (#7) 2 years ago
docker Rewrite (#7) 2 years ago
go-gpm Rewrite (#7) 2 years ago
router Rewrite (#7) 2 years ago
.gitignore Initial commit 3 years ago
.golangci.yml Add CI config (#1) 3 years ago
Earthfile Rewrite (#7) 2 years ago
LICENSE Rewrite (#7) 2 years ago
Makefile Rewrite (#7) 2 years ago Rewrite (#7) 2 years ago
docs.go Rewrite (#7) 2 years ago
go.mod Rewrite (#7) 2 years ago
go.sum Rewrite (#7) 2 years ago
main.go Rewrite (#7) 2 years ago


Go Package Mapping


I personally use a lot of nice libraries in Go, but every time I start a new project I have to go hunting for import paths again!

Enter GPM, a glorified mapping of simple names to go-get imports.

For example, I use urfave/cli for all of my CLI projects. I've used it enough times to remember the import path, but let's say I didn't.
Using either a GPM server or local config, I can instead gpm get cli which finds cli in my map and runs go get


  • add - Add a local package
  • remove - Remove a local package
  • list - List local packages
  • config - Change local configuration
  • get - Get a list of packages
    • e.g. gpm get beaver survey bbolt cli chi to get all the modules needed for gpm itself (assuming the map resolves to the same packages)
  • server - Start a gpm server


gpm will call out to a gpm server to find a package.
This makes it much simpler to have a central library of packages rather than exporting and importing between environments.

Want to run your own server? It's very easy! This CLI comes packaged with the server inside, simply run gpm server to start up a GPM server.
Remember to set a --token!
Put it behind your favorite reverse proxy, and it's ready to go!