W3C به WebAssembly وضعیت استاندارد توصیه شده می دهد

کنسرسیوم W3C اعلام کرد در مورد دادن وضعیت استاندارد توصیه شده به فناوری WebAssembly. WebAssembly کد متوسط، جهانی و سطح پایین مستقل از مرورگر را برای اجرای برنامه های کاربردی که از زبان های برنامه نویسی مختلف کامپایل شده اند، ارائه می دهد. WebAssembly به عنوان یک فناوری قابل حمل امیدوارکننده تر و متقابل مرورگر برای ایجاد برنامه های کاربردی وب با کارایی بالا قرار گرفته است. WebAssembly را می توان برای کارهایی مانند رمزگذاری ویدئو، پردازش صدا، گرافیک و دستکاری سه بعدی، توسعه بازی، عملیات رمزنگاری، محاسبات ریاضی و ایجاد پیاده سازی های قابل حمل زبان های برنامه نویسی استفاده کرد.

WebAssembly از بسیاری جهات شبیه به Asm.js است، اما از این جهت متفاوت است که یک فرمت باینری است که به جاوا اسکریپت متصل نیست. WebAssembly به جمع آوری زباله نیاز ندارد زیرا از مدیریت حافظه صریح استفاده می کند. با استفاده از JIT برای WebAssembly، می توانید به سطوح عملکردی نزدیک به کد بومی دست یابید. از جمله اهداف اصلی WebAssembly اطمینان از قابل حمل بودن، رفتار قابل پیش بینی و اجرای کد یکسان در پلتفرم های مختلف است. اخیرا WebAssembly نیز داشته است پیشبرد به عنوان یک پلت فرم جهانی برای اجرای کد امن در هر زیرساخت، سیستم عامل و دستگاه، نه محدود به مرورگرها.

W3C سه مشخصات مربوط به WebAssembly را استاندارد کرده است:

  • هسته وب - یک ماشین مجازی سطح پایین برای اجرای کد میانی WebAssembly را توصیف می کند. منابع مرتبط با WebAssembly در قالب ".wasm"، مشابه فایل ".class" جاوا، حاوی داده های ثابت و بخش های کد برای کار با آن داده ها هستند.
  • WebAssembly Web API - یک رابط برنامه نویسی بر اساس مکانیزم Promise برای درخواست و اجرای منابع ".wasm" تعریف می کند. فرمت منبع WebAssembly برای شروع اجرا بدون انتظار برای بارگیری کامل فایل بهینه شده است که پاسخگویی برنامه های وب را بهبود می بخشد.
  • رابط جاوا اسکریپت WebAssembly - یک API برای ادغام با جاوا اسکریپت ارائه می دهد. به شما امکان می دهد مقادیر را دریافت کنید و پارامترها را به توابع WebAssembly منتقل کنید. اجرای WebAssembly از مدل امنیتی جاوا اسکریپت پیروی می کند و تمام تعاملات با سیستم اصلی مانند اجرای کد جاوا اسکریپت انجام می شود.

در آینده، ما قصد داریم مشخصاتی را برای ویژگی های WebAssembly مانند:

  • Multithreading با حافظه مشترک و دسترسی به حافظه اتمی.
  • عملیات برداری مبتنی بر SIMD، اجازه موازی سازی اجرای حلقه را می دهد.
  • انواع مرجع برای ارجاع مستقیم به اشیا از کد WebAssembly.
  • امکان فراخوانی توابع بدون صرف فضای اضافی روی پشته.
  • ادغام با ماژول های ECMAScript - توانایی بارگذاری کد WebAssembly از جاوا اسکریپت به عنوان ماژول هایی که با مشخصات ECMAScript 6 مطابقت دارند.
  • حالت جمع آوری زباله؛
  • رابط های اشکال زدایی؛
  • آیا من بودم (WebAssembly System Interface) - API برای تعامل مستقیم با سیستم عامل (POSIX API برای کار با فایل ها، سوکت ها و غیره).

    منبع: opennet.ru

اضافه کردن نظر