The Athens Proxy Is In Beta! 🚀

Today we released v0.2.0 of Athens which we’re dubbing Beta.

TL;DR

You can now run a server that stores all your Go dependencies and be confident that they will be available whenever you need them, whether on your machine or during your CI/CD builds.

Welcome to beta, Athenians!

Try it out

$ docker pull gomods/athens:v0.2.0
$ docker run -p 3000:3000 gomods/athens:v0.2.0
# from another terminal window
$ git clone https://github.com/athens-artifacts/walkthrough.git
$ cd walkthrough
$ GO111MODULE=on GOPROXY=http://localhost:3000 go build

Note that by default, Athens stores your dependencies in-memory. Check out https://docs.gomods.io for a more long-term set-up.

What this means

All the contributors, users, and maintainers have been working on Athens for a few months now. But in a way, this release has been a decade in the making.

With Go modules and Athens, you can manage and more importantly own your code and the code that depends on it.

How?

The Go tool chain can talk directly to Athens via the GOPROXY variable. So you just type GOPROXY=http://localhost:3000 go build, sit back, and let the magic happen.

Why does this matter?

Good question. Athens and other module proxies matter most for reasons like immutability, performance, security, and making the vendor directory optional. For more details on each of these points: check out https://docs.gomods.io/intro/why

Release Highlights

Here are some highlights of what’s been done:

  • We have worked on docs for installing, deploying, and hacking on Athens: https://docs.gomods.io
  • We now support a variety of backend storage systems like AWS, GCP, MongoDB, Digital Ocean, and others
  • We’ve added logging and tracing (Jaeger and StackDriver)
  • You can now authenticate Athens with your own private repositories by just providing a Github token or .netrc/.hgrc files.

What’s next?

Athens is currently optimized as your personal Go Proxy. In other words, it’s meant to be a single instance inside organizations. The next big thing for us is to make it a distributed proxy so that we can run it publicly and scale up to world traffic, which we’re planning now.

We welcome your feedback

Please join us on the #athens channel on The Gopher Slack, or simply open an issue at github.com/gomods/athens.

A Huge Thank You

We wouldn’t have gotten to this point without everyone in our community, and we always welcome new folks. Absolutely everybody is welcome, so if you’re interested, we have tons of ways you can get involved. See here for details on how.

Enjoy, and keep on rockin’ Gophers!