aspose.info
NL

ZIM-bestandsindeling - OpenZIM-archiefbestand

Bijgewerkt

Wat is een ZIM-bestand?

Bestanden met de extensie .zim zijn archieven die zijn gemaakt om Wiki-inhoud offline op te slaan. Het wordt beschouwd als het meest geschikte open bestandsformaat om Wikipedia op een USB op te slaan. Het slaat de inhoud van de site op in een compact formaat. De naam komt van “Zeno IMproved”, het eerdere Zeno-bestandsformaat. ZIM wordt onderhouden door openZIM project dat wordt gesponsord door Wikimedia CH en ondersteund door de Wikimedia Foundation. ZIM-bestanden kunnen worden geopend door toepassingen zoals Kiwix en ZIMReader. Het OpenZIM-project heeft de implementatie van het ZIM-bestandsformaat op Github gehost voor bijdragen van de OpenSource-gemeenschap.

Specificaties ZIM-bestandsindeling

Het ZIM-bestandsformaat is ontwikkeld bovenop Zeno-bestandsformaat en is niet achterwaarts compatibel. De formaatspecificaties van het ZIM-bestandsformaat zijn online beschikbaar door openZIM ter referentie van de ontwikkelaar. OpenZIM heeft C++ open source implementatie geleverd, LibZim, voor het lezen en schrijven van ZIM-bestanden.

Het ZIM-bestandsformaat gebruikt LZMA2-compressie om de inhoud compact te maken.

ZIM-bestandsindeling

ZIM-koptekst

Een ZIM-bestand begint met een header die op offset 0 staat. Alle bestanddelen zijn gebaseerd op little-endian en alle gehele getallen zijn gehele getallen zonder teken, dwz uint_16, uint_32, uint_64.

VeldnaamTypeOffsetLengteBeschrijving
magicNumbergeheel getal04Magisch getal om het bestandsformaat te herkennen, moet 72173914 (0x44D495A)
majorVersiegeheel getal42Hoofdversie van het ZIM-bestandsformaat (5 of 6)
minorVersiegeheel getal62Kleine versie van het ZIM-bestandsformaat
uuidgeheel getal816unieke id van dit zim-bestand
articleCountgeheel getal244totaal aantal artikelen
clusterCountgeheel getal284totaal aantal clusters
urlPtrPosgeheel getal328positie van de directory-pointerlijst geordend op URL
titlePtrPosgeheel getal408positie van de directory pointerlist geordend op Titel
clusterPtrPosgeheel getal488positie van de lijst met clusteraanwijzers
mimeListPosgeheel getal568positie van de MIME-typelijst (ook kopgrootte)
mainPagegeheel getal644hoofdpagina of 0xffffffff als er geen hoofdpagina
layoutPaginageheel getal684lay-outpagina of 0xffffffffff als er geen lay-outpagina is
checksumPosgeheel getal728pointer naar de md5checksum van dit bestand zonder de checksum zelf. Dit wijst altijd 16 bytes voor het einde van het bestand.

Referenties