ZIM file format
Jump to navigation
Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
The ZIM file format is based on the zeno file format. It starts with a header, which is described here:
length in byte, all types are littlendian
Field Name | Type | Offset | Length | Description |
---|---|---|---|---|
rMagicNumber | integer | 0 | 4 | Magic number to recognise the file format, must be "1439867043" |
rVersion | integer | 4 | 4 | wp2006=2, wp2007=3, ZIM=4, version of the file format for backwards compatibility |
rCount | integer | 8 | 4 | total number of articles |
integer | 12 | 4 | deprecated | |
rIndexPos | integer | 16 | 8 | position of the article index |
rIndexLen | integer | 24 | 4 | length of the article index |
headerLen | integer | 28 | 4 | length of header (currently 60) |
rIndexPtrPos | integer | 32 | 8 | position to the directory pointerlist |
rIndexPtrLen | integer | 40 | 4 | length of directory pointerlist (always 4*rCount) |
rMainPage | integer | 44 | 4 | article index of main page or 0xffff if no main page |
rLayoutPage | integer | 48 | 4 | article index of layout page or 0xffff if no layout page |
integer | 52 | 8 | deprecated |
Each article in the zim file has a directory entry. Since the directory entry has a variable size, we have a index pointerlist, which is a list of 4-byte offsets, which points to the directory entries.