Wasmer 3.0, WebAssembly මත පදනම් වූ යෙදුම් තැනීමේ මෙවලම් කට්ටලයක් තිබේ.

මෙය Wasmer ව්‍යාපෘතියේ තුන්වන ප්‍රධාන නිකුතුව වන අතර, විවිධ මෙහෙයුම් පද්ධති මත ධාවනය කළ හැකි විශ්වීය යෙදුම් නිර්මාණය කිරීමට මෙන්ම විශ්වාසදායක නොවන කේත සෑන්ඩ්බොක්ස් ක්‍රියාත්මක කිරීමට භාවිතා කළ හැකි WebAssembly මොඩියුල ක්‍රියාත්මක කිරීම සඳහා ධාවන කාලයක් වර්ධනය කරයි. ව්‍යාපෘති කේතය රස්ට් වලින් ලියා MIT බලපත්‍රය යටතේ බෙදා හැර ඇත.

විවිධ වේදිකා මත එකම යෙදුම ධාවනය කිරීමේ හැකියාව සපයනු ලබන්නේ ඕනෑම මෙහෙයුම් පද්ධතියක ධාවනය කළ හැකි හෝ වෙනත් ක්‍රමලේඛන භාෂාවල වැඩසටහන් වල අන්තර්ගත කළ හැකි පහත් මට්ටමේ WebAssembly අතරමැදි කේතයකට කේතය සම්පාදනය කිරීමෙනි. වැඩසටහන් යනු WebAssembly ව්‍යාජ කේත ක්‍රියාත්මක කරන සැහැල්ලු බහාලුම් වේ. මෙම බහාලුම් මෙහෙයුම් පද්ධතියට බැඳී නොමැති අතර ඕනෑම ක්‍රමලේඛන භාෂාවකින් මුලින් ලියා ඇති කේතය ඇතුළත් කළ හැක. WebAssembly වෙත සම්පාදනය කිරීමට Emscripten මෙවලම් කට්ටලය භාවිතා කළ හැක. WebAssembly වත්මන් වේදිකාවේ යන්ත්‍ර කේතයට පරිවර්තනය කිරීම සඳහා, විවිධ සම්පාදන පසුබිම් (Singlepass, Cranelift, LLVM) සහ එන්ජින් (JIT භාවිතයෙන් හෝ යන්ත්‍ර කේතය ජනනය කිරීම) සම්බන්ධ කිරීමට සහාය වේ.

යෙදුම් සෑන්ඩ්බොක්ස් පරිසරයක ප්‍රධාන පද්ධතියෙන් හුදකලා වන අතර ප්‍රකාශිත ක්‍රියාකාරීත්වයට පමණක් ප්‍රවේශය ඇත (හැකියාව මත පදනම් වූ ආරක්ෂක යාන්ත්‍රණය - එක් එක් සම්පත් (ගොනු, නාමාවලි, සොකට්, පද්ධති ඇමතුම්, ආදිය) සමඟ ක්‍රියා කිරීම සඳහා, යෙදුම කළ යුතුය. සුදුසු අධිකාරිය ලබා දෙනු ඇත). මෙහෙයුම් පද්ධතිය මඟින් සපයනු ලබන ගොනු, සොකට් සහ අනෙකුත් කාර්යයන් සමඟ වැඩ කිරීම සඳහා ක්‍රමලේඛන අතුරුමුහුණත් සපයන WASI (WebAssembly System Interface) API භාවිතයෙන් පද්ධතිය සමඟ ප්‍රවේශ පාලනය සහ අන්තර්ක්‍රියා සපයනු ලැබේ.

දේශීය එකලස්කිරීම් වලට ආසන්නව යෙදුම් ක්‍රියාත්මක කිරීමේ කාර්ය සාධනය ලබා ගැනීමට වේදිකාව ඔබට ඉඩ සලසයි. WebAssembly මොඩියුලයක් සඳහා Native Object Engine භාවිතා කරමින්, ඔබට ස්වදේශීය කේතය ("wasmer compile -native" පෙර සකසන ලද .so, .dylib සහ .dll වස්තු ගොනු උත්පාදනය කිරීම සඳහා) ජනනය කළ හැක, එය ධාවනය කිරීමට අවම ධාවන කාලයක් අවශ්‍ය වන නමුත්, එහි සියලුම විශේෂාංග රඳවා තබා ගනී. වැලිපිල්ල හුදකලා කිරීම. බිල්ට් වොස්මර් සමඟ පූර්ව සම්පාදනය කළ වැඩසටහන් සැපයිය හැකිය. Rust API සහ Wasm-C-API ඇඩෝන සහ ඇඩෝන සෑදීම සඳහා පිරිනමනු ලැබේ.

WebAssembly බහාලුමක් දියත් කිරීම සඳහා, බාහිර පරායත්තතා නොමැතිව (“curl https://get.wasmer.io -sSfL | sh”) එන පද්ධතිය මත Wasmer ධාවන කාලය ස්ථාපනය කිරීම ප්‍රමාණවත් වන අතර අවශ්‍ය ගොනුව ධාවනය කරන්න (“wasmer test .wasm"). WAPM පැකේජ කළමනාකරු භාවිතයෙන් කළමනාකරණය කළ හැකි සාමාන්‍ය WebAssembly මොඩියුල ආකාරයෙන් වැඩසටහන් බෙදා හරිනු ලැබේ. Wasmer යනු Rust, C/C++, C#, D, Python, JavaScript, Go, PHP, Ruby, Elixir, සහ Java වැඩසටහන් වල WebAssembly කේත කාවැද්දීමට භාවිතා කළ හැකි පුස්තකාලයක් ලෙසද පවතී.

Wasmer 3.0 හි ප්රධාන වෙනස්කම්:

  • ඕනෑම වේදිකාවක් සඳහා ස්වදේශීය ක්‍රියාත්මක කළ හැකි ගොනු නිර්මාණය කිරීමේ හැකියාව එක් කරන ලදී. WebAssembly අතරමැදි කේත ගොනුවක් Linux, Windows සහ macOS වේදිකා සඳහා ස්වයං අන්තර්ගත ක්‍රියාත්මක කළ හැකි බවට පරිවර්තනය කිරීම සඳහා "wasmer create-exe" විධානය සම්පූර්ණයෙන්ම ප්‍රතිනිර්මාණය කර ඇත.
  • "wasmer run" විධානය භාවිතයෙන් wapm.io නාමාවලියෙහි පිහිටා ඇති WAPM පැකේජ ධාවනය කිරීමේ හැකියාව ලබා දී ඇත. උදාහරණයක් ලෙස, "wasmer run python/python" ක්‍රියාත්මක කිරීමෙන් python පැකේජය wapm.io ගබඩාවෙන් බාගත කර එය ක්‍රියාත්මක කරයි.
  • Wasmer Rust API සම්පූර්ණයෙන්ම ප්‍රතිනිර්මාණය කර ඇති අතර, මතකය සමඟ වැඩ කිරීමේ විලාසය වෙනස් කර ඇති අතර ගබඩා ව්‍යුහය තුළ Wasm වස්තූන් ආරක්ෂිතව ගබඩා කිරීමේ හැකියාව ලබා දී ඇත. රේඛීය මතක ප්‍රදේශයකට දත්ත කියවීමට සහ ලිවීමට ඉඩ සලසන නව MemoryView ව්‍යුහයක් යෝජනා කෙරේ.
  • Wasmer වෙබ් බ්‍රවුසරයක ධාවනය කිරීමට සහ Wasm-bindgen පුස්තකාලය භාවිතයෙන් JavaScript වෙතින් එය සමඟ අන්තර් ක්‍රියා කිරීමට Wasmer-js සංරචක කට්ටලයක් ක්‍රියාත්මක කර ඇත. Wasmer-js සාමාන්‍ය මෙහෙයුම් පද්ධති මත Wasmer ධාවනය කිරීමට නිර්මාණය කර ඇති Wasmer-sys සංරචක වලට සමාන වේ.
  • සරල කළ එන්ජින්. JIT, ගතික සහ ස්ථිතික සම්බන්ධ කිරීම (Universal, Dylib, StaticLib) සඳහා වෙනම එන්ජින් වෙනුවට, එක් පොදු එන්ජිමක් දැන් පිරිනමනු ලබන අතර පරාමිති සැකසුම් මට්ටමින් පාලනය වන කේතය පැටවීම සහ සුරැකීම.
  • කෞතුක වස්තු විනාශ කිරීම සඳහා, ශුන්‍ය පිටපත් ක්‍රියාකාරිත්වය සහතික කරන rkyv රාමුව භාවිතා වේ, i.e. අමතර මතක වෙන් කිරීමක් අවශ්‍ය නොවන අතර මුලින් සපයන ලද බෆරය පමණක් භාවිතා කරමින් deserialization සිදු කරයි. rkyv භාවිතය ආරම්භක වේගය සැලකිය යුතු ලෙස වැඩි කළේය.
  • Singlepass සම්පාදකය බහු වටිනාකම් ශ්‍රිත සඳහා සහය වීමට, විශ්වසනීයත්වය වැඩි දියුණු කිරීමට සහ ව්‍යතිරේක හැසිරවීමේ රාමු සඳහා සහය එක් කිරීමට වැඩිදියුණු කර ඇත.
  • WASI (WebAssembly පද්ධති අතුරුමුහුණත) API වැඩිදියුණු කළ ක්‍රියාත්මක කිරීම. ගොනු පද්ධතිය සමඟ වැඩ කිරීම සඳහා WASI API හි ස්ථාවර ගැටළු. WAI (WebAssembly Interfaces) භාවිතයෙන් අභ්‍යන්තර වර්ග ප්‍රතිනිර්මාණය කර ඇති අතර එමඟින් අනාගතයේදී නව විශේෂාංග මාලාවක් ක්‍රියාත්මක කිරීමට ඉඩ ලබා දේ.

මූලාශ්රය: opennet.ru

අදහස් එක් කරන්න