The Athens Proxy Is In Beta! 🚀

Marwan Sulaiman
Nov 14, 2018 · 2 min read

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!

Project Athens

A distributed proxy server for Go (Golang) modules

Marwan Sulaiman

Written by

Project Athens

A distributed proxy server for Go (Golang) modules

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade