Wasmer 2.0، WebAssembly تي ٻڌل ايپليڪيشنون ٺاهڻ لاءِ هڪ ٽول ڪٽ، دستياب آهي

Wasmer پروجيڪٽ پنهنجو ٻيو وڏو رليز جاري ڪيو آهي، WebAssembly ماڊلز تي عمل ڪرڻ لاءِ هڪ رن ٽائم ٺاهي ٿو جيڪو آفاقي ايپليڪيشنون ٺاهڻ لاءِ استعمال ٿي سگهي ٿو جيڪي مختلف آپريٽنگ سسٽم تي هلائي سگهن ٿيون، انهي سان گڏ بي اعتمادي ڪوڊ کي اڪيلائي ۾ هلائڻ لاءِ. پروجيڪٽ ڪوڊ مورچا ۾ لکيل آهي ۽ MIT لائسنس تحت ورهايو ويو آهي.

پورٽبلٽي حاصل ڪئي ويندي آهي ايپليڪيشن ڪوڊ کي گڏ ڪرڻ سان هيٺين سطح جي WebAssembly وچولي ڪوڊ ۾، جيڪو ڪنهن به OS تي هلائي سگھي ٿو يا ٻين پروگرامنگ ٻولين ۾ پروگرامن ۾ شامل ٿي سگھي ٿو. پروگرام هلڪي وزن وارا ڪنٽينر آهن جيڪي هلائيندا آهن WebAssembly pseudocode. اهي ڪنٽينر آپريٽنگ سسٽم سان ڳنڍيل نه آهن ۽ ڪوڊ شامل ڪري سگھن ٿا اصل ۾ ڪنهن به پروگرامنگ ٻولي ۾ لکيل آهي. Emscripten ٽول ڪٽ استعمال ڪري سگھجي ٿو WebAssembly کي گڏ ڪرڻ لاءِ. WebAssembly کي موجوده پليٽ فارم جي مشين ڪوڊ ۾ ترجمو ڪرڻ لاءِ، اھو مختلف ڪمپيليشن پٺاڻن (Singlepass، Cranelift، LLVM) ۽ انجڻين (JIT يا مشين ڪوڊ جي نسل کي استعمال ڪندي) جي ڪنيڪشن کي سپورٽ ڪري ٿو.

سسٽم سان رسائي ڪنٽرول ۽ رابطي کي WASI (WebAssembly System Interface) API استعمال ڪندي مهيا ڪيو ويو آهي، جيڪو آپريٽنگ سسٽم پاران مهيا ڪيل فائلن، ساکٽس ۽ ٻين ڪمن سان ڪم ڪرڻ لاء پروگرامنگ انٽرفيس مهيا ڪري ٿو. ايپليڪيشنن کي سينڊ باڪس ماحول ۾ مکيه سسٽم کان الڳ ڪيو ويو آهي ۽ صرف اعلان ڪيل ڪارڪردگي تائين رسائي آهي (قابليت جي انتظام تي ٻڌل هڪ حفاظتي ميڪانيزم - هر وسيلن سان عملن لاءِ (فائل، ڊائريڪٽري، ساکٽ، سسٽم ڪال، وغيره)، درخواست کي مناسب اختيار ڏنا وڃن).

WebAssembly ڪنٽينر لانچ ڪرڻ لاءِ، سسٽم تي Wasmer رن ٽائم انسٽال ڪرڻ ڪافي آهي، جيڪو ٻاهرين انحصار کان سواءِ اچي ٿو (“curl https://get.wasmer.io -sSfL | sh”)، ۽ ضروري فائل هلائي (“wasmer test) .wasm"). پروگرامن کي عام WebAssembly ماڊلز جي صورت ۾ ورهايو ويندو آهي، جن کي WAPM پيڪيج مئنيجر استعمال ڪندي منظم ڪري سگهجي ٿو. Wasmer هڪ لائبريري جي طور تي پڻ دستياب آهي جيڪا استعمال ڪري سگهجي ٿي WebAssembly ڪوڊ داخل ڪرڻ لاءِ Rust, C/C++, C#, D, Python, JavaScript, Go, PHP, Ruby, Elixir, and Java programs.

پليٽ فارم توهان کي مقامي اسيمبلين جي ويجهو ايپليڪيشن جي عمل جي ڪارڪردگي حاصل ڪرڻ جي اجازت ڏئي ٿو. WebAssembly ماڊل لاءِ اصلي آبجیکٹ انجڻ استعمال ڪندي، توھان ٺاھي سگھوٿا اصلي ڪوڊ ("wasmer compile -native" for generating precompiled .so, .dylib ۽ .dll آبجیکٹ فائلون)، جنھن کي هلائڻ لاءِ گھٽ ۾ گھٽ رن ٽائم جي ضرورت آھي، پر ان جي سڀني خصوصيتن کي برقرار رکي ٿو. sandbox ڌار ڪرڻ. اهو ممڪن آهي ته اڳ ۾ ٺهيل پروگرامن کي فراهم ڪرڻ سان گڏ تعمير ٿيل Wasmer. Rust API ۽ Wasm-C-API پيش ڪيا ويا آهن اضافو ۽ اضافو ٺاهڻ لاءِ.

Wasmer جي ورزن نمبر ۾ هڪ اهم تبديلي اندروني API ۾ غير مطابقت واري تبديلين جي تعارف سان لاڳاپيل آهي، جيڪا ڊولپرز جي مطابق، پليٽ فارم استعمال ڪندڙن جي 99٪ تي اثر انداز نه ٿيندي. انهن تبديلين ۾ جيڪي مطابقت کي ٽوڙيندا آهن، سيريلائز ٿيل Wasm ماڊلز جي فارميٽ ۾ پڻ تبديلي آهي (Wasmer 1.0 ۾ سيريل ٿيل ماڊلز Wasmer 2.0 ۾ استعمال ٿيڻ جي قابل نه هوندا). ٻيون تبديليون:

  • SIMD (اڪيلو هدايتون، گھڻن ڊيٽا) هدايتون لاء سپورٽ، ڊيٽا جي عملن جي متوازي ڪرڻ جي اجازت ڏئي ٿي. علائقن ۾ جن ۾ SIMD جو استعمال ڪارڪردگي کي بهتر بڻائي سگھي ٿو مشين سکيا، وڊيو انڪوڊنگ ۽ ڊيڪوڊنگ، تصويري پروسيسنگ، فزيڪل پروسيسنگ سموليشن، ۽ گرافڪس مينيپوليشن.
  • حوالن جي قسمن لاءِ سپورٽ، Wasm ماڊلز کي ٻين ماڊيولن ۾ يا هيٺئين ماحول ۾ معلومات تائين رسائي جي اجازت ڏئي ٿي.
  • اهم ڪارڪردگي اصلاحون ڪيون ويون آهن. LLVM رن ٽائم جي رفتار سچل پوائنٽ نمبرن سان لڳ ڀڳ 50 سيڪڙو وڌي وئي آھي. فنڪشن ڪالون خاص طور تي تيز ڪيون ويون آهن حالتن کي گهٽائڻ سان جيڪي ڪنيل تائين رسائي جي ضرورت هونديون آهن. ڪرين لفٽ ڪوڊ جنريٽر جي ڪارڪردگي 40 سيڪڙو تائين وڌي وئي آهي. ڊيٽا کي ختم ڪرڻ جو وقت گھٽايو ويو.
    Wasmer 2.0، WebAssembly تي ٻڌل ايپليڪيشنون ٺاهڻ لاءِ هڪ ٽول ڪٽ، دستياب آهي
    Wasmer 2.0، WebAssembly تي ٻڌل ايپليڪيشنون ٺاهڻ لاءِ هڪ ٽول ڪٽ، دستياب آهي
  • وڌيڪ صحيح طور تي جوهر کي ظاهر ڪرڻ لاء، انجڻ جا نالا تبديل ڪيا ويا آهن: JIT → Universal، Native → Dylib (Dynamic Library)، Object File → StaticLib (Static Library).

جو ذريعو: opennet.ru

تبصرو شامل ڪريو