.ZIM вариант №
Файлы с расширением .zim представляют собой архивы, созданные для автономного хранения содержимого Wiki. Он считается наиболее подходящим форматом открытого файла для хранения Википедии на USB-накопителе. Он хранит содержимое сайта в компактном формате. Его название происходит от «Zeno IMproved», который был более ранним форматом файлов Zeno. ZIM поддерживается проектом openZIM, который спонсируется Wikimedia CH и поддерживается Фондом Wikimedia. Файлы ZIM можно открывать такими приложениями, как Kiwix и ZIMReader. Проект OpenZIM разместил реализацию формата файла ZIM на Github за вклад сообщества OpenSource.
Спецификации формата файла ZIM
Формат файла ZIM был разработан на основе формата файла Zeno и не имеет обратной совместимости. Спецификации формата файла ZIM доступны в Интернете от openZIM для справки разработчика. OpenZIM предоставил реализацию C++ с открытым исходным кодом, LibZim, для чтения и записи ZIM-файлов.
Формат файла ZIM использует сжатие LZMA2, чтобы сделать содержимое компактным.
ZIM-заголовок
Файл ZIM начинается с заголовка со смещением 0. Все составляющие основаны на прямом порядке байтов, а все целые числа являются целыми числами без знака, т.е. uint_16, uint_32, uint_64.
Имя поля | Тип | Смещение | Длина | Описание |
---|---|---|---|---|
магическое число | целое | 0 | 4 | Магический номер для распознавания формата файла должен быть 72173914 (0x44D495A) |
основная версия | целое | 4 | 2 | Основная версия формата файла ZIM (5 или 6) |
дополнительная версия | целое | 6 | 2 | Второстепенная версия формата файла ZIM |
uuid | целое | 8 | 16 | уникальный идентификатор этого ZIM-файла |
статьяСчетчик | целое | 24 | 4 | общее количество статей |
кластеркаунт | целое | 28 | 4 | общее количество кластеров |
urlPtrPos | целое | 32 | 8 | позиция списка указателей каталога, упорядоченного по URL |
заголовокPtrPos | целое | 40 | 8 | позиция списка указателей каталога, упорядоченного по Title |
кластерПтрПос | целое | 48 | 8 | положение списка указателей кластера |
MIMEListPos | целое | 56 | 8 | положение списка типов MIME (также размер заголовка) |
главная страница | целое | 64 | 4 | главная страница или 0xffffffff, если нет главной страницы |
макетСтраницы | целое | 68 | 4 | страница макета или 0xffffffffff, если нет страницы макета |
контрольная суммапоз | целое | 72 | 8 | указатель на контрольную сумму md5 этого файла без самой контрольной суммы. Это всегда указывает на 16 байтов до конца файла. |