ما هو ملف ZIM؟
الملفات ذات الامتداد .zim هي أرشيفات تم إنشاؤها لتخزين محتوى Wiki في وضع عدم الاتصال. يعتبر أنسب تنسيق ملف مفتوح لتخزين ويكيبيديا على USB. يخزن محتويات الموقع بتنسيق مضغوط. اسمها يأتي من “Zeno IMproved” الذي كان تنسيق ملف Zeno الأقدم. تتم إدارة ZIM بواسطة مشروع openZIM الذي ترعاه ويكيميديا CH ، وبدعم من مؤسسة ويكيميديا. يمكن فتح ملفات ZIM بواسطة تطبيقات مثل Kiwix و ZIMReader. استضاف مشروع OpenZIM تنفيذ تنسيق ملف ZIM على Github للمساهمة من مجتمع OpenSource.
مواصفات تنسيق ملف ZIM
تم تطوير تنسيق ملف ZIM فوق تنسيق ملف Zeno وهو غير متوافق مع الإصدارات السابقة. مواصفات تنسيق تنسيق ملف ZIM متوفرة على الإنترنت بواسطة openZIM كمرجع للمطور. قدم OpenZIM تطبيق C ++ مفتوح المصدر ، LibZim ، لقراءة وكتابة ملفات ZIM.
يستخدم تنسيق ملف ZIM ضغط LZMA2 لجعل المحتوى مضغوطًا.
رأس ZIM
يبدأ ملف ZIM برأس يكون عند الإزاحة 0. جميع المكونات مبنية على endian الصغير وجميع الأعداد الصحيحة هي أعداد صحيحة بدون إشارة ، مثل uint_16 ، uint_32 ، uint_64.
اسم الحقل | النوع | الأوفست | الطول | الوصف |
---|---|---|---|---|
magicNumber | عدد صحيح | 0 | 4 | الرقم السحري للتعرف على تنسيق الملف ، يجب أن يكون 72173914 (0x44D495A) |
majorVersion | عدد صحيح | 4 | 2 | إصدار رئيسي من تنسيق ملف ZIM (5 أو 6) |
طفيف الإصدار | عدد صحيح | 6 | 2 | إصدار ثانوي من تنسيق ملف ZIM |
uuid | عدد صحيح | 8 | 16 | معرف فريد لملف zim هذا |
articleCount | عدد صحيح | 24 | 4 | العدد الإجمالي للمقالات |
الكتلة | عدد صحيح | 28 | 4 | العدد الإجمالي للكتل |
urlPtrPos | عدد صحيح | 32 | 8 | موضع قائمة مؤشر الدليل مرتبة حسب URL |
العنوان عدد صحيح | 40 | 8 | موضع قائمة مؤشر الدليل مرتبة حسب العنوان | |
الكتلة عدد صحيح | 48 | 8 | موضع قائمة مؤشر الكتلة | |
mimeListPos | عدد صحيح | 56 | 8 | موضع قائمة نوع MIME (حجم الرأس أيضًا) |
الرئيسي الصفحة | عدد صحيح | 64 | 4 | الصفحة الرئيسية أو 0xffffffff في حالة عدم وجود صفحة رئيسية |
تخطيط الصفحة | عدد صحيح | 68 | 4 | صفحة التخطيط أو 0xffffffffff في حالة عدم وجود صفحة تخطيط |
المجموع الاختباري عدد صحيح | 72 | 8 | المؤشر إلى md5checksum لهذا الملف بدون المجموع الاختباري نفسه. يشير هذا دائمًا إلى 16 بايت قبل نهاية الملف |