Convert 7Z archives for free, and read what is inside one: this page parses a .7z in your browser.
A .7z keeps its table of contents at the end, usually compressed itself
7z starts with a 32-byte signature header that only says where the real header is. The packed data comes next: “folders”, each a chain of coders such as BCJ, then LZMA2, often holding many files in one solid block. Last comes the header, a tree of property IDs that 7-Zip compresses with LZMA by default and can encrypt so even the file names need the password. This page reads all of it with its own parser and LZMA decoder.
project.7z: written here: Copy method, one solid folder of 4 files, a directory, an empty file, a UTF-16 name, Unix mode in the high attribute bits, plain (unencoded) headerIn a solid folder every file is a slice of one continuous stream. Reaching a file means decompressing everything in front of it, and one damaged byte breaks every file after it in that block. ZIP compresses each file on its own, so it costs more space but you can read files in any order.
Every size, count and offset in the header uses one variable-length scheme. The number of leading 1 bits in the first byte says how many extra little-endian bytes follow, and the rest of the first byte holds the top bits. Small numbers take one byte: 0x00-0x7F.