पेश है क्रॉस-ऑरिजिन स्टोरेज एपीआई

पब्लिश होने की तारीख: 10 नवंबर, 2026

आधुनिक वेब ऐप्लिकेशन अक्सर बड़ी एसेट पर निर्भर करते हैं. जैसे, JavaScript फ़्रेमवर्क, गेम इंजन, और एआई मॉडल. भले ही साइटें एक जैसी ऐसेट का इस्तेमाल कर रही हों, लेकिन हर साइट को हर ऐसेट की अपनी कॉपी डाउनलोड और सेव करनी होगी.

क्रॉस-ऑरिजिन स्टोरेज एपीआई (सीओएस) की मदद से, क्लाइंट अपने हैश के हिसाब से वह कॉन्टेंट तय करता है जिसे वह ढूंढ रहा है. इसके बाद, वह उसे किसी भी यूआरएल से फ़ेच करता है, ताकि उसे चुनिंदा साइटों (या सभी साइटों) पर शेयर किया जा सके. इसका मतलब है कि किसी सटीक और जाने-पहचाने संसाधन को साइटों के बीच शेयर किया जा सकता है. इसके लिए, ऐसेट को दिखाने की ज़रूरत नहीं होती. इस प्रस्ताव से सुरक्षा से जुड़े फ़ायदे और चुनौतियां भी सामने आती हैं.

उपयोग के उदाहरण

हमने कैश मेमोरी स्टोरेज एपीआई की मदद से, मॉडल को कैश मेमोरी में सेव करने और किसी भी ऐसेट को कैश मेमोरी में सेव करने की अहमियत के बारे में विस्तार से बताया है. क्रॉस-ऑरिजिन स्टोरेज API, एक कदम आगे बढ़कर काम करता है. यह तब फ़ायदेमंद हो सकता है, जब मिलती-जुलती (या अन्य) कई वेबसाइटों को एक ही रिसॉर्स का ऐक्सेस चाहिए:

  • एआई मॉडल: Gemma या Llama के वैरिएंट जैसे मॉडल का साइज़, करीब एक गीगाबाइट से लेकर कई गीगाबाइट तक हो सकता है. सीओएस की मदद से, एक कॉपी को सेव और वापस पाने से, डुप्लीकेट फ़ाइलों को डाउनलोड करने से बचा जा सकता है. इस प्रस्ताव के पीछे यह एक बड़ी वजह है.
  • Wasm मॉड्यूल: Flutter जैसे फ़्रेमवर्क, Wasm फ़ाइलें शिप करते हैं. इन फ़ाइलों के लिए, हर दिन हज़ारों अलग-अलग ऑरिजिन से लाखों बार अनुरोध किया जाता है. ये फ़ाइलें हमेशा बाइट-आइडेंटिकल होती हैं.
  • लोकप्रिय JavaScript लाइब्रेरी और फ़्रेमवर्क: वेंडर कोड को अलग से और पूरी तरह से बंडल करने (जैसे कि पूरी, अनट्रीशेकन React लाइब्रेरी) से, कई ऐप्लिकेशन सीओसी के ज़रिए कैश मेमोरी में सेव की गई एक कॉपी शेयर कर सकते हैं.
  • गेम इंजन: Godot या Unity जैसे इंजन पर बनाए गए ब्राउज़र गेम, सीओएस के ज़रिए इंजन रनटाइम को शेयर कर सकते हैं. साथ ही, नेटवर्क पर सिर्फ़ गेम से जुड़ी ऐसेट फ़ेच कर सकते हैं. अलग-अलग ऑरिजिन या iframe पर कई कैज़ुअल गेम होस्ट करने वाले गेमिंग पोर्टल को सबसे ज़्यादा फ़ायदा होता है.
  • बड़े वेब फ़ॉन्ट: आइकॉन फ़ॉन्ट, इमोजी फ़ॉन्ट, और बड़े यूनिकोड कवरेज वाले फ़ॉन्ट, कई पेजों पर डाउनलोड किए जाते हैं. सीओएस के ज़रिए उन्हें एक बार शेयर करने से, परफ़ॉर्मेंस और सस्टेनेबिलिटी, दोनों में मदद मिलती है.
DevTools में जांच करने पर पता चला कि Descent और Quake, Three.js के दो अलग-अलग गेम हैं. ये दोनों गेम, सीओएस के ज़रिए इंजन की एक ही कॉपी शेयर करते हैं.
Three.js के दो अलग-अलग गेम, Descent (बैकग्राउंड टैब में) और Quake (फ़ोरग्राउंड टैब में), सीओएस के ज़रिए इंजन की एक कॉपी शेयर करते हैं. इसकी जांच DevTools में की जाती है. यह स्क्रीनशॉट, एक्सपेरिमेंट के तौर पर उपलब्ध Chromium बिल्ड का है. ऐसा हो सकता है कि फ़ाइनल डिज़ाइन इससे अलग हो.

सीओएस के साथ काम करने का बुनियादी तरीका

सीओएस एपीआई, navigator.crossOriginStorage.getFileHandle() तरीका उपलब्ध कराता है. इसकी मदद से, वेब ऐप्लिकेशन अलग-अलग ऑरिजिन की सीमाओं के पार फ़ाइलों को सेव और वापस पा सकते हैं. इन फ़ाइलों की पहचान, क्रिप्टोग्राफ़िक हैश से की जाती है. इस दस्तावेज़ में एक उदाहरण दिया गया है, जिसमें एपीआई के साथ काम करने का बुनियादी तरीका बताया गया है.

इसे आज ही आज़माएँ

फ़िलहाल, सीओएस के साथ एक्सपेरिमेंट करने के दो तरीके हैं:

  • Chrome Web Store, Firefox Add-ons या Safari App Store से ब्राउज़र एक्सटेंशन इंस्टॉल करें, ताकि एपीआई और सभी इंटिग्रेशन को पॉलीफ़िल किया जा सके. एपीआई फ़्लो को किसी भी ब्राउज़र में टेस्ट किया जा सकता है. इसके अलावा, एक्सटेंशन को उसके सोर्स कोड से अनपैक करके लोड करें.
  • Chromium में एक्सपेरिमेंट: Chromium में एक्सपेरिमेंट के तौर पर लागू किया गया है. Apple Silicon या Linux x86_64 पर macOS के लिए, इसे goo.gle/cos-chromium से डाउनलोड करें. इसके बाद, about://flags खोलें और "क्रॉस-ऑरिजिन स्टोरेज" खोजें. फिर, इसे चालू है पर सेट करें और पूछे जाने पर रीस्टार्ट करें. इस बिल्ड में DevTools इंटिग्रेशन शामिल है: ऐप्लिकेशन टैब में जाकर, क्रॉस-ऑरिजिन स्टोरेज ढूंढें.

ईकोसिस्टम में दिलचस्पी

सीओएस, शुरुआती चरण का एक प्रस्ताव है. कई प्रोजेक्ट पहले से ही एक्सपेरिमेंट के तौर पर सहायता उपलब्ध कराते हैं. आम तौर पर, यह सहायता ऑप्ट-इन फ़्लैग के पीछे होती है और इसे परतदार वृद्धि के तौर पर लेयर किया जाता है:

  • Emscripten, जनरेट किए गए Wasm आउटपुट को शेयर करता है.
  • Flutter, Skia Wasm रनटाइम शेयर करता है.
  • Transformers.js, मॉडल के वेट और उन Wasm रनटाइम को शेयर करता है जिन पर वे निर्भर करते हैं.
  • WebLLM, मॉडल और रनटाइम शेयर करता है.
  • wllama, एआई मॉडल शेयर करता है.
  • Nuxt.js, क्रॉस-ऑरिजिन स्टोरेज से शेयर की गई डिपेंडेंसी लोड करता है और Vite COS प्लग इन को मैनेज करता है.
  • Prompt API Polyfill, अपने WebLLM और Transformers.js बैकएंड पर एआई मॉडल शेयर करता है.
  • Prebid.js में हेडर बिडिंग लाइब्रेरी का सीडीएन डिस्ट्रिब्यूशन होता है, जो सीओपीए के मुताबिक होता है.

स्टैंडर्डाइज़ेशन

क्रॉस-ऑरिजिन स्टोरेज, WICG का शुरुआती चरण का प्रस्ताव है. W3C TAG डिज़ाइन की समीक्षा को पहले ही पढ़ा जा सकता है.

एपीआई और प्रस्ताव के बारे में सुझाव, राय या शिकायत का स्वागत है. क्रॉस-ऑरिजिन स्टोरेज रिपॉज़िटरी में जाकर, समस्याएं दर्ज की जा सकती हैं, सहायता दिखाई जा सकती है या पुल के अनुरोध खोले जा सकते हैं.

संसाधन

इसके अलावा, यह टूल और डेमो देखें:

इस बारे में ज़्यादा जानकारी

टॉक शो और पॉडकास्ट