Repolode
gomods

gomods/athens

An open source, self-hostable proxy and datastore that implements the Go modules download protocol for caching Go dependencies.

Stars
4,820
Forks
553
Open issues
122
Last commit
6 days ago

What is it?

Athens is a Go module proxy that implements the Go modules download protocol, so the go command can fetch dependencies from it instead of directly from upstream sources. It also acts as a datastore, keeping copies of module versions so builds can continue to work even when the original source is unavailable.

Athens is configurable for different deployments. It supports several storage backends, including cloud blob storage services, MongoDB, content distribution networks (CDNs), shared disk, and in-memory storage. Teams can run their own Athens server and point their local Go environments at it.

The project is written in Go and is MIT licensed. Its documentation site covers installation, storage configuration, and the design of the proxy.

Key features

  • 01Implements the Go modules download protocol so the go command can use it as a module proxy.
  • 02Stores module versions in a range of backends, including cloud blob storage, MongoDB, shared disk, and memory.
  • 03Can be placed behind a CDN to serve module downloads.
  • 04Can keep copies of modules so builds still work if the original source disappears.

Use cases

  • Running a shared module proxy for a team or company to speed up Go builds.
  • Caching Go dependencies so builds keep working when upstream sources are unavailable.
  • Controlling which module versions are available to internal Go development environments.

Quick start

  1. 1

    Read the install guide at docs.gomods.io to deploy an Athens proxy

  2. 2

    Set up a development environment following DEVELOPMENT.md

Things to know

  • The README does not give a single-command install, so setup requires following external documentation.
  • Self-hosting requires configuring a storage backend for the proxy.

Topics

FAQ

What is athens?
An open source, self-hostable proxy and datastore that implements the Go modules download protocol for caching Go dependencies. Athens is a Go module proxy that implements the Go modules download protocol, so the go command can fetch dependencies from it instead of directly from upstream sources. It also acts as a datastore, keeping copies of module versions so builds can continue to work even when the original source is unavailable.
Is athens free to use? What license does it have?
athens is open source under the MIT license. Check the license terms before using it in commercial products.
Is athens still maintained?
Actively maintained. The last commit to athens was on Nov 2, 2026.
What can I use athens for?
Running a shared module proxy for a team or company to speed up Go builds. Caching Go dependencies so builds keep working when upstream sources are unavailable. Controlling which module versions are available to internal Go development environments.
How do I install athens?
Read the install guide at docs.gomods.io to deploy an Athens proxy Set up a development environment following DEVELOPMENT.md
Where can I get athens?
The source code and installation instructions are on GitHub: https://github.com/gomods/athens

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects