Software Update:MAR
Mozilla ARchive
This document describes the Mozilla ARchive (MAR) format used by the update system to deliver update packages. It is basically a series of files with an index tacked on to the end.
Details
The file structure in a nut-shell is a header (HEADER), followed by a list of variable length files, and finally ending with an index of the files (INDEX). The index is a list of variable length entries (INDEX_ENTRY).
HEADER
4 bytes : "MAR1" 4 bytes : offset-to-index (big endian)
INDEX
4 bytes : size-of-index (big endian)
INDEX_ENTRY
4 bytes : offset (big endian) 4 bytes : length (big endian) N bytes : name (byte array) 1 byte : null terminator
Why not use ZIP or some other standard file format?
There is no single overriding reason for this decision.