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

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

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

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

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

Wasmer 3.0 ۾ اهم تبديليون:

  • ڪنهن به پليٽ فارم لاءِ اصلي قابل عمل فائلون ٺاهڻ جي صلاحيت شامل ڪئي وئي. "wasmer create-exe" ڪمانڊ مڪمل طور تي تبديل ڪيو ويو آھي ھڪڙي WebAssembly وچولي ڪوڊ فائل کي لينڪس، ونڊوز ۽ macOS پليٽ فارمن لاءِ پاڻمرادو ايگزيڪيوٽوبلز ۾ تبديل ڪرڻ لاءِ جيڪي پاڻ Wasmer کي انسٽال ڪرڻ کان سواءِ هلائي سگھن ٿيون.
  • "wasmer run" ڪمانڊ استعمال ڪندي wapm.io ڊاريڪٽري ۾ موجود WAPM پيڪيجز کي هلائڻ جي صلاحيت ڏني وئي آھي. مثال طور، "wasmer run python/python" تي عمل ڪرڻ wapm.io مخزن مان پٿون پيڪيج ڊائون لوڊ ڪندو ۽ ان کي هلائيندو.
  • Wasmer Rust API کي مڪمل طور تي ٻيهر ڊزائين ڪيو ويو آهي، جنهن ۾ ميموري سان ڪم ڪرڻ جو انداز تبديل ڪيو ويو آهي ۽ اسٽور جي ڍانچي ۾ Wasm شين کي محفوظ طريقي سان رکڻ جي صلاحيت ڏني وئي آهي. ھڪڙو نئون MemoryView ڍانچو تجويز ڪيو ويو آھي جيڪو ڊيٽا کي پڙھڻ ۽ لکڻ جي اجازت ڏئي ٿو ھڪڙي لڪير ياداشت واري علائقي ۾.
  • Wasmer-js اجزاء جو هڪ سيٽ لاڳو ڪيو ويو آهي Wasmer کي ويب برائوزر ۾ هلائڻ ۽ جاوا اسڪرپٽ مان ان سان رابطو ڪرڻ لاءِ wasm-bindgen لائبريري استعمال ڪندي. Wasmer-js ڪارڪردگي ۾ ساڳيو آهي wasmer-sys اجزاء سان جيڪو Wasmer کي باقاعده آپريٽنگ سسٽم تي هلائڻ لاءِ ٺهيل آهي.
  • آسان انجڻين. JIT، متحرڪ ۽ جامد ڳنڍڻ (يونيورسل، ڊيليب، StaticLib) لاءِ الڳ انجڻ جي بدران، ھڪڙو عام انجڻ ھاڻي پيش ڪيو ويو آھي ۽ ڪوڊ لوڊ ڪرڻ ۽ بچاءُ ڪرڻ جو ڪوڊ جنھن ۾ پيٽرول سيٽنگ جي سطح تي ڪنٽرول ڪيو ويندو آھي.
  • نموني کي ختم ڪرڻ لاء، rkyv فريم ورڪ استعمال ڪيو ويندو آهي، جيڪو صفر-ڪاپي آپريشن کي يقيني بڻائي ٿو، يعني. ڪابه اضافي ميموري مختص ڪرڻ جي ضرورت ناهي ۽ صرف شروعاتي طور تي مهيا ڪيل بفر استعمال ڪندي ڊيسيريلائيزيشن کي انجام ڏيڻ. rkyv جو استعمال خاص طور تي شروعاتي رفتار کي وڌايو.
  • سنگل پاس ڪمپلر کي بهتر ڪيو ويو آھي گھڻن قدر جي ڪمن کي سپورٽ ڪرڻ، اعتماد کي بھتر ڪرڻ، ۽ استثنيٰ ھينڊلنگ فريم لاءِ سپورٽ شامل ڪرڻ لاءِ.
  • WASI (WebAssembly System Interface) API جو بهتر عمل. فائل سسٽم سان ڪم ڪرڻ لاءِ WASI API ۾ حل ٿيل مسئلا. اندروني قسمن کي WAI (WebAssembly Interfaces) استعمال ڪندي ٻيهر ڊزائين ڪيو ويو آهي، جيڪو مستقبل ۾ نئين خاصيتن جو هڪ سلسلو لاڳو ڪرڻ جي اجازت ڏيندو.

جو ذريعو: opennet.ru

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