The Athens Project: A Proxy Server for Go Modules

Go 1.11 introduced modules, the new standard package management system for Go. It’s a massive step forward for the community, especially because we can build proxy servers instead of just using Github to fetch code. Athens is leading the way to solve some painful problems we’ve had for years.

Abstract

Go 1.11 introduced modules, the new standard package management system for Go. It’s a massive step forward for the community, especially because we can build proxy servers instead of just using Github to fetch code. Athens is leading the way to solve some painful problems we’ve had for years. Go 1.11 was a big release for all of us because we got a new package management system called modules built right into the go CLI. If you tried out vgo before 1.11, you’ll be familiar with modules. There’s some really cool stuff in there, but there’s one piece that a lot of us missed that we need to pay special attention to: the download API. We used to download dependency code directly from GitHub, and that led to major problems for the community. Over time, heavily used packages would change owners or disappear completely, leaving everyone who used it out in the cold. But now we can build federated module proxies. These are servers that download code from GitHub / GitLab / etc…, save code in their own storage, and Gophers fetch their dependencies from them. This new development lets us, as a community, treat our dependencies as immutable artifacts, free up the package owner to focus on development, and separate the code from the released module artifact. Even better, our proxies can serve these module artifacts to Gophers from CDNs to speed up their builds everywhere. The Athens project is leading the way toward this new world, and it’s a huge step forward for our community! In this talk, I’ll start with a brief history of broken dependencies both inside and outside our community. Then, I’ll summarize why proxies matter, how they help solve broken dependencies today, and where they’re still lacking. Finally, I’ll focus specifically on how Athens solves many of those problems, and I’ll show a live demo of Athens in action! You’ll walk away understanding why module proxies and Athens matter, where they’re already being used, what this new technology actually fixes, how it makes your life easier (without changing your current workflow much!), and how you can start using Athens right away with very little work. You’ll also learn why you might want to set up your own Athens server (hint: the Go team uses Athens to build Go itself!) and how to do it. And as an added bonus, you’ll be able to delete your vendor directories and break out of the GOPATH if you want!

Video

GoLab is a conference made by Develer.
Develer is a company based in Campi Bisenzio, near Florence. Our motto is : "Technology to give life to your products". We produce hardware and software to create exceptional products and to improve industrial processes and people's well being.
In Develer we have passion for the new technologies and we offer our clients effective solutions that are also efficient, simple and safe for the end users. We also believe in a friendly and welcoming environment where anybody can give their contribution. This passion and this vision are what we've been driven to organize our conference "made by developers for developers".


Subscribe to our newsletter

We hate spam just as much as you do, which is why we promise to only send you relevant communications. We respect your privacy and will never share your information with third parties.
©2024 GoLab | The international conference on Go in Florence-Design & devCantiere Creativo-Made withDatoCMS