यह चुनाव कोई दिखावटी प्राथमिकता नहीं है। यह लेख दो रनटाइम की तुलना करता है जो वास्तव में सत्यापित है, शासन, कंपाइलर, WASI मानक, सुरक्षा मॉडल, फिर वास्मटाइम कार्यान्वयन का विवरण देता है जो ऑराबेस उत्पादन, ईंधन मीटरिंग, युग रुकावट, मेमोरी सीमा में चलता है, बिना एक बिना मापे गए कोल्ड स्टार्ट आंकड़े प्रदान किए।
अनिवार्य है
- वास्मटाइम: बाइटकोड एलायंस प्रोजेक्ट, रस्ट में लिखा गया, क्रेनलिफ्ट उत्पादन कंपाइलर, एलएलवीएम अपवाद के साथ अपाचे-2.0 लाइसेंस।
- वासमर: वासमर इंक द्वारा विकसित रनटाइम, तीन विनिमेय कंपाइलर (सिंगलपास, क्रेनलिफ्ट, एलएलवीएम), एमआईटी लाइसेंस।
- ऑराबेस
aura-functionsमेंwasmtime = { version = "43", features = ["async", "cranelift"] }को वास्तविक उत्पादन निर्भरता घोषित करता है, जिसेCargo.tomlमें सत्यापित किया गया है। - नेटिव WASM मोड डिफ़ॉल्ट रूप से 64 एमबी की मेमोरी कैप, एक बिलियन यूनिट का ईंधन बजट और 10 सेकंड का टाइमआउट लागू करता है, तीनों को पर्यावरण चर द्वारा समायोज्य किया जाता है।
- यह WASM मोड ऑराबेस एज फ़ंक्शंस (डेनो रनटाइम) के डिफ़ॉल्ट मोड के साथ सह-अस्तित्व में है: यह दूसरा निष्पादन पथ है, डिफ़ॉल्ट पथ नहीं।
दो रनटाइम, वही WebAssembly बेस
WebAssembly ने लंबे समय से ब्राउज़र के लिए एक रनटाइम प्रारूप निर्दिष्ट किया है। कई वर्षों से, इसका उपयोग सर्वर साइड या किनारे पर सैंडबॉक्स कोड को निष्पादित करने के लिए भी किया जाता है: एक बार संकलित बाइटकोड, किसी भी होस्ट मशीन पर पोर्टेबल, कंटेनर या पूर्ण वर्चुअल मशीन के बिना डिफ़ॉल्ट रूप से अलग किया गया। वासटाइम और वासमर इस एक्सटेंशन को ब्राउज़र से बाहर ले जाते हैं, दोनों रस्ट में लिखे गए हैं, दोनों एक ही .wasmफ़ाइल को निष्पादित करने में सक्षम हैं।
वास्मटाइम बायटेकोड एलायंस द्वारा होस्ट किया गया एक प्रोजेक्ट है, जो संगठन क्रेनलिफ्ट कंपाइलर सहित वेबअसेंबली सर्वर इकोसिस्टम के कई घटकों का प्रबंधन करता है। वासमर को वासमर इंक द्वारा विकसित किया गया है, जो एक कंपनी है जो रनटाइम को ओपन सोर्स के रूप में प्रकाशित करती है जबकि इसके आसपास पूरक सेवाओं (एज परिनियोजन, टूलींग) का विपणन करती है। दो अलग-अलग शासन मॉडल, एक या दूसरे द्वारा उत्पादित कोड की गुणवत्ता पर कोई निर्णय नहीं।
इस आलेख का शेष भाग चार सत्यापन योग्य क्षेत्रों, लाइसेंसिंग और शासन, उपलब्ध कंपाइलरों, WASI मानक और घटक मॉडल, सुरक्षा मॉडल की तुलना करता है, फिर सहायक कोड के साथ बताता है कि क्यों ऑराबेस का रस्ट कोर अपने एज फ़ंक्शंस इंजनमें Wasmtime चलाता है।
बहु-विक्रेता फाउंडेशन बनाम वाणिज्यिक प्रकाशक
वास्मटाइम को अपाचे-2.0 लाइसेंस के तहत एलएलवीएम अपवाद के साथ जारी किया गया है, जो कंपाइलर पारिस्थितिकी तंत्र में एक सामान्य लाइसेंस है। इसका प्रशासन बाइटकोड एलायंस मॉडल का अनुसरण करता है: कई संगठन परियोजना में योगदान करते हैं, कोई भी अकेले इसका मालिक नहीं है।
वासमर को एमआईटी लाइसेंस के तहत प्रकाशित किया जाता है, जो कागज पर और भी अधिक अनुमेय है, लेकिन इसकी तकनीकी दिशा एक ही प्रकाशक, वासमर इंक पर केंद्रित है। यह अपने आप में कोई गलती नहीं है: कई सफल ओपन सोर्स प्रोजेक्ट इस मॉडल का पालन करते हैं। यदि आपका संगठन कई संस्थाओं में वितरित शासन को महत्व देता है तो यह बस एक अलग जोखिम प्रोफ़ाइल है।
एक बैकएंड बनाम तीन: क्रेनलिफ्ट, सिंगलपास, एलएलवीएम
वास्मटाइम क्रेनलिफ्ट के माध्यम से उत्पादन में संकलित होता है, जो बाइटकोड एलायंस से एक कोड जनरेटर भी है। टोकरा एक अतिरिक्त कंपाइलर, विंच का भी दस्तावेजीकरण करता है, जिसे स्टार्टअप के प्रति संवेदनशील मामलों में क्रेनलिफ्ट की तुलना में संकलन समय को कम करने के लिए डिज़ाइन किया गया है।आभा-फ़ंक्शंस का Cargo.toml केवल cranelift सुविधा को सक्रिय करता है: यह कंपाइलर है, और यह अकेले है, जो उत्पादन में लोड किए गए प्रत्येक WASM मॉड्यूल को संसाधित करता है।
वासमर विपरीत रास्ता अपनाता है: तीन विनिमेय बैकएंड। सिंगलपास कम अनुकूलित मशीन कोड की कीमत पर, लगभग तुरंत ही, एक ही पास में संकलित हो जाता है। क्रेनलिफ्ट एक संतुलित समझौता प्रदान करता है। एलएलवीएम का लक्ष्य तीनों में से सबसे लंबे संकलन समय के साथ सर्वोत्तम संभव निष्पादन थ्रूपुट का लक्ष्य है। एक एकल रनटाइम, कॉन्फ़िगरेशन के दौरान तीन समझौता प्रोफ़ाइल चुनी गईं।
WASI पूर्वावलोकन 2 और घटक मॉडल
WASI, WebAssembly सिस्टम इंटरफ़ेस, ब्राउज़र पर निर्भर हुए बिना, WASM मॉड्यूल से फ़ाइलों, घड़ियों और नेटवर्क तक पहुंच को मानकीकृत करता है। इसका सबसे हालिया संस्करण, WASI प्रीव्यू 2, कंपोनेंट मॉडल पर आधारित है: प्रत्येक रनटाइम के लिए विशिष्ट बाइनरी प्रारूप के बजाय साझा टाइप किए गए इंटरफेस के साथ विभिन्न भाषाओं में लिखे गए मॉड्यूल की रचना करने के लिए एक तंत्र। वासटाइम और वासमर दोनों अपनी-अपनी गति से इस मानक को लागू करने पर काम कर रहे हैं।
वासमर अतिरिक्त रूप से WASIX का दस्तावेजीकरण करता है, एक एक्सटेंशन जिसका उद्देश्य POSIX प्राइमेटिव्स को कवर करना है जिन्हें आधिकारिक WASI मानक अभी तक कवर नहीं करता है, जैसे थ्रेड या अधिक व्यापक नेटवर्क सॉकेट। यह WebAssembly कार्य समूह द्वारा समर्थित मानक नहीं है, बल्कि वासमर पारिस्थितिकी तंत्र के लिए विशिष्ट विस्तार है।
ऑराबेस का मूल wasm मोड, wasm/mod.rsमें सत्यापित, वर्तमान में न तो WASI पूर्वावलोकन 2 और न ही घटक मॉडल का उपयोग करता है। यह एक घरेलू न्यूनतम होस्ट एबीआई है, जिसमें चार कार्य अतिथि मॉड्यूल के संपर्क में हैं, पूर्ण मानक नहीं। Cargo.toml wasmtimeक्रेट पर wasi सुविधा को भी सक्रिय नहीं करता है।
स्मृति अलगाव और समय: ईंधन, युग, सीमाएँ
दोनों रनटाइम प्रत्येक मॉड्यूल को उसकी अपनी रैखिक मेमोरी में अलग करते हैं, जिसमें स्पष्ट रूप से आयातित फ़ंक्शंस के बाहर होस्ट सिस्टम तक कोई सीधी पहुंच नहीं होती है। यह WebAssembly सुरक्षा मॉडल का आधार है, जो दोनों परियोजनाओं के लिए सामान्य है।
वासटाइम एक देशी निष्पादन फुटेज एपीआई, fuelको भी उजागर करता है: प्रत्येक निर्देश पहले से तय बजट का उपभोग करता है, और यह बजट समाप्त होने के बाद निष्पादन ठीक से रुक जाता है। एक दूसरा एपीआई, epochरुकावट, आपको प्रतीक्षा करते समय इंजन को अवरुद्ध किए बिना टाइमआउट लागू करने की अनुमति देता है। वासमर ने पैमाइश और प्रति-इंस्टेंस मेमोरी सीमा के अपने स्वयं के यांत्रिकी का दस्तावेजीकरण किया है; इस लेख ने उन्हें किसी तीसरे पक्ष के भंडार में सत्यापित नहीं किया है, इसलिए उन्हें आंकड़े दर आंकड़े में विभाजित नहीं किया गया है।
यह वही है जो ऑराबेस की aura-functions सेवा सक्षम करती है, जिसका विवरण वास्तविक स्रोत कोड के साथ अगले भाग में दिया गया है।
वास्मटाइम कोड में चेक किया गया, घोषित प्राथमिकता नहीं
aura-functions सेवा wasmtime को निष्क्रियकरण टिप्पणियों या डेव-निर्भरता कॉन्फ़िगरेशन के बिना, उत्पादन निर्भरता के रूप में घोषित करती है। रिपॉजिटरी में कोई फ़ाइल नहीं, न तो Cargo.toml और न ही .rsफ़ाइल, वासमर का उल्लेख करती है।
आरंभीकरण कोड स्पष्ट रूप से ईंधन को सक्रिय करता है और युग के अनुसार बाधित करता है, फिर StoreLimitsके साथ आह्वान द्वारा मेमोरी को सीमित करता है:
सभी तीन सीमाएं पर्यावरण चर के अनुसार कॉन्फ़िगर करने योग्य हैं, डिफ़ॉल्ट मान config/mod.rsमें चेक किए गए हैं: WASM_MAX_MEMORY_MB 64 पर, WASM_TIMEOUT_SECS 10 पर, WASM_MAX_FUEL एक अरब इकाइयों पर। पृष्ठभूमि में टाइमआउट चालू हो जाता है: tokio::spawn कॉन्फ़िगर की गई अवधि की प्रतीक्षा करता है, फिर प्रतीक्षा करते समय वर्तमान निष्पादन को अवरुद्ध किए बिना, इंजन युग को बढ़ाता है।
अतिथि मॉड्यूल के संपर्क में आने वाला ABI जानबूझकर न्यूनतम रहता है: चार होस्ट फ़ंक्शन, aura.log, aura.get_input, aura.set_output और aura.get_env, जो linker.func_wrapके माध्यम से पंजीकृत हैं। यह कंपोनेंट मॉडल नहीं है, न ही WASI प्रीव्यू 2: यह एक इन-हाउस अनुबंध है, संकीर्ण, एकल उपयोग के लिए डिज़ाइन किया गया है, एक HTTP एज फ़ंक्शन निष्पादित करता है और इसकी JSON प्रतिक्रिया को पुनर्प्राप्त करता है।
यह wasm मोड प्रति फ़ंक्शन एक विकल्प है, वैश्विक टॉगल नहीं। ऑराबेस आर्किटेक्चर अवलोकन अन्य पथ, डिफ़ॉल्ट denoमोड का विवरण देता है, जो एक अलग सेवा में जावास्क्रिप्ट/टाइपस्क्रिप्ट निष्पादित करता है। दोनों एक ही aura-functionsसेवा में सह-अस्तित्व में हैं।
What is checked here is the actual Wasmtime implementation and its default resource limits. No cold start figures are stated: see our dedicated analysis of the WebAssembly cold start for what is measurable, and what is not yet.
वासटाइम और वासमर, साथ-साथ
| शासन | बाइटकोड एलायंस, बहु-संगठन | वासमर इंक., वाणिज्यिक प्रकाशक |
|---|---|---|
| लाइसेंस | अपाचे-2.0 एलएलवीएम अपवाद के साथ | एमआईटी |
| कार्यान्वयन भाषा | जंग | जंग |
| संकलनकर्ता | क्रेनलिफ्ट (विंच वैकल्पिक, ऑराबेस पर सक्रिय नहीं) | आपकी पसंद का सिंगलपास, क्रेनलिफ्ट, एलएलवीएम |
| WASI मानक | WASI पूर्वावलोकन 2 + घटक मॉडल | WASI पूर्वावलोकन 2 + WASIX (वासमर के लिए विशिष्ट एक्सटेंशन) |
| चल रहे फ़ुटेज | ईंधन + युग के अनुसार व्यवधान (सत्यापित मूल एपीआई) | वासमर के लिए विशिष्ट तंत्र, यहां सत्यापित नहीं हैं |
| ऑराबेस द्वारा उपयोग किया जाता है | हाँ, आभा-कार्य, संस्करण 43 पिन किया गया | नहीं, कोई निर्भरता नहीं, प्रत्यक्ष या सकर्मक |
स्रोत: ऑराबेस रिपॉजिटरी से Cargo.toml और wasm/mod.rs, 24 अगस्त, 2026 को सीधे सत्यापित। प्रत्येक परियोजना के सार्वजनिक दस्तावेज़ीकरण से ली गई सामान्य वासटाइम और वासमर विशेषताएँ; इस तालिका में कोई भी तृतीय-पक्ष बेंचमार्क आंकड़े पुनः प्रकाशित नहीं किए गए हैं।
किसे क्या चुनना चाहिए
आप बिना किसी मौजूदा निर्भरता के, एक नया एज रनटाइम शुरू करते हैं। वासटाइम, एक बहु-विक्रेता फाउंडेशन द्वारा समर्थित, परियोजना के भविष्य के लिए एकल प्रकाशक पर निर्भर होने के जोखिम को कम करता है।
आपको बहुत बार और थोड़े समय के लिए सर्दी की शुरुआत होती है। वासमर का सिंगलपास बैकएंड कम अनुकूलित मशीन कोड की कीमत पर, लगभग तात्कालिक संकलन, इस आवश्यकता पर सीधे प्रतिक्रिया करता है।
आपको वर्तमान मानक WASI से परे POSIX प्राइमेटिव की आवश्यकता है। WASIX, वासमर एक्सटेंशन, थ्रेड्स और विस्तारित सॉकेट्स को कवर करता है जिन्हें अकेले WASI पूर्वावलोकन 2 अभी तक कवर नहीं करता है।
आप तृतीय-पक्ष मिडलवेयर के बिना एक देशी फुटेज और टाइमआउट एपीआई चाहते हैं। Wasmtime fuel और epoch को सीधे टोकरे में प्रदर्शित करता है, बिल्कुल वही जो aura-functions ऑराबेस में सक्षम बनाता है।