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-এর চেয়ে দ্রুত চলেছে। 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