The central directory is read from start to finish in a predictable linear way. This perfectly fits the pattern of a read stream, except that yauzl is interested in fixed-size chunks of it at a time. There should be some kind of buffer to put in from of a read stream to provide yauzl with the chunks it wants.
This has promising possibilities for optimizing fs access by reducing the number of reads.
This idea interacts with #92.