Τι είναι ένα αρχείο ZIM;
Τα αρχεία με επέκταση .zim είναι αρχεία που δημιουργούνται για την αποθήκευση περιεχομένου Wiki εκτός σύνδεσης. Θεωρείται ως η καταλληλότερη ανοιχτή μορφή αρχείου για την αποθήκευση της Wikipedia σε 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. Όλα τα συστατικά βασίζονται στο little-endian και όλοι οι ακέραιοι αριθμοί είναι ακέραιοι ανυπόγραφοι π.χ. uint_16, uint_32, uint_64.
Όνομα πεδίου | Τύπος | Offset | Μήκος | Περιγραφή |
---|---|---|---|---|
magicNumber | ακέραιος | 0 | 4 | Ο μαγικός αριθμός για την αναγνώριση της μορφής αρχείου, πρέπει να είναι 72173914 (0x44D495A) |
majorVersion | ακέραιος | 4 | 2 | Κύρια έκδοση της μορφής αρχείου ZIM (5 ή 6) |
minorVersion | ακέραιος | 6 | 2 | Μικρή έκδοση της μορφής αρχείου ZIM |
uuid | ακέραιος | 8 | 16 | μοναδικό αναγνωριστικό αυτού του αρχείου zim |
articleCount | ακέραιος | 24 | 4 | συνολικός αριθμός άρθρων |
clusterCount | ακέραιος | 28 | 4 | συνολικός αριθμός συστάδων |
urlPtrPos | ακέραιος | 32 | 8 | θέση της λίστας δεικτών καταλόγου ταξινομημένη κατά διεύθυνση URL |
τίτλοςPtrPos | ακέραιος | 40 | 8 | θέση της λίστας δεικτών καταλόγου με σειρά Τίτλος |
clusterPtrPos | ακέραιος | 48 | 8 | θέση της λίστας δεικτών συμπλέγματος |
mimeListPos | ακέραιος | 56 | 8 | θέση της λίστας τύπων MIME (επίσης μέγεθος κεφαλίδας) |
κύρια σελίδα | ακέραιος | 64 | 4 | κύρια σελίδα ή 0xffffffff αν δεν υπάρχει κύρια σελίδα |
layoutPage | ακέραιος | 68 | 4 | σελίδα διάταξης ή 0xffffffffff εάν δεν υπάρχει σελίδα διάταξης |
checksumPos | ακέραιος | 72 | 8 | δείκτη στο md5checksum αυτού του αρχείου χωρίς το ίδιο το άθροισμα ελέγχου. Αυτό δείχνει πάντα 16 byte πριν από το τέλος του αρχείου. |