ब्रॉटली: Difference between revisions

From Vigyanwiki
(Created page with "{{Short description|Open source compression library}} {{About|the compression algorithm|Brötli, the Swiss-German bread roll it is named after|Bread roll#Europe}} {{Infobox so...")
 
No edit summary
Line 1: Line 1:
{{Short description|Open source compression library}}
{{Short description|Open source compression library}}
{{About|the compression algorithm|Brötli, the Swiss-German bread roll it is named after|Bread roll#Europe}}
{{About|संपीड़न एल्गोरिथ्म|ब्रॉटली, स्विस-जर्मन ब्रेड रोल के नाम पर इसका नाम रखा गया है|ब्रेड रोल या यूरोप}}
{{Infobox software
{{Infobox software
| name                  = Brotli
| name                  = Brotli
Line 21: Line 21:
}}
}}


ब्रॉटली [[Google]] द्वारा विकसित एक [[दोषरहित संपीड़न]] है। यह सामान्य प्रयोजन [[LZ77 और LZ78]] दोषरहित संपीड़न एल्गोरिथ्म, [[हफ़मैन कोडिंग]] और 2-ऑर्डर [[संदर्भ मॉडल]]िंग के संयोजन का उपयोग करता है।
ब्रॉटली [[Google|गूगल]] द्वारा विकसित एक [[दोषरहित संपीड़न]] है। यह सामान्य प्रयोजन [[LZ77 और LZ78]] दोषरहित संपीड़न एल्गोरिथ्म, [[हफ़मैन कोडिंग]] और 2-ऑर्डर [[संदर्भ मॉडल|संदर्भ मॉडलिंग]] के संयोजन का उपयोग करता है। ब्रॉटली का उपयोग मुख्य रूप से [[वेब सर्वर]] और [[सामग्री वितरण नेटवर्क|कंटेंट डिलीवरी नेटवर्क]] द्वारा [[HTTP संपीड़न|एचटीटीपी संपीड़न]] के लिए किया जाता है, जिससे इंटरनेट वेबसाइटें तेजी से लोड होती हैं। [[gzip|गज़िप]] का उत्तराधिकारी, यह सभी प्रमुख वेब ब्राउज़रों द्वारा समर्थित है और तेजी से लोकप्रिय हो गया है, क्योंकि यह गज़िप की तुलना में उत्तम संपीड़न प्रदान करता है।
ब्रॉटली का उपयोग मुख्य रूप से [[वेब सर्वर]] और [[सामग्री वितरण नेटवर्क]] द्वारा [[HTTP संपीड़न]] के लिए किया जाता है, जिससे इंटरनेट वेबसाइटें तेजी से लोड होती हैं। [[gzip]] का उत्तराधिकारी, यह सभी प्रमुख वेब ब्राउज़रों द्वारा समर्थित है और तेजी से लोकप्रिय हो गया है, क्योंकि यह gzip की तुलना में बेहतर संपीड़न प्रदान करता है।


== इतिहास ==
== इतिहास ==
Google के कर्मचारियों [[जिरकी अलाकुइजाला]] और ज़ोल्टन स्ज़ाबादका ने शुरुआत में [[वेब ओपन फ़ॉन्ट प्रारूप]] वेब फ़ॉन्ट के प्रसारण के आकार को कम करने के लिए 2013 में ब्रॉटली विकसित किया था।<ref>{{citation |last=Sheeter |first=Rod |chapter=Smaller Fonts with WOFF 2.0 and unicode-range |date=February 18, 2015 |title=Google Open Source Blog |location=Mountain View, CA |publisher=opensource.googleblog.com |chapter-url=https://developers.googleblog.com/2015/02/smaller-fonts-with-woff-20-and-unicode.html}}.</ref> अलाकुइजाला और स्ज़ाबादका ने 2013 के दौरान ब्रॉटली विनिर्देश पूरा किया{{ndash}}2016. विनिर्देश के साथ दो अतिरिक्त लेखकों, एवगेनी क्लिउचनिकोव और लॉड वांडेवेन द्वारा विकसित एक संदर्भ कार्यान्वयन भी शामिल था, जिन्होंने पहले 2013 में [[DEFLATE]] और gzip संगत संपीड़न के Google के [[zopfli]] कार्यान्वयन को विकसित किया था।<ref name="comparison">{{citation |first1=Jyrki |last1=Alakuijala |first2=Evgenii |last2=Kliuchnikov |first3=Zoltan |last3=Szabadka |first4=Lode |last4=Vandevenne |chapter=Comparison of Brotli, Deflate, Zopfli, LZMA, LZHAM and Bzip2 Compression Algorithms |title=The Comprehensive R Archive Network |date=22 September 2015 |publisher=r-project.org |chapter-url=https://cran.r-project.org/web/packages/brotli/vignettes/brotli-2015-09-22.pdf}}.</ref>{{rp|1}} ज़ोफ़्फ़्ली के विपरीत, जो मौजूदा डेटा प्रारूप विनिर्देश का पुन: कार्यान्वयन था, ब्रॉटली एक नया डेटा प्रारूप था और लेखकों को संपीड़न अनुपात को और भी बेहतर बनाने की अनुमति देता था।<ref name="intro" />
गूगल  के एम्प्लोयी [[जिरकी अलाकुइजाला]] और ज़ोल्टन स्ज़ाबादका ने प्रारंभ में [[वेब ओपन फ़ॉन्ट प्रारूप]] वेब फ़ॉन्ट के प्रसारण के आकार को कम करने के लिए 2013 में ब्रॉटली विकसित किया था।<ref>{{citation |last=Sheeter |first=Rod |chapter=Smaller Fonts with WOFF 2.0 and unicode-range |date=February 18, 2015 |title=Google Open Source Blog |location=Mountain View, CA |publisher=opensource.googleblog.com |chapter-url=https://developers.googleblog.com/2015/02/smaller-fonts-with-woff-20-and-unicode.html}}.</ref> अलाकुइजाला और स्ज़ाबादका ने 2013 के समय  ब्रॉटली विनिर्देश पूरा किया{{ndash}}2016. विनिर्देश के साथ दो अतिरिक्त लेखकों एवगेनी क्लिउचनिकोव और लॉड वांडेवेन द्वारा विकसित एक संदर्भ कार्यान्वयन भी सम्मिलित था, जिन्होंने पहले 2013 में [[DEFLATE]] और गज़िप संगत संपीड़न के गूगल  के [[zopfli|ज़ोपफ़्लि]] कार्यान्वयन को विकसित किया था।<ref name="comparison">{{citation |first1=Jyrki |last1=Alakuijala |first2=Evgenii |last2=Kliuchnikov |first3=Zoltan |last3=Szabadka |first4=Lode |last4=Vandevenne |chapter=Comparison of Brotli, Deflate, Zopfli, LZMA, LZHAM and Bzip2 Compression Algorithms |title=The Comprehensive R Archive Network |date=22 September 2015 |publisher=r-project.org |chapter-url=https://cran.r-project.org/web/packages/brotli/vignettes/brotli-2015-09-22.pdf}}.</ref>{{rp|1}} ज़ोफ़्फ़्ली के विपरीत जो उपस्थित डेटा प्रारूप विनिर्देश का पुन: कार्यान्वयन था, ब्रॉटली एक नया डेटा प्रारूप था और लेखकों को संपीड़न अनुपात को और भी उत्तम बनाने की अनुमति देता था।<ref name="intro" />


HTTP स्ट्रीम संपीड़न (सामग्री-एन्कोडिंग प्रकार br) के लिए सितंबर 2015 में ब्रॉटली विनिर्देश को सामान्यीकृत किया गया था। इस सामान्यीकृत पुनरावृत्ति ने अक्सर उपयोग किए जाने वाले शब्दों और वाक्यांशों के पूर्वनिर्धारित शब्दकोश का उपयोग करके संपीड़न अनुपात में भी सुधार किया। Google सॉफ़्टवेयर इंजीनियरों द्वारा सितंबर 2015 में जारी किए गए ब्रॉटली के संस्करण में सामान्य [[दोषरहित डेटा संपीड़न]] में संवर्द्धन शामिल था, जिसमें HTTP संपीड़न के उपयोग पर विशेष जोर दिया गया था। एनकोडर को आंशिक रूप से फिर से लिखा गया था, जिसके परिणामस्वरूप संपीड़न अनुपात में सुधार हुआ, एनकोडर और डिकोडर दोनों में तेजी आई है, स्ट्रीमिंग एपीआई में सुधार हुआ है, और अधिक संपीड़न गुणवत्ता स्तर जोड़े गए हैं। इसके अतिरिक्त, नई रिलीज़ डिकोडिंग मेमोरी में कमी के साथ सभी प्लेटफार्मों पर प्रदर्शन में सुधार दिखाती है।<ref name="intro"/>
एचटीटीपी स्ट्रीम संपीड़न (कंटेंट-एन्कोडिंग टाइप br) के लिए सितंबर 2015 में ब्रॉटली विनिर्देश को सामान्यीकृत किया गया था। इस सामान्यीकृत पुनरावृत्ति ने अधिकांशतः उपयोग किए जाने वाले शब्दों और वाक्यांशों के पूर्वनिर्धारित शब्दकोश का उपयोग करके संपीड़न अनुपात में भी सुधार किया। गूगल  सॉफ़्टवेयर इंजीनियरों द्वारा सितंबर 2015 में जारी किए गए ब्रॉटली के संस्करण में सामान्य [[दोषरहित डेटा संपीड़न|लोसलेस डेटा संपीड़न]] में संवर्द्धन सम्मिलित था, जिसमें एचटीटीपी संपीड़न के उपयोग पर विशेष जोर दिया गया था। एनकोडर को आंशिक रूप से फिर से लिखा गया था, जिसके परिणामस्वरूप संपीड़न अनुपात में सुधार हुआ, एनकोडर और डिकोडर दोनों में तेजी आई है, स्ट्रीमिंग एपीआई में सुधार हुआ है, और अधिक संपीड़न गुणवत्ता स्तर जोड़े गए हैं। इसके अतिरिक्त नई रिलीज़ डिकोडिंग मेमोरी में कमी के साथ सभी प्लेटफार्मों पर प्रदर्शन में सुधार दिखाती है।<ref name="intro"/>
 
[[इंटरनेट इंजीनियरिंग टास्क फोर्स]] ने टिप्पणियों के लिए सूचनात्मक अनुरोध के रूप में ब्रॉटली संपीड़ित डेटा प्रारूप विनिर्देश को स्वीकृति दे दी ({{IETF RFC|7932}}) जुलाई 2016 में.<ref name="ietf">{{citation |last1=Alakuijala |first1=Jyrki |last2=Szabadka |first2=Zoltan |title=RFC 7932: Brotli Compressed Data Format |series=Internet Engineering Task Force Request for Comments |year=2016 |location=Fremont, CA |publisher=IETF Trust}}.</ref> ब्रॉटली डेटा प्रारूप वेब ओपन फ़ॉन्ट प्रारूप के दूसरे पुनरावृत्ति का एक अभिन्न अंग है,<ref name="ietf" />{{rp|3}} जिसे W3C में फ़ॉन्ट प्रौद्योगिकी मानकीकरण के लिए नेशनल एकेडमी ऑफ टेलीविज़न आर्ट्स एंड साइंसेज से 2021 प्रौद्योगिकी और इंजीनियरिंग एमी पुरस्कार में मान्यता दी गई थी।<ref name="w3c archive">{{Cite web |date=2022-06-01 |title=W3C Receives Emmy Award for Standardizing Font Technology |url=https://www.w3.org/blog/news/archives/9514}}</ref><ref name="w3c emmy press">{{Cite web |date=2022-06-01 |title=Changing the face of the web: W3C Web Fonts Working Group and MPEG recognized with a Technology & Engineering Emmy Award |url=https://www.w3.org/2022/04/pressrelease-woff-emmyaward.html.en}}</ref>
 
पिछले कुछ वर्षों में वेब ब्राउज़र में ब्रॉटली समर्थन जोड़ा गया है, जुलाई 2022 तक विश्व भर के 96% उपयोगकर्ता इस प्रारूप का समर्थन करने वाले ब्राउज़र का उपयोग कर रहे हैं।<ref name="caniuse">{{Cite web |date=2022-06-28 |title=क्या मैं उपयोग कर सकता हूँ... - ब्रॉटली|url=https://caniuse.com/brotli}}</ref>
 
2016 में ड्रॉपबॉक्स ने दुर्भावनापूर्ण क्लाइंट के विपरीत अधिक सुरक्षित होने की अपनी आवश्यकता को पूरा करने के लिए रस्ट में ब्रॉटली को फिर से प्रयुक्त किया। 2018 में उन्होंने विलुप्त सुविधा को प्रयुक्त किया जिससे कोई व्यक्ति ब्रॉटली संपीड़ित फ़ाइल में जोड़ सकते है।<ref>[https://dropbox.tech/infrastructure/lossless-compression-with-brotli Lossless compression with Brotli in Rust for a bit of Pied Piper on the backend], Daniel Reiter Horn  and Mehant Baid,  2016-06-29. </ref><ref>[https://dropbox.tech/infrastructure/-broccoli--syncing-faster-by-syncing-less], Rishabh Jain  and Daniel Reiter Horn, 2020-08-04</ref><ref>[https://github.com/google/brotli/issues/628 append to brotli compressed file], github ticket to google Brotli, listing implementation ideas, 2017-12-06</ref>


[[इंटरनेट इंजीनियरिंग टास्क फोर्स]] ने टिप्पणियों के लिए सूचनात्मक अनुरोध के रूप में ब्रॉटली संपीड़ित डेटा प्रारूप विनिर्देश को मंजूरी दे दी ({{IETF RFC|7932}}) जुलाई 2016 में.<ref name="ietf">{{citation |last1=Alakuijala |first1=Jyrki |last2=Szabadka |first2=Zoltan |title=RFC 7932: Brotli Compressed Data Format |series=Internet Engineering Task Force Request for Comments |year=2016 |location=Fremont, CA |publisher=IETF Trust}}.</ref> ब्रॉटली डेटा प्रारूप वेब ओपन फ़ॉन्ट प्रारूप के दूसरे पुनरावृत्ति का एक अभिन्न अंग है,<ref name="ietf" />{{rp|3}} जिसे W3C में फ़ॉन्ट प्रौद्योगिकी मानकीकरण के लिए नेशनल एकेडमी ऑफ टेलीविज़न आर्ट्स एंड साइंसेज से 2021 प्रौद्योगिकी और इंजीनियरिंग एमी पुरस्कार में मान्यता दी गई थी।<ref name="w3c archive">{{Cite web |date=2022-06-01 |title=W3C Receives Emmy Award for Standardizing Font Technology |url=https://www.w3.org/blog/news/archives/9514}}</ref><ref name="w3c emmy press">{{Cite web |date=2022-06-01 |title=Changing the face of the web: W3C Web Fonts Working Group and MPEG recognized with a Technology & Engineering Emmy Award |url=https://www.w3.org/2022/04/pressrelease-woff-emmyaward.html.en}}</ref>
पिछले कुछ वर्षों में वेब ब्राउज़र में ब्रॉटली समर्थन जोड़ा गया है, जुलाई 2022 तक दुनिया भर के 96% उपयोगकर्ता इस प्रारूप का समर्थन करने वाले ब्राउज़र का उपयोग कर रहे हैं।<ref name="caniuse">{{Cite web |date=2022-06-28 |title=क्या मैं उपयोग कर सकता हूँ... - ब्रॉटली|url=https://caniuse.com/brotli}}</ref>
2016 में ड्रॉपबॉक्स ने दुर्भावनापूर्ण क्लाइंट के खिलाफ अधिक सुरक्षित होने की अपनी आवश्यकता को पूरा करने के लिए रस्ट में ब्रॉटली को फिर से लागू किया। 2018 में उन्होंने गायब सुविधा को लागू किया ताकि कोई व्यक्ति ब्रॉटली संपीड़ित फ़ाइल में जोड़ सके।<ref>[https://dropbox.tech/infrastructure/lossless-compression-with-brotli Lossless compression with Brotli in Rust for a bit of Pied Piper on the backend], Daniel Reiter Horn  and Mehant Baid,  2016-06-29. </ref><ref>[https://dropbox.tech/infrastructure/-broccoli--syncing-faster-by-syncing-less], Rishabh Jain  and Daniel Reiter Horn, 2020-08-04</ref><ref>[https://github.com/google/brotli/issues/628 append to brotli compressed file], github ticket to google Brotli, listing implementation ideas, 2017-12-06</ref>




== एल्गोरिथम ==
== एल्गोरिथम ==
ब्रॉटली का नया फ़ाइल प्रारूप इसके लेखकों को कई एल्गोरिथम और प्रारूप-स्तरीय सुधारों द्वारा डिफ्लेट में सुधार करने की अनुमति देता है: शाब्दिक और प्रतिलिपि दूरी के लिए संदर्भ मॉडल का उपयोग, पिछली दूरी के माध्यम से प्रतिलिपि दूरी का वर्णन, एन्ट्रॉपी कोड चयन में मूव-टू-फ्रंट कतार का उपयोग , शाब्दिक और प्रतिलिपि लंबाई की संयुक्त-एन्ट्रॉपी कोडिंग, ब्लॉक विभाजन में ग्राफ़ एल्गोरिदम का उपयोग, और एक बड़ी बैकवर्ड संदर्भ विंडो उदाहरण सुधार हैं।
ब्रॉटली का नया फ़ाइल प्रारूप इसके लेखकों को कई एल्गोरिथम और प्रारूप-स्तरीय सुधारों द्वारा डिफ्लेट में सुधार करने की अनुमति देता है: शाब्दिक और प्रतिलिपि दूरी के लिए संदर्भ मॉडल का उपयोग, पिछली दूरी के माध्यम से प्रतिलिपि दूरी का वर्णन, एन्ट्रॉपी कोड चयन में मूव-टू-फ्रंट केयूए का उपयोग , शाब्दिक और प्रतिलिपि लंबाई की संयुक्त-एन्ट्रॉपी कोडिंग, ब्लॉक विभाजन में ग्राफ़ एल्गोरिदम का उपयोग, और एक बड़ी बैकवर्ड संदर्भ विंडो उदाहरण सुधार हैं।
 
अधिकांश सामान्य प्रयोजन संपीड़न एल्गोरिदम के विपरीत, ब्रॉटली गतिशील रूप से पॉप्युलेट (स्लाइडिंग विंडो) शब्दकोश के अतिरिक्त , एक पूर्वनिर्धारित शब्दकोश का उपयोग करता है, जिसका आकार लगभग 120 केआईबी है। पूर्वनिर्धारित शब्दकोश में 13000 से अधिक सामान्य शब्द, वाक्यांश और टेक्स्ट और एचटीएमएल दस्तावेज़ों के एक बड़े टेक्स्ट संग्रह से प्राप्त अन्य उपस्ट्रिंग सम्मिलित हैं।<ref>{{citation |last=Chirgwin |first=Richard |chapter=Google's new squeeze: Brotli compression open-sourced |title=The Register |date=September 23, 2015 |publisher=theregister.co.uk |chapter-url=https://www.theregister.co.uk/2015/09/23/googles_brotli_compression_opensourced }}.</ref><ref name="comparison" /> पूर्वनिर्धारित शब्दकोश का उपयोग संपीड़न को बढ़ाने के लिए दिखाया गया है जहां फ़ाइल में अधिकतर समान्यत: उपयोग किए जाने वाले शब्द होते हैं।<ref>{{cite book |doi=10.1109/CIT.2007.22 |chapter=Word Indexing for Mobile Device Data Representations |title=7th IEEE International Conference on Computer and Information Technology (CIT 2007) |pages=399–404 |year=2007 |last1=Larkin |first1=Henry |isbn=978-0-7695-2983-7 |s2cid=8707991}}.</ref> चूँकि, अलाकुइजाला के अनुसार, पूर्वनिर्धारित शब्दकोश ब्रॉटली की सामान्यता से विचलित नहीं होता है, और उत्तम संपीड़न का मुख्य कारण नहीं है। उनका प्रमाण है कि ऑल-ज़ीरो डिक्शनरी के साथ ब्रॉटली एल्गोरिथम की प्रगति के कारण अभी भी वेब कंटेंट पर अच्छा प्रदर्शन करता है।<ref>{{cite web |last1=Alakuijala |first1=Jyrki |title=स्टेटिक डिक्शनरी के कारण ब्रॉटली उत्कृष्ट संपीड़न घनत्व तक नहीं पहुँच पाता है। अधिकता ...|url=https://news.ycombinator.com/item?id=27163981 |website=Hacker News |date=May 15, 2021}}</ref>
 
ब्रॉटली की स्लाइडिंग विंडो 16 [[MiB]] तक सीमित है। यह सीमित संसाधनों वाले मोबाइल फोन पर डिकोडिंग को सक्षम बनाता है, किन्तु  बड़ी फ़ाइलों वाले संपीड़न बेंचमार्क पर ब्रॉटली को व्यर्थ  प्रदर्शन देता है। छोटी विंडो आकार की बाधाओं को बड़ी विंडो ब्रॉटली का उपयोग करके कम किया जा सकता है, जो RFC7932 (ब्रॉटली उचित) के साथ संगत नहीं है।<ref>{{cite web |last1=Kliuchnikov |first1=Eugene |title=How to use large window sizes? · Issue #639 · google/brotli |url=https://github.com/google/brotli/issues/639 |website=GitHub |language=en |quote=Currently we are testing "Large Window Brotli" extension that will allow up to 1GiB window. [...] "Large Window Brotli" is landed.}}</ref>


अधिकांश सामान्य प्रयोजन संपीड़न एल्गोरिदम के विपरीत, ब्रॉटली गतिशील रूप से पॉप्युलेट (स्लाइडिंग विंडो) शब्दकोश के अलावा, एक पूर्वनिर्धारित शब्दकोश का उपयोग करता है, जिसका आकार लगभग 120 KiB है। पूर्वनिर्धारित शब्दकोश में 13000 से अधिक सामान्य शब्द, वाक्यांश और पाठ और HTML दस्तावेज़ों के एक बड़े पाठ संग्रह से प्राप्त अन्य उपस्ट्रिंग शामिल हैं।<ref>{{citation |last=Chirgwin |first=Richard |chapter=Google's new squeeze: Brotli compression open-sourced |title=The Register |date=September 23, 2015 |publisher=theregister.co.uk |chapter-url=https://www.theregister.co.uk/2015/09/23/googles_brotli_compression_opensourced }}.</ref><ref name="comparison" />पूर्वनिर्धारित शब्दकोश का उपयोग संपीड़न को बढ़ाने के लिए दिखाया गया है जहां फ़ाइल में अधिकतर आमतौर पर उपयोग किए जाने वाले शब्द होते हैं।<ref>{{cite book |doi=10.1109/CIT.2007.22 |chapter=Word Indexing for Mobile Device Data Representations |title=7th IEEE International Conference on Computer and Information Technology (CIT 2007) |pages=399–404 |year=2007 |last1=Larkin |first1=Henry |isbn=978-0-7695-2983-7 |s2cid=8707991}}.</ref> हालाँकि, अलाकुइजाला के अनुसार, पूर्वनिर्धारित शब्दकोश ब्रॉटली की सामान्यता से विचलित नहीं होता है, और बेहतर संपीड़न का मुख्य कारण नहीं है। उनका दावा है कि ऑल-ज़ीरो डिक्शनरी के साथ ब्रॉटली एल्गोरिथम की प्रगति के कारण अभी भी वेब सामग्री पर अच्छा प्रदर्शन करता है।<ref>{{cite web |last1=Alakuijala |first1=Jyrki |title=स्टेटिक डिक्शनरी के कारण ब्रॉटली उत्कृष्ट संपीड़न घनत्व तक नहीं पहुँच पाता है। अधिकता ...|url=https://news.ycombinator.com/item?id=27163981 |website=Hacker News |date=May 15, 2021}}</ref>
ब्रॉटली की स्लाइडिंग विंडो 16 [[MiB]] तक सीमित है। यह सीमित संसाधनों वाले मोबाइल फोन पर डिकोडिंग को सक्षम बनाता है, लेकिन बड़ी फ़ाइलों वाले संपीड़न बेंचमार्क पर ब्रॉटली को खराब प्रदर्शन देता है। छोटी विंडो आकार की बाधाओं को बड़ी विंडो ब्रॉटली का उपयोग करके कम किया जा सकता है, जो RFC7932 (ब्रॉटली उचित) के साथ संगत नहीं है।<ref>{{cite web |last1=Kliuchnikov |first1=Eugene |title=How to use large window sizes? · Issue #639 · google/brotli |url=https://github.com/google/brotli/issues/639 |website=GitHub |language=en |quote=Currently we are testing "Large Window Brotli" extension that will allow up to 1GiB window. [...] "Large Window Brotli" is landed.}}</ref>




== नाम ==
== नाम ==
जबकि Google के डिफ्लेट कंप्रेशन एल्गोरिदम के [[चोटी]]्लि कार्यान्वयन का नाम ज़ोपफ़ली के नाम पर रखा गया है, जो स्नैक-आकार के ज़ोपफ़ के लिए [[स्विस जर्मन]] शब्द है, ब्रोटली का नाम ब्रेड रोल #यूरोप के लिए स्विस जर्मन शब्द ब्रॉटली के नाम पर रखा गया है।<ref name="intro">{{citation |last=Szabadka |first=Zoltan |date=September 22, 2015 |chapter=Introducing Brotli: a new compression algorithm for the internet |title=Google Open Source Blog |chapter-url=https://opensource.googleblog.com/2015/09/introducing-brotli-new-compression.html |location=Mountain View, CA |publisher=opensource.googleblog.com}}.</ref> Google का ब्रॉटली विनिर्देशन का कार्यान्वयन 2016 में अनुमेय मुफ्त सॉफ्टवेयर लाइसेंस [[मेरा लाइसेंस]] की शर्तों के तहत जारी किया गया था। ब्रॉटली विनिर्देश का औपचारिक सत्यापन स्वतंत्र रूप से [[मार्क एडलर]] द्वारा कार्यान्वित किया गया था।<ref name="ietf" />{{rp|126}} [[zlib]]/gzip संपीड़न प्रारूप और लाइब्रेरी के सह-लेखकों में से एक। एडलर का कार्यान्वयन समान अनुमेय [[अपाचे लाइसेंस]] की शर्तों के तहत जारी किया गया था।<ref>{{citation |last=Adler |first=Mark |date=Jan 26, 2015 |chapter=Brotli specification review and verification |title=Adler brotli |chapter-url=https://github.com/madler/brotli/blob/master/README |location=San Francisco |publisher=GitHub}}.</ref> विनिर्देश के अन्य कार्यान्वयन भी मौजूद हैं, जिनमें स्रोत-से-स्रोत [[ मिला हुआ ]] भाषा भी शामिल है।
जबकि गूगल के डिफ्लेट कंप्रेशन एल्गोरिदम के ज़ोपफ़्लि कार्यान्वयन का नाम ज़ोपफ़ली के नाम पर रखा गया है, जो स्नैक-आकार के ज़ोपफ़ के लिए [[स्विस जर्मन]] शब्द है, ब्रोटली का नाम ब्रेड रोल या यूरोप के लिए स्विस जर्मन शब्द ब्रॉटली के नाम पर रखा गया है।<ref name="intro">{{citation |last=Szabadka |first=Zoltan |date=September 22, 2015 |chapter=Introducing Brotli: a new compression algorithm for the internet |title=Google Open Source Blog |chapter-url=https://opensource.googleblog.com/2015/09/introducing-brotli-new-compression.html |location=Mountain View, CA |publisher=opensource.googleblog.com}}.</ref> गूगल  का ब्रॉटली विनिर्देशन का कार्यान्वयन 2016 में अनुमेय मुफ्त सॉफ्टवेयर लाइसेंस [[मेरा लाइसेंस|माय लाइसेंस]] की नियमों के अनुसार जारी किया गया था। ब्रॉटली विनिर्देश का औपचारिक सत्यापन स्वतंत्र रूप से [[मार्क एडलर]] द्वारा कार्यान्वित किया गया था।<ref name="ietf" />{{rp|126}} [[zlib|ज़्लिब]]/गज़िप संपीड़न प्रारूप और लाइब्रेरी के सह-लेखकों में से एक एडलर का कार्यान्वयन समान अनुमेय [[अपाचे लाइसेंस]] की नियमों के अनुसार जारी किया गया था।<ref>{{citation |last=Adler |first=Mark |date=Jan 26, 2015 |chapter=Brotli specification review and verification |title=Adler brotli |chapter-url=https://github.com/madler/brotli/blob/master/README |location=San Francisco |publisher=GitHub}}.</ref> विनिर्देश के अन्य कार्यान्वयन भी उपस्थित हैं, जिनमें स्रोत-से-स्रोत [[ मिला हुआ ]] लैंग्वेज भी सम्मिलित है।


== अनुप्रयोग ==
== अनुप्रयोग ==
ब्रॉटली संपीड़न का उपयोग आम तौर पर वेब पर gzip के विकल्प के रूप में किया जाता है, क्योंकि ब्रॉटली बेहतर समग्र संपीड़न प्रदान करता है।<ref name="estimator">{{Cite web |last=Calvano |first=Paul |date=2018-07-25 |title=Brotli Compression: How Much Will It Reduce Your Content? |url=https://paulcalvano.com/2018-07-25-brotli-compression-how-much-will-it-reduce-your-content/ |access-date=2021-03-07}}</ref> जीज़िप कम्प्रेशन की तुलना में, ब्रॉटली से संपीड़ित जावास्क्रिप्ट फ़ाइलें लगभग 15% छोटी होती हैं, HTML फ़ाइलें लगभग 20% छोटी होती हैं, और CSS फ़ाइलें लगभग 16% छोटी होती हैं।<ref name="siteground-support">{{Cite web |last=Pandjarov |first=Hristo |date=2021-01-13 |title=ब्रॉटली कम्प्रेशन एल्गोरिथम के साथ अधिक साइट गति प्राप्त होती है|url=https://www.siteground.com/blog/brotli-compression/ |access-date=2021-03-07 |website=[[SiteGround]]}}</ref>
ब्रॉटली संपीड़न का उपयोग सामान्यतः वेब पर गज़िप के विकल्प के रूप में किया जाता है, क्योंकि ब्रॉटली उत्तम समग्र संपीड़न प्रदान करता है।<ref name="estimator">{{Cite web |last=Calvano |first=Paul |date=2018-07-25 |title=Brotli Compression: How Much Will It Reduce Your Content? |url=https://paulcalvano.com/2018-07-25-brotli-compression-how-much-will-it-reduce-your-content/ |access-date=2021-03-07}}</ref> जीज़िप कम्प्रेशन की तुलना में, ब्रॉटली से संपीड़ित जावास्क्रिप्ट फ़ाइलें लगभग 15% छोटी होती हैं, एचटीएमएल फ़ाइलें लगभग 20% छोटी होती हैं, और CSS फ़ाइलें लगभग 16% छोटी होती हैं।<ref name="siteground-support">{{Cite web |last=Pandjarov |first=Hristo |date=2021-01-13 |title=ब्रॉटली कम्प्रेशन एल्गोरिथम के साथ अधिक साइट गति प्राप्त होती है|url=https://www.siteground.com/blog/brotli-compression/ |access-date=2021-03-07 |website=[[SiteGround]]}}</ref>
संदर्भ कार्यान्वयन एक कमांड-लाइन प्रोग्राम शिप करता है {{code|brotli}} के समान {{code|gzip}},<ref>{{cite web |title=ब्रॉटली(1) मैनुअल पेज|url=https://manned.org/brotli.1 |website=manned.org}}</ref> लेकिन यूनिक्स जैसी दुनिया में एक साधारण कंप्रेसर के रूप में इसका उपयोग दुर्लभ है। लिबर्चिव डेवलपर्स इसका कच्चा स्ट्रीम प्रारूप ढूंढते हैं <code>.br</code> फ़ाइलों का समर्थन करना कठिन है, क्योंकि फ़ाइल प्रारूप को इंगित करने के लिए कोई [[जादुई संख्या (प्रोग्रामिंग)]] नहीं है।<ref>{{cite web |title=Brotli support · Issue #1238 · libarchive/libarchive |url=https://github.com/libarchive/libarchive/issues/1238#issuecomment-529746683 |website=GitHub |language=en |quote=Without a magic signature, libarchive cannot automatically recognize the file type, so it cannot automatically decompress. (Libarchive does not consider the file name, only the contents.)}}</ref>
 
संदर्भ कार्यान्वयन {{code|gzip}} <ref>{{cite web |title=ब्रॉटली(1) मैनुअल पेज|url=https://manned.org/brotli.1 |website=manned.org}}</ref> के समान एक कमांड-लाइन प्रोग्राम {{code|brotli}} शिप करता है किन्तु यूनिक्स जैसी दुनिया में एक साधारण कंप्रेसर के रूप में उपयोग दुर्लभ है। लिबर्चिव डेवलपर्स को <code>.br</code> फ़ाइलों के रॉ स्ट्रीम प्रारूप का समर्थन करना मुश्किल लगता है, क्योंकि फ़ाइल प्रारूप को निरुपित  करने के लिए कोई जादुई संख्या नहीं है<ref>{{cite web |title=Brotli support · Issue #1238 · libarchive/libarchive |url=https://github.com/libarchive/libarchive/issues/1238#issuecomment-529746683 |website=GitHub |language=en |quote=Without a magic signature, libarchive cannot automatically recognize the file type, so it cannot automatically decompress. (Libarchive does not consider the file name, only the contents.)}}</ref>




Line 52: Line 57:


=== ब्राउज़र और अन्य क्लाइंट ===
=== ब्राउज़र और अन्य क्लाइंट ===
* [[मोज़िला फ़ायरफ़ॉक्स]] ने संस्करण 44 (26 जनवरी 2016 को जारी) में बीआर सामग्री-एन्कोडिंग विधि के लिए समर्थन पेश किया।<ref>{{Citation|chapter = Firefox 44 release notes|chapter-url = https://www.mozilla.org/en-US/firefox/44.0/releasenotes/|last=Goodger|first=Ben|display-authors=et al|date=26 January 2016|title=Mozilla Firefox|publisher = Mozilla Foundation}}.</ref>
* [[मोज़िला फ़ायरफ़ॉक्स]] ने संस्करण 44 (26 जनवरी 2016 को जारी) में बीआर कंटेंट-एन्कोडिंग विधि के लिए समर्थन प्रस्तुत किया गया था।<ref>{{Citation|chapter = Firefox 44 release notes|chapter-url = https://www.mozilla.org/en-US/firefox/44.0/releasenotes/|last=Goodger|first=Ben|display-authors=et al|date=26 January 2016|title=Mozilla Firefox|publisher = Mozilla Foundation}}.</ref>
* [[Google Chrome]] ने संस्करण 50 (20 अप्रैल 2016 को जारी) से br सामग्री-एन्कोडिंग विधि का समर्थन किया है।<ref name="chromestatus">{{citation|first=Kenji|last=Baheux|date=15 January 2016|chapter=Accept-encoding: br on HTTPS connection|title=Chrome Platform Status|chapter-url=https://www.chromestatus.com/feature/5420797577396224|publisher=chromestatus.com}}.</ref>
* [[Google Chrome|गूगल  Chrome]] ने संस्करण 50 (20 अप्रैल 2016 को जारी) से br कंटेंट-एन्कोडिंग विधि का समर्थन किया है।<ref name="chromestatus">{{citation|first=Kenji|last=Baheux|date=15 January 2016|chapter=Accept-encoding: br on HTTPS connection|title=Chrome Platform Status|chapter-url=https://www.chromestatus.com/feature/5420797577396224|publisher=chromestatus.com}}.</ref>
* ओपेरा (वेब ​​​​ब्राउज़र) ने संस्करण 38 (8 जून 2016 को जारी) के बाद से बीआर सामग्री-एन्कोडिंग विधि का समर्थन किया है।<ref name="chromestatus" />* [[ माइक्रोसॉफ्ट बढ़त ]] ने संस्करण 15 (5 अप्रैल 2017 को जारी) से बीआर सामग्री-एन्कोडिंग पद्धति का समर्थन किया है।<ref>{{citation|chapter-url=https://blogs.windows.com/msedgedev/2016/12/20/introducing-brotli-compression|chapter=Introducing Brotli compression in Microsoft Edge|title=Microft Edge Developer|last=Trace|first=Rob|date=December 20, 2016|publisher=blogs.windows.com}}</ref>
* ओपेरा (वेब ​​​​ब्राउज़र) ने संस्करण 38 (8 जून 2016 को जारी) के बाद से बीआर कंटेंट-एन्कोडिंग विधि का समर्थन किया है।<ref name="chromestatus" />
* सफ़ारी (वेब ​​​​ब्राउज़र) ने संस्करण 11 (5 अक्टूबर 2017 को जारी) के बाद से बीआर सामग्री-एन्कोडिंग विधि का समर्थन किया है।
*[[ माइक्रोसॉफ्ट बढ़त |माइक्रोसॉफ्ट बढ़त]] ने संस्करण 15 (5 अप्रैल 2017 को जारी) से बीआर कंटेंट-एन्कोडिंग पद्धति का समर्थन किया है।<ref>{{citation|chapter-url=https://blogs.windows.com/msedgedev/2016/12/20/introducing-brotli-compression|chapter=Introducing Brotli compression in Microsoft Edge|title=Microft Edge Developer|last=Trace|first=Rob|date=December 20, 2016|publisher=blogs.windows.com}}</ref>
* 29 नवंबर 2017 को जारी संस्करण 7.57 के अनुसार libbrotli का उपयोग करके br सामग्री-एन्कोडिंग विधि का समर्थन करने के लिए [[cURL]] के पास एक संकलन-समय विकल्प है।<ref>{{cite web|last1=Stenberg|first1=Daniel|display-authors=et al|title=कर्ल - परिवर्तन|url=https://curl.haxx.se/changes.html#7_57_0|website=curl.haxx.se|access-date=14 January 2018}}</ref>
* सफ़ारी (वेब ​​​​ब्राउज़र) ने संस्करण 11 (5 अक्टूबर 2017 को जारी) के बाद से बीआर कंटेंट -एन्कोडिंग विधि का समर्थन किया है।
* 29 नवंबर 2017 को जारी संस्करण 7.57 के अनुसार लिब्रोटली का उपयोग करके br कंटेंट-एन्कोडिंग विधि का समर्थन करने के लिए [[cURL]] के पास एक संकलन-समय विकल्प है।<ref>{{cite web|last1=Stenberg|first1=Daniel|display-authors=et al|title=कर्ल - परिवर्तन|url=https://curl.haxx.se/changes.html#7_57_0|website=curl.haxx.se|access-date=14 January 2018}}</ref>
* [[7zip]], 7zip-zstd द्वारा ब्रॉटली के साथ विस्तारित रूप में उपलब्ध है।<ref>{{Cite web|url=https://github.com/mcmilk/7-Zip-zstd|title=रीडमी|website=[[GitHub]]|date=15 October 2021}}</ref>
* [[7zip]], 7zip-zstd द्वारा ब्रॉटली के साथ विस्तारित रूप में उपलब्ध है।<ref>{{Cite web|url=https://github.com/mcmilk/7-Zip-zstd|title=रीडमी|website=[[GitHub]]|date=15 October 2021}}</ref>
* [[पीज़िप]] संपीड़न और निष्कर्षण के लिए ब्रॉटली .BR प्रारूप का समर्थन करता है<ref>{{Cite web|url=https://peazip.github.io/brotli-compression-utility.html|title = Google Brotli: How to compress, open, extract BR files}}</ref>
* [[पीज़िप]] संपीड़न और निष्कर्षण के लिए ब्रॉटली .BR प्रारूप का समर्थन करता है<ref>{{Cite web|url=https://peazip.github.io/brotli-compression-utility.html|title = Google Brotli: How to compress, open, extract BR files}}</ref>
Line 62: Line 68:


=== वेब सर्वर ===
=== वेब सर्वर ===
* Apache HTTP सर्वर के लिए, br कंटेंट-एन्कोडिंग विधि को संस्करण 2.4.26 से [https://httpd.apache.org/docs/2.4/mod/mod_brotli.html mod_brotli] मॉड्यूल द्वारा समर्थित किया गया है।<ref>{{Citation|chapter = Changes with Apache 2.4.26 | title=Apache HTTPD repository|chapter-url=https://svn.apache.org/repos/asf/httpd/httpd/tags/2.4.26/CHANGES|publisher=svn.apache.org}}.</ref>
* अपाचे एचटीटीपी सर्वर के लिए, br कंटेंट-एन्कोडिंग विधि को संस्करण 2.4.26 से [https://httpd.apache.org/docs/2.4/mod/mod_brotli.html mod_brotli] मॉड्यूल द्वारा समर्थित किया गया है।<ref>{{Citation|chapter = Changes with Apache 2.4.26 | title=Apache HTTPD repository|chapter-url=https://svn.apache.org/repos/asf/httpd/httpd/tags/2.4.26/CHANGES|publisher=svn.apache.org}}.</ref>
* [[Microsoft IIS]] के पास मई 2018 से एक [https://docs.microsoft.com/en-us/iis/extensions/iis-compression/iis-compression-overview] समर्थित एक्सटेंशन है जो br सामग्री-एन्कोडिंग विधि के लिए समर्थन जोड़ता है।
* माइक्रोसॉफ्ट आईआईएस के पास मई 2018 से एक [https://docs.microsoft.com/en-us/iis/extensions/iis-compression/iis-compression-overview] समर्थित एक्सटेंशन है जो br कंटेंट-एन्कोडिंग विधि के लिए समर्थन जोड़ता है।
* [[Microsoft Azure]], brotli का उपयोग करके किनारे पर सामग्री को गतिशील रूप से संपीड़ित कर सकता है<ref>{{cite web|url=https://docs.microsoft.com/en-us/azure/frontdoor/front-door-caching#file-compression|title=एज़्योर फ्रंट डोर के साथ कैशिंग|website=docs.microsoft.com|date=15 June 2023 }}</ref> 17 अप्रैल, 2019 को लॉन्च होने के बाद से।<ref>{{cite web|url=https://azure.microsoft.com/en-us/updates/azure-front-door-service-is-now-available|title=Azure फ्रंट डोर सर्विस अब उपलब्ध है|website=azure.microsoft.com}}</ref>
* [[Microsoft Azure|माइक्रोसॉफ्ट एज़्योर]], ब्रॉटली का उपयोग करके किनारे पर कंटेंट को गतिशील रूप से संपीड़ित कर सकता है<ref>{{cite web|url=https://docs.microsoft.com/en-us/azure/frontdoor/front-door-caching#file-compression|title=एज़्योर फ्रंट डोर के साथ कैशिंग|website=docs.microsoft.com|date=15 June 2023 }}</ref> 17 अप्रैल, 2019 को लॉन्च होने के बाद से है ।<ref>{{cite web|url=https://azure.microsoft.com/en-us/updates/azure-front-door-service-is-now-available|title=Azure फ्रंट डोर सर्विस अब उपलब्ध है|website=azure.microsoft.com}}</ref>
* [[nginx]] के पास दिसंबर 2016 से Google द्वारा प्रदान किया गया एक [https://github.com/google/ngx_brotli ngx_brotli] मॉड्यूल है।
* [[nginx]] के पास दिसंबर 2016 से गूगल  द्वारा प्रदान किया गया एक [https://github.com/google/ngx_brotli ngx_brotli] मॉड्यूल है।
* Node.js में संस्करण 11.7.0 के बाद से एक अंतर्निहित देशी एन- और डिकोडर की सुविधा है, जिसका उपयोग br सामग्री-एन्कोडिंग का समर्थन करने के लिए किया जा सकता है।
* Node.js में संस्करण 11.7.0 के बाद से एक अंतर्निहित देशी एन- और डिकोडर की सुविधा है, जिसका उपयोग br कंटेंट-एन्कोडिंग का समर्थन करने के लिए किया जा सकता है।
* [[अमेज़ॅन क्लाउडफ्रंट]] सितंबर 2020 तक ब्रॉटली का उपयोग करके किनारे पर कैश करने योग्य प्रतिक्रियाओं को स्वचालित रूप से संपीड़ित कर सकता है।<ref>{{cite web |url=https://aws.amazon.com/about-aws/whats-new/2020/09/cloudfront-brotli-compression/ |title=अमेज़ॅन क्लाउडफ्रंट ने ब्रॉटली कम्प्रेशन के लिए समर्थन की घोषणा की|website=aws.amazon.com}}</ref>
* [[अमेज़ॅन क्लाउडफ्रंट]] सितंबर 2020 तक ब्रॉटली का उपयोग करके किनारे पर कैश करने योग्य प्रतिक्रियाओं को स्वचालित रूप से संपीड़ित कर सकता है।<ref>{{cite web |url=https://aws.amazon.com/about-aws/whats-new/2020/09/cloudfront-brotli-compression/ |title=अमेज़ॅन क्लाउडफ्रंट ने ब्रॉटली कम्प्रेशन के लिए समर्थन की घोषणा की|website=aws.amazon.com}}</ref>
* [[लाइटस्पीड वेब सर्वर]] ने जुलाई 2017 में संस्करण 5.2 के बाद से केवल स्थिर फ़ाइलों के लिए बीआर सामग्री-एन्कोडिंग विधि को शामिल किया है।
* [[लाइटस्पीड वेब सर्वर]] ने जुलाई 2017 में संस्करण 5.2 के बाद से केवल स्थिर फ़ाइलों के लिए बीआर कंटेंट-एन्कोडिंग विधि को सम्मिलित किया है।
* [[ बादल भड़कना ]] सीडीएन अपने एज नोड और उपयोगकर्ता के बीच डेटा को संपीड़ित करने के लिए एक ब्रॉटली विकल्प प्रदान करता है।<ref>{{cite web |url=https://support.cloudflare.com/hc/en-us/articles/200168396-What-will-Cloudflare-compress- |title=What will Cloudflare compress? |website=support.cloudflare.com}}</ref>
* [[ बादल भड़कना | क्लाउडफ्लार]] सीडीएन अपने एज नोड और उपयोगकर्ता के बीच डेटा को संपीड़ित करने के लिए एक ब्रॉटली विकल्प प्रदान करता है।<ref>{{cite web |url=https://support.cloudflare.com/hc/en-us/articles/200168396-What-will-Cloudflare-compress- |title=What will Cloudflare compress? |website=support.cloudflare.com}}</ref>
* [[NaviServer]] [https://bitbucket.org/naviserver/naviserver/src/tip/NEWS?at=default&fileviewer=file-view-default ने संस्करण 4.99.17b1 में समर्थन जोड़ा]
* [[NaviServer|नेवीसर्वर]] [https://bitbucket.org/naviserver/naviserver/src/tip/NEWS?at=default&fileviewer=file-view-default ने संस्करण 4.99.17b1 में समर्थन जोड़ा]
* कैडी (वेब ​​​​सर्वर) 21 दिसंबर 2016 से संस्करण 0.9.4 के बाद से स्थिर रूप से संपीड़ित .br फ़ाइलें परोसता है।
* कैडी (वेब ​​​​सर्वर) 21 दिसंबर 2016 से संस्करण 0.9.4 के बाद से स्थिर रूप से संपीड़ित .br फ़ाइलें सर्व करता है।
* [[ lighttpd ]] mod_deflate 1.4.56 से .br को सपोर्ट करता है<ref>{{cite web|url=https://redmine.lighttpd.net/projects/lighttpd/wiki/Release-1_4_56|title=lighttpd 1.4.56 release info|website=redmine.lighttpd.net}}</ref> नवंबर 2020 से.
* [[ lighttpd ]] mod_deflate 1.4.56 से .br नवंबर 2020 से समर्थन करता है<ref>{{cite web|url=https://redmine.lighttpd.net/projects/lighttpd/wiki/Release-1_4_56|title=lighttpd 1.4.56 release info|website=redmine.lighttpd.net}}</ref>  


== संदर्भ ==
== संदर्भ ==
Line 83: Line 89:


== बाहरी संबंध ==
== बाहरी संबंध ==
* Brotli reference implementation at {{GitHub|google/brotli}}
* ब्रॉटली reference implementation at {{GitHub|google/brotli}}


{{Compression methods}}
{{Compression methods}}

Revision as of 21:13, 2 August 2023

Original author(s)Jyrki Alakuijala, Zoltán Szabadka
Developer(s)Jyrki Alakuijala, Eugene Kliuchnikov, Robert Obryk, Zoltán Szabadka, Lode Vandevenne
Initial release15 October 2013; 11 years ago (2013-10-15)
Stable release
1.0.9 / 27 August 2020; 4 years ago (2020-08-27)[1]
Written inC
Operating systemCross-platform
PlatformPortable
TypeData compression
LicenseMIT License

ब्रॉटली गूगल द्वारा विकसित एक दोषरहित संपीड़न है। यह सामान्य प्रयोजन LZ77 और LZ78 दोषरहित संपीड़न एल्गोरिथ्म, हफ़मैन कोडिंग और 2-ऑर्डर संदर्भ मॉडलिंग के संयोजन का उपयोग करता है। ब्रॉटली का उपयोग मुख्य रूप से वेब सर्वर और कंटेंट डिलीवरी नेटवर्क द्वारा एचटीटीपी संपीड़न के लिए किया जाता है, जिससे इंटरनेट वेबसाइटें तेजी से लोड होती हैं। गज़िप का उत्तराधिकारी, यह सभी प्रमुख वेब ब्राउज़रों द्वारा समर्थित है और तेजी से लोकप्रिय हो गया है, क्योंकि यह गज़िप की तुलना में उत्तम संपीड़न प्रदान करता है।

इतिहास

गूगल के एम्प्लोयी जिरकी अलाकुइजाला और ज़ोल्टन स्ज़ाबादका ने प्रारंभ में वेब ओपन फ़ॉन्ट प्रारूप वेब फ़ॉन्ट के प्रसारण के आकार को कम करने के लिए 2013 में ब्रॉटली विकसित किया था।[2] अलाकुइजाला और स्ज़ाबादका ने 2013 के समय ब्रॉटली विनिर्देश पूरा किया–2016. विनिर्देश के साथ दो अतिरिक्त लेखकों एवगेनी क्लिउचनिकोव और लॉड वांडेवेन द्वारा विकसित एक संदर्भ कार्यान्वयन भी सम्मिलित था, जिन्होंने पहले 2013 में DEFLATE और गज़िप संगत संपीड़न के गूगल के ज़ोपफ़्लि कार्यान्वयन को विकसित किया था।[3]: 1  ज़ोफ़्फ़्ली के विपरीत जो उपस्थित डेटा प्रारूप विनिर्देश का पुन: कार्यान्वयन था, ब्रॉटली एक नया डेटा प्रारूप था और लेखकों को संपीड़न अनुपात को और भी उत्तम बनाने की अनुमति देता था।[4]

एचटीटीपी स्ट्रीम संपीड़न (कंटेंट-एन्कोडिंग टाइप br) के लिए सितंबर 2015 में ब्रॉटली विनिर्देश को सामान्यीकृत किया गया था। इस सामान्यीकृत पुनरावृत्ति ने अधिकांशतः उपयोग किए जाने वाले शब्दों और वाक्यांशों के पूर्वनिर्धारित शब्दकोश का उपयोग करके संपीड़न अनुपात में भी सुधार किया। गूगल सॉफ़्टवेयर इंजीनियरों द्वारा सितंबर 2015 में जारी किए गए ब्रॉटली के संस्करण में सामान्य लोसलेस डेटा संपीड़न में संवर्द्धन सम्मिलित था, जिसमें एचटीटीपी संपीड़न के उपयोग पर विशेष जोर दिया गया था। एनकोडर को आंशिक रूप से फिर से लिखा गया था, जिसके परिणामस्वरूप संपीड़न अनुपात में सुधार हुआ, एनकोडर और डिकोडर दोनों में तेजी आई है, स्ट्रीमिंग एपीआई में सुधार हुआ है, और अधिक संपीड़न गुणवत्ता स्तर जोड़े गए हैं। इसके अतिरिक्त नई रिलीज़ डिकोडिंग मेमोरी में कमी के साथ सभी प्लेटफार्मों पर प्रदर्शन में सुधार दिखाती है।[4]

इंटरनेट इंजीनियरिंग टास्क फोर्स ने टिप्पणियों के लिए सूचनात्मक अनुरोध के रूप में ब्रॉटली संपीड़ित डेटा प्रारूप विनिर्देश को स्वीकृति दे दी (RFC 7932) जुलाई 2016 में.[5] ब्रॉटली डेटा प्रारूप वेब ओपन फ़ॉन्ट प्रारूप के दूसरे पुनरावृत्ति का एक अभिन्न अंग है,[5]: 3  जिसे W3C में फ़ॉन्ट प्रौद्योगिकी मानकीकरण के लिए नेशनल एकेडमी ऑफ टेलीविज़न आर्ट्स एंड साइंसेज से 2021 प्रौद्योगिकी और इंजीनियरिंग एमी पुरस्कार में मान्यता दी गई थी।[6][7]

पिछले कुछ वर्षों में वेब ब्राउज़र में ब्रॉटली समर्थन जोड़ा गया है, जुलाई 2022 तक विश्व भर के 96% उपयोगकर्ता इस प्रारूप का समर्थन करने वाले ब्राउज़र का उपयोग कर रहे हैं।[8]

2016 में ड्रॉपबॉक्स ने दुर्भावनापूर्ण क्लाइंट के विपरीत अधिक सुरक्षित होने की अपनी आवश्यकता को पूरा करने के लिए रस्ट में ब्रॉटली को फिर से प्रयुक्त किया। 2018 में उन्होंने विलुप्त सुविधा को प्रयुक्त किया जिससे कोई व्यक्ति ब्रॉटली संपीड़ित फ़ाइल में जोड़ सकते है।[9][10][11]


एल्गोरिथम

ब्रॉटली का नया फ़ाइल प्रारूप इसके लेखकों को कई एल्गोरिथम और प्रारूप-स्तरीय सुधारों द्वारा डिफ्लेट में सुधार करने की अनुमति देता है: शाब्दिक और प्रतिलिपि दूरी के लिए संदर्भ मॉडल का उपयोग, पिछली दूरी के माध्यम से प्रतिलिपि दूरी का वर्णन, एन्ट्रॉपी कोड चयन में मूव-टू-फ्रंट केयूए का उपयोग , शाब्दिक और प्रतिलिपि लंबाई की संयुक्त-एन्ट्रॉपी कोडिंग, ब्लॉक विभाजन में ग्राफ़ एल्गोरिदम का उपयोग, और एक बड़ी बैकवर्ड संदर्भ विंडो उदाहरण सुधार हैं।

अधिकांश सामान्य प्रयोजन संपीड़न एल्गोरिदम के विपरीत, ब्रॉटली गतिशील रूप से पॉप्युलेट (स्लाइडिंग विंडो) शब्दकोश के अतिरिक्त , एक पूर्वनिर्धारित शब्दकोश का उपयोग करता है, जिसका आकार लगभग 120 केआईबी है। पूर्वनिर्धारित शब्दकोश में 13000 से अधिक सामान्य शब्द, वाक्यांश और टेक्स्ट और एचटीएमएल दस्तावेज़ों के एक बड़े टेक्स्ट संग्रह से प्राप्त अन्य उपस्ट्रिंग सम्मिलित हैं।[12][3] पूर्वनिर्धारित शब्दकोश का उपयोग संपीड़न को बढ़ाने के लिए दिखाया गया है जहां फ़ाइल में अधिकतर समान्यत: उपयोग किए जाने वाले शब्द होते हैं।[13] चूँकि, अलाकुइजाला के अनुसार, पूर्वनिर्धारित शब्दकोश ब्रॉटली की सामान्यता से विचलित नहीं होता है, और उत्तम संपीड़न का मुख्य कारण नहीं है। उनका प्रमाण है कि ऑल-ज़ीरो डिक्शनरी के साथ ब्रॉटली एल्गोरिथम की प्रगति के कारण अभी भी वेब कंटेंट पर अच्छा प्रदर्शन करता है।[14]

ब्रॉटली की स्लाइडिंग विंडो 16 MiB तक सीमित है। यह सीमित संसाधनों वाले मोबाइल फोन पर डिकोडिंग को सक्षम बनाता है, किन्तु बड़ी फ़ाइलों वाले संपीड़न बेंचमार्क पर ब्रॉटली को व्यर्थ प्रदर्शन देता है। छोटी विंडो आकार की बाधाओं को बड़ी विंडो ब्रॉटली का उपयोग करके कम किया जा सकता है, जो RFC7932 (ब्रॉटली उचित) के साथ संगत नहीं है।[15]


नाम

जबकि गूगल के डिफ्लेट कंप्रेशन एल्गोरिदम के ज़ोपफ़्लि कार्यान्वयन का नाम ज़ोपफ़ली के नाम पर रखा गया है, जो स्नैक-आकार के ज़ोपफ़ के लिए स्विस जर्मन शब्द है, ब्रोटली का नाम ब्रेड रोल या यूरोप के लिए स्विस जर्मन शब्द ब्रॉटली के नाम पर रखा गया है।[4] गूगल का ब्रॉटली विनिर्देशन का कार्यान्वयन 2016 में अनुमेय मुफ्त सॉफ्टवेयर लाइसेंस माय लाइसेंस की नियमों के अनुसार जारी किया गया था। ब्रॉटली विनिर्देश का औपचारिक सत्यापन स्वतंत्र रूप से मार्क एडलर द्वारा कार्यान्वित किया गया था।[5]: 126  ज़्लिब/गज़िप संपीड़न प्रारूप और लाइब्रेरी के सह-लेखकों में से एक एडलर का कार्यान्वयन समान अनुमेय अपाचे लाइसेंस की नियमों के अनुसार जारी किया गया था।[16] विनिर्देश के अन्य कार्यान्वयन भी उपस्थित हैं, जिनमें स्रोत-से-स्रोत मिला हुआ लैंग्वेज भी सम्मिलित है।

अनुप्रयोग

ब्रॉटली संपीड़न का उपयोग सामान्यतः वेब पर गज़िप के विकल्प के रूप में किया जाता है, क्योंकि ब्रॉटली उत्तम समग्र संपीड़न प्रदान करता है।[17] जीज़िप कम्प्रेशन की तुलना में, ब्रॉटली से संपीड़ित जावास्क्रिप्ट फ़ाइलें लगभग 15% छोटी होती हैं, एचटीएमएल फ़ाइलें लगभग 20% छोटी होती हैं, और CSS फ़ाइलें लगभग 16% छोटी होती हैं।[18]

संदर्भ कार्यान्वयन gzip [19] के समान एक कमांड-लाइन प्रोग्राम brotli शिप करता है किन्तु यूनिक्स जैसी दुनिया में एक साधारण कंप्रेसर के रूप में उपयोग दुर्लभ है। लिबर्चिव डेवलपर्स को .br फ़ाइलों के रॉ स्ट्रीम प्रारूप का समर्थन करना मुश्किल लगता है, क्योंकि फ़ाइल प्रारूप को निरुपित करने के लिए कोई जादुई संख्या नहीं है[20]


उद्योग समर्थन

ब्राउज़र और अन्य क्लाइंट

  • मोज़िला फ़ायरफ़ॉक्स ने संस्करण 44 (26 जनवरी 2016 को जारी) में बीआर कंटेंट-एन्कोडिंग विधि के लिए समर्थन प्रस्तुत किया गया था।[21]
  • गूगल Chrome ने संस्करण 50 (20 अप्रैल 2016 को जारी) से br कंटेंट-एन्कोडिंग विधि का समर्थन किया है।[22]
  • ओपेरा (वेब ​​​​ब्राउज़र) ने संस्करण 38 (8 जून 2016 को जारी) के बाद से बीआर कंटेंट-एन्कोडिंग विधि का समर्थन किया है।[22]
  • माइक्रोसॉफ्ट बढ़त ने संस्करण 15 (5 अप्रैल 2017 को जारी) से बीआर कंटेंट-एन्कोडिंग पद्धति का समर्थन किया है।[23]
  • सफ़ारी (वेब ​​​​ब्राउज़र) ने संस्करण 11 (5 अक्टूबर 2017 को जारी) के बाद से बीआर कंटेंट -एन्कोडिंग विधि का समर्थन किया है।
  • 29 नवंबर 2017 को जारी संस्करण 7.57 के अनुसार लिब्रोटली का उपयोग करके br कंटेंट-एन्कोडिंग विधि का समर्थन करने के लिए cURL के पास एक संकलन-समय विकल्प है।[24]
  • 7zip, 7zip-zstd द्वारा ब्रॉटली के साथ विस्तारित रूप में उपलब्ध है।[25]
  • पीज़िप संपीड़न और निष्कर्षण के लिए ब्रॉटली .BR प्रारूप का समर्थन करता है[26]


वेब सर्वर

  • अपाचे एचटीटीपी सर्वर के लिए, br कंटेंट-एन्कोडिंग विधि को संस्करण 2.4.26 से mod_brotli मॉड्यूल द्वारा समर्थित किया गया है।[27]
  • माइक्रोसॉफ्ट आईआईएस के पास मई 2018 से एक [2] समर्थित एक्सटेंशन है जो br कंटेंट-एन्कोडिंग विधि के लिए समर्थन जोड़ता है।
  • माइक्रोसॉफ्ट एज़्योर, ब्रॉटली का उपयोग करके किनारे पर कंटेंट को गतिशील रूप से संपीड़ित कर सकता है[28] 17 अप्रैल, 2019 को लॉन्च होने के बाद से है ।[29]
  • nginx के पास दिसंबर 2016 से गूगल द्वारा प्रदान किया गया एक ngx_brotli मॉड्यूल है।
  • Node.js में संस्करण 11.7.0 के बाद से एक अंतर्निहित देशी एन- और डिकोडर की सुविधा है, जिसका उपयोग br कंटेंट-एन्कोडिंग का समर्थन करने के लिए किया जा सकता है।
  • अमेज़ॅन क्लाउडफ्रंट सितंबर 2020 तक ब्रॉटली का उपयोग करके किनारे पर कैश करने योग्य प्रतिक्रियाओं को स्वचालित रूप से संपीड़ित कर सकता है।[30]
  • लाइटस्पीड वेब सर्वर ने जुलाई 2017 में संस्करण 5.2 के बाद से केवल स्थिर फ़ाइलों के लिए बीआर कंटेंट-एन्कोडिंग विधि को सम्मिलित किया है।
  • क्लाउडफ्लार सीडीएन अपने एज नोड और उपयोगकर्ता के बीच डेटा को संपीड़ित करने के लिए एक ब्रॉटली विकल्प प्रदान करता है।[31]
  • नेवीसर्वर ने संस्करण 4.99.17b1 में समर्थन जोड़ा
  • कैडी (वेब ​​​​सर्वर) 21 दिसंबर 2016 से संस्करण 0.9.4 के बाद से स्थिर रूप से संपीड़ित .br फ़ाइलें सर्व करता है।
  • lighttpd mod_deflate 1.4.56 से .br नवंबर 2020 से समर्थन करता है[32]

संदर्भ

  1. "Releases - google/brotli". Retrieved 13 September 2020 – via GitHub.
  2. Sheeter, Rod (February 18, 2015), "Smaller Fonts with WOFF 2.0 and unicode-range", Google Open Source Blog, Mountain View, CA: opensource.googleblog.com.
  3. 3.0 3.1 Alakuijala, Jyrki; Kliuchnikov, Evgenii; Szabadka, Zoltan; Vandevenne, Lode (22 September 2015), "Comparison of Brotli, Deflate, Zopfli, LZMA, LZHAM and Bzip2 Compression Algorithms" (PDF), The Comprehensive R Archive Network, r-project.org.
  4. 4.0 4.1 4.2 Szabadka, Zoltan (September 22, 2015), "Introducing Brotli: a new compression algorithm for the internet", Google Open Source Blog, Mountain View, CA: opensource.googleblog.com.
  5. 5.0 5.1 5.2 Alakuijala, Jyrki; Szabadka, Zoltan (2016), RFC 7932: Brotli Compressed Data Format, Internet Engineering Task Force Request for Comments, Fremont, CA: IETF Trust.
  6. "W3C Receives Emmy Award for Standardizing Font Technology". 2022-06-01.
  7. "Changing the face of the web: W3C Web Fonts Working Group and MPEG recognized with a Technology & Engineering Emmy Award". 2022-06-01.
  8. "क्या मैं उपयोग कर सकता हूँ... - ब्रॉटली". 2022-06-28.
  9. Lossless compression with Brotli in Rust for a bit of Pied Piper on the backend, Daniel Reiter Horn and Mehant Baid, 2016-06-29.
  10. [1], Rishabh Jain and Daniel Reiter Horn, 2020-08-04
  11. append to brotli compressed file, github ticket to google Brotli, listing implementation ideas, 2017-12-06
  12. Chirgwin, Richard (September 23, 2015), "Google's new squeeze: Brotli compression open-sourced", The Register, theregister.co.uk.
  13. Larkin, Henry (2007). "Word Indexing for Mobile Device Data Representations". 7th IEEE International Conference on Computer and Information Technology (CIT 2007). pp. 399–404. doi:10.1109/CIT.2007.22. ISBN 978-0-7695-2983-7. S2CID 8707991..
  14. Alakuijala, Jyrki (May 15, 2021). "स्टेटिक डिक्शनरी के कारण ब्रॉटली उत्कृष्ट संपीड़न घनत्व तक नहीं पहुँच पाता है। अधिकता ..." Hacker News.
  15. Kliuchnikov, Eugene. "How to use large window sizes? · Issue #639 · google/brotli". GitHub (in English). Currently we are testing "Large Window Brotli" extension that will allow up to 1GiB window. [...] "Large Window Brotli" is landed.
  16. Adler, Mark (Jan 26, 2015), "Brotli specification review and verification", Adler brotli, San Francisco: GitHub.
  17. Calvano, Paul (2018-07-25). "Brotli Compression: How Much Will It Reduce Your Content?". Retrieved 2021-03-07.
  18. Pandjarov, Hristo (2021-01-13). "ब्रॉटली कम्प्रेशन एल्गोरिथम के साथ अधिक साइट गति प्राप्त होती है". SiteGround. Retrieved 2021-03-07.
  19. "ब्रॉटली(1) मैनुअल पेज". manned.org.
  20. "Brotli support · Issue #1238 · libarchive/libarchive". GitHub (in English). Without a magic signature, libarchive cannot automatically recognize the file type, so it cannot automatically decompress. (Libarchive does not consider the file name, only the contents.)
  21. Goodger, Ben; et al. (26 January 2016), "Firefox 44 release notes", Mozilla Firefox, Mozilla Foundation.
  22. 22.0 22.1 Baheux, Kenji (15 January 2016), "Accept-encoding: br on HTTPS connection", Chrome Platform Status, chromestatus.com.
  23. Trace, Rob (December 20, 2016), "Introducing Brotli compression in Microsoft Edge", Microft Edge Developer, blogs.windows.com
  24. Stenberg, Daniel; et al. "कर्ल - परिवर्तन". curl.haxx.se. Retrieved 14 January 2018.
  25. "रीडमी". GitHub. 15 October 2021.
  26. "Google Brotli: How to compress, open, extract BR files".
  27. "Changes with Apache 2.4.26", Apache HTTPD repository, svn.apache.org.
  28. "एज़्योर फ्रंट डोर के साथ कैशिंग". docs.microsoft.com. 15 June 2023.
  29. "Azure फ्रंट डोर सर्विस अब उपलब्ध है". azure.microsoft.com.
  30. "अमेज़ॅन क्लाउडफ्रंट ने ब्रॉटली कम्प्रेशन के लिए समर्थन की घोषणा की". aws.amazon.com.
  31. "What will Cloudflare compress?". support.cloudflare.com.
  32. "lighttpd 1.4.56 release info". redmine.lighttpd.net.
Notes
 -  Finley, Klint (22 September 2015), "Hooli, I Mean Google, Gives Away Compression Code for Free", Wired Online, wired.com.


बाहरी संबंध

  • ब्रॉटली reference implementation at brotli on GitHub