- Wasm 3.0 standard की आधिकारिक घोषणा हो गई है, और इसमें 6–8 साल की तैयारी के बाद आए बड़े फीचर्स शामिल हैं
- 64-bit address space, garbage collection, typed references, tail calls, exception handling जैसी क्षमताएँ high-level languages को Wasm में और आसानी से compile करना संभव बनाती हैं
- ये मुख्य नए फीचर्स high-performance applications, विभिन्न language runtimes, safety और scalability में मदद करते हैं
- यह web environment के बाहर भी non-web ecosystem में बड़े आकार और बड़े data sets संभालने वाले उपयोग मामलों के लिए उपयुक्त है
- प्रमुख web browsers में इसका समर्थन पहले से मौजूद है, और Wasmtime जैसे standalone engines में भी जल्द पूरा हो जाएगा, जिससे Wasm एक general-purpose execution platform के रूप में और मजबूत होगा
Wasm 3.0 रिलीज़ का अवलोकन
- WebAssembly standard का version 3.0 17 सितंबर 2025 को जारी किया गया
- version 2.0 (2022 में पूरा) के बाद यह 3 साल में आया बड़ा अपडेट है; 2.0 ने vector instructions, bulk memory operations, multiple return values, और simple reference types पेश किए थे
- W3C Community Group और Working Group ने विकास जारी रखा, और इस रिलीज़ में 6–8 साल से तैयार किए जा रहे बड़े फीचर्स शामिल हैं, इसलिए यह काफ़ी बड़े पैमाने का बदलाव है
- Wasm low-level language की अपनी मूल भावना बनाए रखते हुए memory और type system को मजबूत करता है, ताकि high-level language compilation को बेहतर समर्थन मिल सके
- version 2.0 के बाद विकसित फीचर्स अब पूरा होकर Live standard का हिस्सा बन गए हैं, और web browsers तथा standalone engines में समर्थन बढ़ रहा है
- Wasm फीचर स्थिति पेज में हर engine की support status को track किया जा सकता है
- नए SpecTec toolchain का उपयोग करके इसका पहला version तैयार किया गया है, जिससे reliability बेहतर हुई है
मुख्य बदलाव और नए फीचर्स
- 64-bit address space
- memory और tables को i64 type के रूप में घोषित किया जा सकता है
- Wasm applications का address space लगभग 4GB से बढ़कर physical limit तक (सैद्धांतिक रूप से 16 exabytes) जा सकता है
- web में 16GB की सीमा लागू रहती है, लेकिन non-web ecosystem में बड़े applications और datasets के समर्थन के लिए यह उपयोगी है
- multiple memories
- एक ही module के भीतर कई memory objects घोषित और सीधे access किए जा सकते हैं
- module merging, address space separation, buffering, security आदि में इसका उपयोग किया जा सकता है
- wasm-merge जैसे static linking tools अब सभी Wasm modules पर इस्तेमाल किए जा सकते हैं
- garbage collection (GC)
- linear memory के अलावा, Wasm runtime द्वारा अपने-आप managed storage का समर्थन मिलता है
- compiler सीधे struct/array types और unboxed integers जैसी data layouts घोषित कर सकता है
- यह memory management के लिए केवल बुनियादी building blocks देता है; high-level object systems या closures का डिज़ाइन implementation language के अनुसार अलग-अलग किया जा सकता है
- typed references
- Wasm type system का विस्तार किया गया है, ताकि heap values के रूप और function references को अधिक सटीक रूप से व्यक्त किया जा सके
- subtyping और recursive types का समर्थन है, और नए
call_ref instruction से runtime type check के बिना सुरक्षित indirect function calls संभव हैं
- tail calls
- बिना अतिरिक्त stack space लिए, सीधे return करने वाली tail call संरचना का समर्थन
- इसका उपयोग functional languages या runtime के अंदर optimization में किया जा सकता है
- exception handling
- Wasm के भीतर native exception handling system जोड़ा गया है
- exception tags और payloads की declaration, optional catch, और block-level exception handlers उपलब्ध हैं
- पहले JS के जरिए किए जाने वाले अप्रभावी workaround के बिना portability और performance बेहतर हो सकती है
- relaxed vector instructions
- SIMD instructions में hardware differences को ध्यान में रखते हुए, कुछ instructions के detailed behavior को implementation freedom देने वाला relaxed variant दिया गया है
- वैध behavior set के भीतर कई तरह की optimizations संभव हैं
- deterministic profile
- समान instruction के लिए non-deterministic result वाली स्थितियों (floating-point operations, relaxed SIMD आदि) में भी platforms के बीच deterministic execution को परिभाषित करता है
- blockchain, replayable systems आदि में reproducibility और portability सुनिश्चित की जा सकती है
- custom annotation syntax
- source code में इंसानों के लिए पढ़ने-लिखने योग्य annotation syntax जोड़ी गई है
- standard इसे सीधे interpret नहीं करता, लेकिन भविष्य के standards और extensions में इसका उपयोग हो सकता है
JavaScript इंटरकनेक्शन और compatibility
- JS string builtins
- JS string values को externref के रूप में Wasm में पास और manipulate किया जा सकता है
- नई built-in functions को import करके, Wasm के भीतर सीधे external JS strings का उपयोग किया जा सकता है
Wasm 3.0 की उपयोगिता और आगे की दिशा
- उन्नत programming languages के Wasm target compilation के लिए आवश्यक आधार प्रदान करता है
- Java, OCaml, Scala, Kotlin, Scheme, Dart जैसी प्रमुख languages भी GC फीचर का सक्रिय रूप से उपयोग करना शुरू कर रही हैं
स्पेसिफिकेशन निर्माण और वितरण की स्थिति
- Wasm 3.0 नया SpecTec toolchain इस्तेमाल करके पहली बार तैयार किया गया standard है
- ज़्यादातर मुख्य web browsers पहले ही Wasm 3.0 को support कर रहे हैं, और Wasmtime जैसे standalone engines भी जल्द पूरा समर्थन देने वाले हैं
- Wasm feature status page पर हर engine की support status देखी जा सकती है
अभी कोई टिप्पणी नहीं है.