Protobuffers can read in .zips, .jars, .tars, .tar.gzs, and .tar.bz2s containing proto files (or directories of protofiles, etc) as sources.

This is done fairly generically to minimize how much protobuf_gen knows or cares about the exact format of the input files, with the goal of making it easy to extend this functionality to other targets (and other kinds of compressed files). The ultimate goal is being able to read zip files from remote repositories.