Какво е ZIM файл?
Файловете с разширение .zim са архиви, създадени за съхраняване на Wiki съдържание офлайн. Счита се за най-подходящия отворен файлов формат за съхранение на Wikipedia на USB. Той съхранява съдържанието на сайта в компактен формат. Името му идва от “Zeno IMproved”, който беше по-ранният файлов формат на Zeno. ZIM се поддържа от openZIM проект, който е спонсориран от Wikimedia CH и се поддържа от Wikimedia Foundation. ZIM файловете могат да се отварят от приложения като Kiwix и ZIMReader. Проектът OpenZIM е домакин на внедряването на файловия формат ZIM в Github за принос от общността на OpenSource.
Спецификации на файловия формат ZIM
Файловият формат ZIM е разработен върху файловия формат на Zeno и не е обратно съвместим. Спецификациите на формата на файловия формат ZIM са достъпни онлайн от openZIM за справка на разработчиците. OpenZIM предостави реализация с отворен код на C++, LibZim, за четене и писане на ZIM файлове.
Файловият формат ZIM използва LZMA2 компресия, за да направи съдържанието компактно.

ZIM Header
ZIM файл започва със заглавка, която е на отместване 0. Всички съставни части са базирани на little-endian и всички цели числа са цели числа без знак, т.е. uint_16, uint_32, uint_64.
| Име на поле | Тип | Отместване | Дължина | Описание |
|---|---|---|---|---|
| magicNumber | цяло число | 0 | 4 | Магическото число за разпознаване на файловия формат трябва да бъде 72173914 (0x44D495A) |
| majorVersion | цяло число | 4 | 2 | Основна версия на файловия формат ZIM (5 или 6) |
| minorVersion | цяло число | 6 | 2 | Малка версия на файловия формат ZIM |
| uuid | цяло число | 8 | 16 | уникален идентификатор на този zim файл |
| статияБрой | цяло число | 24 | 4 | общ брой статии |
| clusterCount | цяло число | 28 | 4 | общ брой клъстери |
| urlPtrPos | цяло число | 32 | 8 | позиция на списъка с указатели на директория, подреден по URL |
| titlePtrPos | цяло число | 40 | 8 | позиция на списъка с указатели на директория, подреден по Title |
| clusterPtrPos | цяло число | 48 | 8 | позиция на списъка с указатели на клъстера |
| mimeListPos | цяло число | 56 | 8 | позиция на списъка с типове MIME (също размер на заглавката) |
| главна страница | цяло число | 64 | 4 | главна страница или 0xffffffff, ако няма главна страница |
| layoutPage | цяло число | 68 | 4 | страница с оформление или 0xffffffffff, ако няма страница с оформление |
| контролна сумаПоз | цяло число | 72 | 8 | указател към md5checksum на този файл без самата контролна сума. Това винаги сочи 16 байта преди края на файла. |