The archive/zip Reader does not read the entire file into memory.
However, it requires an io.ReaderAt: it needs the ability to read data
from specific points in the input. So it can't read from an
unseekable stream. But it can produce a stream from a seekable file
using only a fixed amount of memory. I think the amount of memory
required will depend on the compression method.
Ian