Go Module Mirror, Index, and global go.sum

The Go team is providing the following services run by Google: a module mirror for accelerating Go module downloads, an index for discovering new modules, and a global go.sum database for authenticating module content.

Our privacy policy explains how we collect and use your information. The privacy policy for all of these services is proxy.golang.org/privacy.

Services

proxy.golang.org - a Module Mirror which meets the spec provided at go help goproxy.

sum.golang.org - an auditable checksum database which will be used by the go command to authenticate modules. Check out the Secure the Public Go Module Ecosystem Proposal for more details.

index.golang.org - a Module Index which acts as a feed of new module versions becoming newly available by proxy.golang.org. The feed can be viewed at https://index.golang.org/index with an optional 'since' parameter (e.g. https://index.golang.org/index?since=2019-04-25T18:00:15.161182-07:00).

Status: Alpha

These services are in early stages, so even though we don't have any planned outages, you should prepare for instability and possible bugs. We'll be actively working through these issues and improving our services, so please file issues if you spot them (with the prefix "proxy.golang.org:").

Environment setup

To use the mirror as a proxy for the go command, set the following environment variable:
GOPROXY=https://proxy.golang.org

GO111MODULE=on must be set to use any module proxy.

To opt-out of this proxy, you can turn it off by setting GOPROXY=''

FAQ

I committed a new change (or released a new version) to a repository, why isn't it showing up?

In order to improve our services caching and serving latencies, new versions may not show up immediately. Try again in an hour or two, and if it still isn't showing up, file an issue.

I removed a bad release from my repository but it still appears in the mirror, what should I do?

Whenever possible, the mirror aims to cache content in order to avoid breaking builds for people that depend on your package, so this bad release may still be available in the mirror even if it is not available at the origin. The same situation applies if you delete your entire repository. We suggest creating a new version and encouraging people to use that one instead.

I'm running the go command in an environment that can't use the mirror.

The mirror is currently opt-in, so you can continue to rely on direct fetches with GOPROXY='', or run your own proxy.