--- /dev/null
+Package-cache is a simple caching proxy for package downloads. Just
+configure a list of upstream sources (with the `SOURCES` environment
+variable) and point clients at the package-cache server. The first
+time a package is requested, we download that package from one of the
+sources and cache it locally, while also streaming it to the client.
+Future requests for that package are streamed directly from the local
+cache. This helps reduce the load on the network and source servers,
+if you have a number of local clients that will repeatedly request the
+same files (e.g. [Gentoo's distfiles][distfiles]).
+
+We don't do anything fancy with [Cache-Control
+headers][Cache-Control], since package source files should include the
+version stamp in the filename itself (e.g. `my-package-0.1.2.tar.gz`).
+Files are cached after the first request, and stored forever. This
+means that every package you've ever requested will still be there if
+you need it later. That's nice, but it will end up consuming a fair
+amount of disk space. You might want to periodically cull the cache,
+using access times to see which files you are unlikely to want in the
+future.
+
+Package-cache is written in Python, and has no dependencies outside
+the standard library.
+
+[distfiles]: https://wiki.gentoo.org/wiki/Project:Infrastructure/Source_mirrors
+[Cache-Control]: https://tools.ietf.org/html/rfc2616#section-14.9