Wasmer 2.0، د WebAssembly پر بنسټ د غوښتنلیکونو جوړولو لپاره یوه وسیله کټ شتون لري

د Wasmer پروژې خپل دوهم لوی ریلیز خپور کړ ، د WebAssembly ماډلونو اجرا کولو لپاره د رن ټایم رامینځته کول چې د نړیوال غوښتنلیکونو رامینځته کولو لپاره کارول کیدی شي چې په مختلف عملیاتي سیسټمونو کې پرمخ وړل کیدی شي ، او همدارنګه په انزوا کې د بې باوره کوډ چلولو لپاره. د پروژې کوډ په زنګ کې لیکل شوی او د MIT جواز لاندې ویشل شوی.

پورټ وړتیا د ټیټ کچې WebAssembly منځګړی کوډ کې د غوښتنلیک کوډ تالیف کولو سره ترلاسه کیږي، کوم چې په هر OS کې چلیدلی شي یا په نورو پروګرامینګ ژبو کې پروګرامونو کې ځای پرځای کیدی شي. پروګرامونه لږ وزن لرونکي کانتینرونه دي چې د WebAssembly pseudocode چلوي. دا کانتینرونه په عملیاتي سیسټم پورې تړلي ندي او کولی شي په هرډول پروګرامینګ ژبه کې لیکل شوي کوډ شامل کړي. د Emscripten Toolkit 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 د یو کتابتون په توګه هم شتون لري چې د ویب اسمبلي کوډ په Rust، C/C++، C#، D، Python، JavaScript، Go، PHP، Ruby، Elixir، او Java پروګرامونو کې د ځای پرځای کولو لپاره کارول کیدی شي.

پلیټ فارم تاسو ته اجازه درکوي د اصلي مجلسونو سره نږدې د غوښتنلیک اجرا کولو فعالیت ترلاسه کړئ. د WebAssembly ماډل لپاره د اصلي آبجیکٹ انجن په کارولو سره، تاسو کولی شئ د ماشین کوډ تولید کړئ ("wasmer compile -native" د مخکې جوړ شوي .so, .dylib او .dll آبجیکٹ فایلونو تولید لپاره)، کوم چې د چلولو لپاره لږ تر لږه وخت ته اړتیا لري، مګر د سانډ بکس ټول جلا کول ساتي. برخی. دا ممکنه ده چې د جوړ شوي Wasmer سره مخکې له مخکې جوړ شوي پروګرامونه وړاندې کړئ. Rust API او Wasm-C-API د اضافو او توسیعونو رامینځته کولو لپاره وړاندیز کیږي.

د واسمر نسخه شمیره کې د پام وړ بدلون د داخلي API کې د نامناسب بدلونونو معرفي کولو سره تړاو لري ، کوم چې د پراختیا کونکو په وینا ، د پلیټ فارم کاروونکو 99٪ اغیزه ونکړي. د هغه بدلونونو په مینځ کې چې مطابقت ماتوي ، د سیریل شوي Wasm ماډلونو په شکل کې هم بدلون شتون لري (په Wasmer 1.0 کې سیریل شوي ماډلونه به په Wasmer 2.0 کې ونه کارول شي). نور بدلونونه:

  • د SIMD (واحد لارښوونې، څو ډیټا) لارښوونو لپاره ملاتړ، د معلوماتو عملیاتو موازي کولو ته اجازه ورکوي. هغه ساحې چې د SIMD کارول کولی شي د پام وړ فعالیت ښه کړي د ماشین زده کړه، ویډیو کوډ کول او کوډ کول، د عکس پروسس کول، د فزیکي پروسې سمول، او د ګرافیک لاسوهنه شامل دي.
  • د حوالې ډولونو لپاره ملاتړ ، د Wasm ماډلونو ته اجازه ورکوي چې په نورو ماډلونو یا لاندې چاپیریال کې معلوماتو ته لاسرسی ومومي.
  • د پام وړ فعالیت اصلاح شوي. د فلوټینګ پوائنټ شمیرو سره د LLVM چلولو سرعت نږدې 50٪ ډیر شوی. د فنکشن زنګونه د پام وړ ګړندي شوي دي د شرایطو کمولو سره چې کرنل ته لاسرسي ته اړتیا لري. د کرین لیفټ کوډ جنریټر فعالیت 40٪ ډیر شوی. د ډیټا ډیسیریل کولو وخت کم شوی.
    Wasmer 2.0، د WebAssembly پر بنسټ د غوښتنلیکونو جوړولو لپاره یوه وسیله کټ شتون لري
    Wasmer 2.0، د WebAssembly پر بنسټ د غوښتنلیکونو جوړولو لپاره یوه وسیله کټ شتون لري
  • د جوهر په دقیق ډول منعکس کولو لپاره، د انجنونو نومونه بدل شوي دي: JIT → یونیورسل، اصلي → ډیلیب (متحرک کتابتون)، د آبجیکٹ فایل → StaticLib (جامد کتابتون).

سرچینه: opennet.ru

Add a comment