lexer multifile lexer!!! It is possible for the file to stop in the middle of the road and continue in the next file. lookahead 1 char. Toplevel Stream compatible to substreams Stream transcoders for zlib deflate tiff CCITT Fax [can also be abused for ZIP, i.e. epub] (use internal zip support?) not really since this here has not support for multifile things. ZipArchive this(void[] buffer); in order to read existing zip file. uint numEntries() ArchiveMember[string] directory(); ZipArchive archive = new ZipArchive(data); foreach (ArchiveMember am; archive.directory) { writefln("member name is '%s'", am.name); } ubyte[] expand(ArchiveMember de); Fills in properties extractVersion, flags, compressionMethod, time, crc32, compressedSize, expandedSize, expandedData[], name[], extra[].