तीन मोड, एक फ़ैसला
रफ़्तार के लिए Lightning, बीच का रास्ता Balanced, आकार के लिए Compact। पैनल सीधे बता देता है कि कौन सबसे तेज़ है और कौन सबसे छोटा, 1 से 9 तक के किसी अंक के पीछे छिपाए बिना।
यह पृष्ठ अभी हिन्दी में अनूदित नहीं है, इसलिए अंग्रेज़ी में दिख रहा है। सॉफ़्टवेयर स्वयं हिन्दी में पूरी तरह अनूदित है।
विशेषताएँ
जो सचमुच बना है, परखा गया है और चल रहा है। जो अधूरा है, उसका नाम इसी पृष्ठ पर लिखा है, इशारों में नहीं।
रफ़्तार के लिए Lightning, बीच का रास्ता Balanced, आकार के लिए Compact। पैनल सीधे बता देता है कि कौन सबसे तेज़ है और कौन सबसे छोटा, 1 से 9 तक के किसी अंक के पीछे छिपाए बिना।
मिलान खोजने वाला हिस्सा, एक कैनोनिकल हफ़मैन चरण और दो स्तरों वाली डिकोड तालिका — सब इसी परियोजना का अपना कोड। प्रोग्राम में किसी और की कंप्रेशन लाइब्रेरी जुड़ी हुई नहीं है।
ब्लॉक उतने प्रोसेसरों पर समानांतर दबाए जाते हैं जितनों की आप अनुमति देते हैं, और वह भी उस मेमोरी सीमा के भीतर जो आप सेटिंग में तय करते हैं। कम सीमा पर भी काम पूरा होता है; बस एक-दूसरे पर कम चढ़ता है।
एक ही दस्तावेज़ के कई संस्करण, एक ही ढाँचे वाले निर्यात, एक ही रूप के लॉग: इन सब पर बना साझा शब्दकोश नाप में उतना ही निकला जितना उन्हीं फ़ाइलों से बिना शब्दकोश बने आर्काइव का 16.7%। डिफ़ॉल्ट रूप से बंद है, क्योंकि मिले-जुले फ़ोल्डर में इससे कुछ हासिल नहीं होता।
.jab इसका अपना कंटेनर है: सबसे तेज़ लिखा जाने वाला, हर ब्लॉक की जाँच वाला, और तीनों में इकलौता जो यहाँ पासवर्ड रख सकता है। .zip और .7z सीधे-सादे ढंग से लिखे जाते हैं ताकि कोई भी दूसरा औज़ार उन्हें बिना किसी शिकायत के खोल ले।
ZIP के लिए store और deflate, 7z के लिए LZMA2 फ़ोल्डर सहित पढ़ते समय x86 ब्रांच फ़िल्टर, और tar के लिए GNU लंबे नामों के साथ ustar।
यहाँ लिखी .zip में न AES है, न विस्तारित समय-मुहरें, न यूनिक्स अनुमतियाँ। .7z में हर ठोस ब्लॉक पर एक LZMA2 फ़ोल्डर होता है और प्रति-फ़ाइल फ़िल्टर नहीं होते। बेहतर कंप्रेशन, हर ब्लॉक का SHA-256 या पासवर्ड चाहिए तो जवाब .jab है।
हर ब्लॉक पर एक रिकॉर्ड, 96-बिट नॉन्स और 128-बिट टैग, सब ऑपरेटिंग सिस्टम के अपने अमल से। इस परियोजना में कोई क्रिप्टोग्राफ़ी ख़ुद नहीं गढ़ी जाती।
मैनिफ़ेस्ट — फ़ाइलों के नाम, आकार, समय-मुहरें, विशेषताएँ — एक एन्क्रिप्टेड रिकॉर्ड है, और हर ब्लॉक के SHA-256 तथा CRC-32C रखने वाली चंक तालिका भी वैसी ही है।
ख़ाली सादे पाठ पर बना टैग पढ़ने वाले को सिर्फ़ एक PBKDF2 व्युत्पत्ति के बाद बता देता है कि पासवर्ड ग़लत है, न कि पूरा आर्काइव डिकोड करने के बाद।
.jab के भीतर 1–30% अतिरिक्त डेटा रख लीजिए, फिर ख़राब हुआ ब्लॉक सिर्फ़ बताया नहीं जाएगा बल्कि दोबारा बनाया जा सकेगा। इसे नुक़सान होने से पहले जोड़ना होता है, और इसे सिर्फ़ .jab ही रख सकता है।
हर ब्लॉक पर CRC-32C रहता है; हर ब्लॉक का SHA-256 तब तक चालू रहता है जब तक आप बंद न करें। पहला बताता है कि कोई ब्लॉक ग़लत है, दूसरा किसी चूक के चुपचाप निकल जाने की संभावना को लगभग शून्य कर देता है।
गहराई से जाँच हेडर, फ़ुटर, चंक तालिका और मैनिफ़ेस्ट को संगति के लिए पढ़ती है, फिर हर ब्लॉक डिकोड करती है। सिर्फ़ डिकोड वाली जाँच ढाँचे का चक्र छोड़ देती है। दोनों में से कोई भी कोई फ़ाइल नहीं लिखती।
कोई भी जाँच यह नहीं बता सकती कि आर्काइव से छेड़छाड़ नहीं हुई: जो डेटा बदल सकता है, वह दोनों मान दोबारा गिन भी सकता है। उस सवाल का जवाब सिर्फ़ पासवर्ड वाला आर्काइव देता है।
आर्काइव पहले .partial फ़ाइल में लिखा जाता है और पूरा होने पर ही उसका नाम बदला जाता है, ताकि बीच में रुका हुआ काम कभी ऐसा कुछ न छोड़े जो पूरा दिखता हो।
आर्काइव के बग़ल में .001, .002, … लिखता है — 10, 25, 100 या 700 MB पर, या आपके टाइप किए किसी भी आकार पर। हिस्से अकेले पढ़े नहीं जा सकते; जोड़ते समय कुछ लिखने से पहले हर हिस्सा जाँचा जाता है।
आर्काइव के भीतर पूरी फ़ाइलों की SHA-256 से तुलना करता है, इसलिए सिर्फ़ हूबहू नक़लें ही बताई जाती हैं, और यह भी बताता है कि अतिरिक्त हटाने से कितनी जगह वापस मिलेगी। ख़ाली फ़ाइलें छोड़ दी जाती हैं।
जाँचता है कि कोई फ़ोल्डर अब भी वैसा ही है जैसा संग्रह करते समय था। दोनों तरफ़ के हैश बनते हैं, इसलिए वह बदलाव भी पकड़ा जाता है जिसमें आकार और समय-मुहर वही रह गए हों।
जाँच बताती है कि कौन से टुकड़े ख़राब हैं और कुछ नहीं लिखती। मरम्मत रिकवरी रिकॉर्ड की मदद से ठीक उन्हीं हिस्सों को दोबारा लिखती है जो ग़लत हैं।
न कोई वेब व्यू, न कोई फ़्रेमवर्क: इंटरफ़ेस Direct2D और DirectWrite से बनाया गया है, इसीलिए यह तुरंत खुलता है और कोई काम चलते रहने पर भी अटकता नहीं।
आर्काइव खोलिए, उसकी सामग्री छाँटिए और फ़िल्टर कीजिए, और पाठ, तस्वीरें, PDF — एक पन्ना — तथा ऑडियो बिना पहले निकाले ही देख लीजिए।
काम जिस क्रम में जोड़े गए उसी क्रम में एक-एक करके चलते हैं। प्रतीक्षा में पड़ा काम आगे-पीछे किया या हटाया जा सकता है, चल रहा काम रोका जा सकता है, और लंबा काम खिड़की को रोके बिना पृष्ठभूमि में भेजा जा सकता है।
नाम से आर्काइव ढूँढ़िए, फिर Enter दबाकर मिले हुए आर्काइवों के भीतर झाँकिए। यह साफ़-साफ़ बताता है कि कितने पढ़े गए, कितने मौजूद नहीं थे और कितने खुल नहीं सके।
दबाने, निकालने और जाँचने के लिए दायाँ-क्लिक मेन्यू, सेटिंग स्क्रीन से जोड़े जाते हैं और वहीं से हटाए भी जाते हैं।
इंटरफ़ेस की हर पंक्ति 28 भाषाओं में अनूदित है, और बहुवचन के नियम हर भाषा के अपने हैं, न कि एक अंग्रेज़ी नियम सब पर थोपा गया है।
वही इंजन, स्क्रिप्ट में चलाने लायक़। बनाना, निकालना, सूची देना, परखना और सत्यापित करना — धागों की संख्या, मेमोरी सीमा और अखंडता का स्तर विकल्पों के रूप में। पासवर्ड कभी आर्गुमेंट के रूप में स्वीकार नहीं किया जाता — चल रही प्रक्रिया की पूरी कमांड लाइन उसी खाते की दूसरी प्रक्रियाएँ पढ़ सकती हैं — इसलिए इसे मानक इनपुट से पढ़ा जाता है या बिना दिखाए पूछा जाता है।
मार्गदर्शिका> jab c .\project -o project.jab --mode lightning
scanning 412 files, 268 MB
writing project.jab
output 96.4 MB (36.0% of input)
elapsed 1.84 s — 145.7 MB/s
> jab t project.jab
412 entries · 268 MB checked · structure and every block
ok
> jab x project.jab -o .\restored --overwrite fail
412 files written, 0 skipped
elapsed 0.94 s
न इंस्टॉलर है न कोड पर हस्ताक्षर: 1.0 पोर्टेबल बिल्ड है, और Windows बिना हस्ताक्षर वाले प्रोग्राम पर चेतावनी देगा।
दाएँ से बाएँ लिखावट का ढाँचा नहीं है, इसीलिए अरबी और हिब्रू अनूदित होकर भी रोक रखी गई हैं।
वृद्धिशील आर्काइव किसी फ़ाइल के हटने को दर्ज नहीं कर पाता, और कुंजी फ़ाइलें बनी ही नहीं हैं।
धागों के साथ बढ़ने की क्षमता अब भी RAR से कम है, और RAR5 Normal अब भी छोटा दबाता है।