PRODसंप्रभु यूरोपीय BaaS मंचडैशबोर्ड खोलें →

इंजीनियरिंग · 8 मिनट पढ़ा

उत्पादन के लिए Wasmtime बनाम Wasmer Edge Functions

Affane Daylami · Fondateur · 25 जून 2026

ब्लॉग पर वापस जाएँ

ब्राउज़र के बाहर, किनारे पर या सर्वर-साइड पर कोड चलाने के लिए वासटाइम और वासमर दो सबसे अधिक उपयोग किए जाने वाले वेबअसेंबली रनटाइम हैं। ऑराबेस ने निर्णय लिया है: इसके एज फ़ंक्शंस का मूल WASM निष्पादन मोड वासमर को नहीं, बल्कि वासटाइम को एम्बेड करता है, जो सीधे संबंधित सेवा के Cargo.toml में सत्यापित होता है।

यह अंग्रेजी पाठ फ़्रेंच मूल से स्वचालित रूप से उत्पन्न हुआ था और अभी तक इसकी समीक्षा नहीं की गई है।
यह पृष्ठ स्वचालित रूप से अनुवादित किया गया था. अंग्रेजी संस्करण प्रामाणिक है.

यह चुनाव कोई दिखावटी प्राथमिकता नहीं है। यह लेख दो रनटाइम की तुलना करता है जो वास्तव में सत्यापित है, शासन, कंपाइलर, 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 कार्य समूह द्वारा समर्थित मानक नहीं है, बल्कि वासमर पारिस्थितिकी तंत्र के लिए विशिष्ट विस्तार है।

Aurabase WASM मोड क्या उपयोग नहीं करता है?

ऑराबेस का मूल wasm मोड, wasm/mod.rsमें सत्यापित, वर्तमान में न तो WASI पूर्वावलोकन 2 और न ही घटक मॉडल का उपयोग करता है। यह एक घरेलू न्यूनतम होस्ट एबीआई है, जिसमें चार कार्य अतिथि मॉड्यूल के संपर्क में हैं, पूर्ण मानक नहीं। Cargo.toml wasmtimeक्रेट पर wasi सुविधा को भी सक्रिय नहीं करता है।

#
सुरक्षा

स्मृति अलगाव और समय: ईंधन, युग, सीमाएँ

दोनों रनटाइम प्रत्येक मॉड्यूल को उसकी अपनी रैखिक मेमोरी में अलग करते हैं, जिसमें स्पष्ट रूप से आयातित फ़ंक्शंस के बाहर होस्ट सिस्टम तक कोई सीधी पहुंच नहीं होती है। यह WebAssembly सुरक्षा मॉडल का आधार है, जो दोनों परियोजनाओं के लिए सामान्य है।

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

यह वही है जो ऑराबेस की aura-functions सेवा सक्षम करती है, जिसका विवरण वास्तविक स्रोत कोड के साथ अगले भाग में दिया गया है।

#
ऑराबेस विकल्प

वास्मटाइम कोड में चेक किया गया, घोषित प्राथमिकता नहीं

aura-functions सेवा wasmtime को निष्क्रियकरण टिप्पणियों या डेव-निर्भरता कॉन्फ़िगरेशन के बिना, उत्पादन निर्भरता के रूप में घोषित करती है। रिपॉजिटरी में कोई फ़ाइल नहीं, न तो Cargo.toml और न ही .rsफ़ाइल, वासमर का उल्लेख करती है।

Cargo.tomltoml
# WASM रनटाइम
wasmtime = { version = "43", features = ["async", "cranelift"] }

आरंभीकरण कोड स्पष्ट रूप से ईंधन को सक्रिय करता है और युग के अनुसार बाधित करता है, फिर StoreLimitsके साथ आह्वान द्वारा मेमोरी को सीमित करता है:

wasm/mod.rsrust
let mut cfg = Config::new();
cfg.consume_fuel(true);
cfg.epoch_interruption(true);
let engine = Engine::new(&cfg)?;

// आह्वान द्वारा:
let limits = StoreLimitsBuilder::new()
    .memory_size(self.max_memory_mb as usize * 1024 * 1024)
    .build();
store.set_fuel(self.max_fuel)?;
store.epoch_deadline_async_yield_and_update(1);

सभी तीन सीमाएं पर्यावरण चर के अनुसार कॉन्फ़िगर करने योग्य हैं, डिफ़ॉल्ट मान 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 ऑराबेस में सक्षम बनाता है।

#
अक्सर पूछे जाने वाले प्रश्नों

पूछे जाने वाले प्रश्न

क्या वासटाइम वासमर से तेज़ है?+
यहां स्वेच्छा से कोई तुलनात्मक प्रदर्शन आंकड़े नहीं बताए गए हैं। दो रनटाइम अलग-अलग कंपाइलर्स (वासटाइम के लिए क्रेनलिफ्ट; वासमर के लिए सिंगलपास, क्रेनलिफ्ट या एलएलवीएम की पसंद) को उजागर करते हैं, जो संकलन गति और निष्पादन गति के बीच अलग-अलग ट्रेड-ऑफ का जवाब देते हैं। एन्क्रिप्टेड और सोर्स्ड प्रोसेसिंग के लिए WebAssembly कोल्ड स्टार्ट का हमारा समर्पित विश्लेषण देखें।
क्या हम एक ही प्रोजेक्ट में वासटाइम और वासमर का उपयोग कर सकते हैं?+
तकनीकी रूप से हाँ, चूँकि दोनों समान .wasm प्रारूप का उपभोग करते हैं। लेकिन यह एकीकरण सतह क्षेत्र, दो होस्ट एपीआई, दो कॉन्फ़िगरेशन मॉडल को दोगुना कर देता है, जिससे अधिकांश टीमों के लिए कोई शुद्ध लाभ नहीं होता है। ऑराबेस केवल एक शिप करता है, जिसे ऑरा-फ़ंक्शन सेवा के Cargo.toml में सत्यापित किया गया है।
क्या ऑराबेस एज के सभी फ़ंक्शंस वासमटाइम पर चलते हैं?+
नहीं, ऑराबेस एज फ़ंक्शंस का डिफ़ॉल्ट मोड एक अलग डेनो सेवा के माध्यम से जावास्क्रिप्ट/टाइपस्क्रिप्ट चलाता है। वास्म मोड, वास्मटाइम द्वारा संचालित, एक दूसरा निष्पादन पथ है, जिसे फ़ंक्शन-दर-फ़ंक्शन आधार पर चुना जाता है, डिफ़ॉल्ट पथ नहीं।
WebAssembly घटक मॉडल वास्तव में क्या प्रदान करता है?+
कंपोनेंट मॉडल किसी रनटाइम के लिए विशिष्ट बाइनरी प्रारूप पर निर्भर किए बिना, साझा टाइप किए गए इंटरफेस के साथ विभिन्न भाषाओं में लिखे गए WASM मॉड्यूल की संरचना को मानकीकृत करता है। ऑराबेस का मूल WASM मोड आज इसका उपयोग नहीं करता है: यह एक घरेलू न्यूनतम होस्ट ABI है, न कि कंपोनेंट मॉडल।

तैनाती के लिए तैयार हैं?

पाँच मिनट में आपका बैकएंड।

किसी क्रेडिट कार्ड की आवश्यकता नहीं · 500 एमबी निःशुल्क · 50,000 एमएयू