नए कोडेक के लिए सहायता, अपडेट किया गया डिज़ाइन, और सीएलआई के लिए सहायता!
Squoosh, इमेज कंप्रेस करने वाला एक ऐप्लिकेशन है. इसे हमारी टीम ने बनाया है और इसे Chrome Dev Summit 2018 में लॉन्च किया गया था. हमने इसे इसलिए बनाया, ताकि अलग-अलग इमेज कोडेक के साथ एक्सपेरिमेंट करना आसान हो. साथ ही, आधुनिक वेब की क्षमताओं को दिखाया जा सके.
आज हम इस ऐप्लिकेशन का एक बड़ा अपडेट रिलीज़ कर रहे हैं. इसमें ज़्यादा कोडेक के लिए सहायता, नया डिज़ाइन, और कमांड लाइन पर Squoosh का इस्तेमाल करने का एक नया तरीका शामिल है. इसे Squoosh CLI कहा जाता है.
नए कोडेक के लिए सहायता
अब हम OxiPNG, MozJPEG, WebP, और AVIF के लिए सहायता देते हैं. इसके अलावा, आपके ब्राउज़र में पहले से मौजूद कोडेक के लिए भी सहायता दी जाती है. WebAssembly का इस्तेमाल करके, एक नया कोडेक बनाया गया है. कोडेक एनकोडर और डिकोडर को WebAssembly मॉड्यूल के तौर पर कंपाइल करके, उपयोगकर्ता नए कोडेक को ऐक्सेस और उनके साथ एक्सपेरिमेंट कर सकते हैं. भले ही, उनका पसंदीदा ब्राउज़र उन्हें सहायता न देता हो.
कमांड लाइन Squoosh लॉन्च किया जा रहा है!
साल 2018 में लॉन्च होने के बाद से ही, उपयोगकर्ताओं की यह मांग रही है कि वे यूज़र इंटरफ़ेस (यूआई) के बिना, प्रोग्राम के ज़रिए Squoosh के साथ इंटरैक्ट कर सकें. हमें इस बारे में थोड़ी दुविधा थी, क्योंकि हमारा ऐप्लिकेशन, कमांड-लाइन-आधारित कोडेक टूल पर बना यूज़र इंटरफ़ेस (यूआई) था. हालांकि, हम यह समझते हैं कि कई टूल के बजाय, कोडेक के पूरे पैकेज के साथ इंटरैक्ट करने की ज़रूरत क्यों है. Squoosh CLI ठीक यही करता है.
Squoosh CLI का बीटा वर्शन इंस्टॉल करने के लिए, npm i @squoosh/cli चलाएं या इसे
सीधे npx @squoosh/cli [parameters] का इस्तेमाल करके चलाएं.
Squoosh CLI को Node में लिखा गया है. यह ठीक उन्हीं WebAssembly मॉड्यूल का इस्तेमाल करता है जिनका इस्तेमाल PWA
करता है. वर्कर्स का बड़े पैमाने पर इस्तेमाल करके, सभी इमेज को एक साथ डिकोड, प्रोसेस, और एनकोड किया जाता है.
हम Rollup का इस्तेमाल करके, सभी चीज़ों को एक JavaScript फ़ाइल में बंडल करते हैं, ताकि
npx के ज़रिए इंस्टॉलेशन तेज़ी से और आसानी से हो सके. सीएलआई, ऑटो कंप्रेस करने की सुविधा भी देता है. इसमें,
इमेज की क्वालिटी को कम करने की कोशिश की जाती है, ताकि विज़ुअल फ़िडेलिटी को कम न किया जा सके
(Butteraugli मेट्रिक का इस्तेमाल करके).
Squoosh CLI की मदद से, अपने वेब ऐप्लिकेशन में मौजूद इमेज को कई फ़ॉर्मैट में कंप्रेस किया जा सकता है. साथ ही,
<picture> एलिमेंट
का इस्तेमाल करके, ब्राउज़र को सबसे सही वर्शन चुनने दिया जा सकता है. हम Webpack, Rollup, और अन्य बिल्ड टूल के लिए
प्लग-इन बनाने की भी योजना बना रहे हैं, ताकि इमेज कंप्रेस करने की प्रोसेस को आपके बिल्ड प्रोसेस का
हिस्सा बनाया जा सके.
बिल्ड प्रोसेस में Webpack से Rollup में बदलाव
Squoosh बनाने वाली टीम ने इस साल टूलिंग रिपोर्ट के लिए, बिल्ड टूलिंग पर काफ़ी समय बिताया है. साथ ही, हमारी बिल्ड प्रोसेस को Webpack से Rollup में बदलने का फ़ैसला किया है.
इस प्रोजेक्ट की शुरुआत में Webpack का इस्तेमाल किया गया था, क्योंकि हम इसे एक टीम के तौर पर आज़माना चाहते थे. साथ ही, साल 2018 में Webpack ही ऐसा टूल था जो हमें प्रोजेक्ट को अपनी ज़रूरत के हिसाब से सेट अप करने के लिए, पर्याप्त कंट्रोल देता था. समय के साथ, हमें पता चला कि Rollup का आसान प्लग-इन सिस्टम और ईएसएम के साथ इसकी सादगी, इस प्रोजेक्ट के लिए एक सही विकल्प है.
यूज़र इंटरफ़ेस (यूआई) का डिज़ाइन अपडेट किया गया
हमने ऐप्लिकेशन के यूज़र इंटरफ़ेस (यूआई) के डिज़ाइन को भी अपडेट किया है. इसमें blobs को विज़ुअल एलिमेंट के तौर पर दिखाया गया है. यह इस बात पर एक छोटा सा
मज़ाक है कि हम अपने कोड में डेटा को कैसे मैनेज करते हैं. Squoosh, इमेज डेटा को blob के तौर पर पास करता है. इसलिए, डिज़ाइन में कुछ blob शामिल करना
सही लगा.
रंगों के इस्तेमाल को भी बेहतर बनाया गया है, ताकि रंग सिर्फ़ एक ऐक्सेंट न हो, बल्कि यह भी बताया जा सके कि विकल्पों के लिए कौनसी इमेज कॉन्टेक्स्ट में है. कुल मिलाकर, होम पेज थोड़ा ज़्यादा वाइब्रेंट है. साथ ही, टूल ज़्यादा साफ़ और सटीक है.
आगे क्या होगा?
हमारी योजना, Squoosh पर काम जारी रखने की है. इमेज का नया फ़ॉर्मैट रिलीज़ होने पर, हम चाहते हैं कि हमारे उपयोगकर्ताओं के पास एक ऐसी जगह हो जहां वे कोडेक के साथ आसानी से एक्सपेरिमेंट कर सकें. हमें Squoosh CLI के इस्तेमाल को बढ़ाने और इसे वेब ऐप्लिकेशन की बिल्ड प्रोसेस में ज़्यादा इंटिग्रेट करने की भी उम्मीद है.
Squoosh हमेशा से ही ओपन सोर्स रहा है, लेकिन हमने कभी कम्यूनिटी को बढ़ाने पर ध्यान नहीं दिया. साल 2021 में, हमारी योजना योगदान देने वाले लोगों की संख्या बढ़ाने और प्रोजेक्ट में शामिल होने की प्रोसेस को बेहतर बनाने की है.
क्या आपके पास Squoosh के लिए कोई सुझाव है? कृपया हमें हमारे समस्या ट्रैक करने वाले टूल पर बताएं. टीम, सर्दियों की लंबी छुट्टियों पर जा रही है, लेकिन हम आपसे नए साल में संपर्क करने का वादा करते हैं.