HeadlinesBriefing HeadlinesBriefing.com

NetWasm: WASI के साथ C# से छोटा स्टैंडअलोन Wasm

Hacker News •
×

NetWasm एक स्वतंत्र .NET कंपाइलर, कोर लाइब्रेरी, रनटाइम और SDK है, जो C# और .NET CIL को सीधे WebAssembly में संकलित करता है। अन्य तरीकों के विपरीत, यह उत्पादन में डेस्कटॉप CLR, Mono, dotnet.js या एप्लिकेशन DLL को साथ नहीं ले जाता, इसलिए परिणामी मॉड्यूल छोटे और स्वतंत्र रहते हैं।

समान print-42 वर्कलोड पर मापी गई तुलना में, सटीक Compact कचरा संग्रहकर्ता वाले NetWasm ने 47,895 बाइट का WASI Preview 2 कंपोनेंट बनाया। आकार के लिए अनुकूलित Rust 1.95.0 बिल्ड 53,635 बाइट का रहा। यह कच्चे रूप में 10.7% छोटा और Brotli-11 के साथ 19.5% छोटा है। NetWasm का आंकड़ा उसके डिफ़ॉल्ट Release प्रकाशन को दर्शाता है, जबकि Rust बिल्ड में Cargo की दस्तावेज़ित आकार सेटिंग्स जोड़ी गई थीं। Binaryen का wasm-opt NetWasm की पाइपलाइन के भीतर बिना किसी अतिरिक्त इंस्टॉलेशन के चलता है।

आवंटन और कचरा संग्रह बेंचमार्क पर, NetWasm Mono AOT से भी तेज़ चला, जिसे उसी C# स्रोत से संकलित करके Wasmtime के अंतर्गत चलाया गया था। पूर्ण लेनदेन समय 26% घटा, बनाए रखे गए ऑब्जेक्ट ग्राफ़ का समय 38% घटा, और UI चर्न समय 40% घटा। ये आंकड़े Apple M1 Max पर 15 रनों के मध्यमान हैं, और प्रत्येक रन की जाँच डेस्कटॉप .NET के परिणाम से की गई।

46.7 KiB का बेसलाइन कोई सीमा नहीं है। NetWasm C# 15, JavaScript मॉड्यूल, Web Workers, स्टैटिक .a इंटरॉप, WIT और WASI P2 कंपोनेंट, एक्सप्रेशन ट्री, HTTP, JSON, XML और Regex लाइब्रेरी, तथा wasm64 का समर्थन करता है। यह सामान्य dotnet CLI के माध्यम से प्रोजेक्ट्स को बना, चला, प्रकाशित और परीक्षण कर सकता है।

स्रोत: Hacker News · HeadlinesBriefing द्वारा सारांशित