يأتي Wasmer 3.0 مع تحسينات في WASI و APIs وإدارة الذاكرة والمزيد

غسالة

Wasmer هو وقت تشغيل WebAssembly السريع والآمن الذي يتيح تشغيل الحاويات فائقة الخفة في أي مكان: من سطح المكتب إلى الأجهزة السحابية والحافة وأجهزة إنترنت الأشياء

بعد ما يقرب من 6 أشهر منذ الإصدار السابق ، تم إصدار الإصدار الجديد من Wasmer 3.0 ، الإصدار الرئيسي الثالث من المشروع الذي يتطور وقت تشغيل لتنفيذ وحدات WebAssembly يمكن استخدامها لإنشاء تطبيقات عالمية يمكن تشغيلها على أنظمة تشغيل مختلفة ، بالإضافة إلى تنفيذ تعليمات برمجية غير موثوق بها.

La القدرة على تشغيل نفس التطبيق على منصات مختلفة يتم توفيره عن طريق تجميع الكود في كود WebAssembly ذي المستوى المنخفض والذي يمكن تشغيله على أي نظام تشغيل أو تضمينه في برامج بلغات برمجة أخرى. البرامج عبارة عن حاويات خفيفة الوزن تقوم بتشغيل WebAssembly الزائف.

هذه الحاويات غير مرتبطة بنظام التشغيل ويمكن أن تحتوي على كود مكتوب في الأصل بأي لغة برمجة.

لترجمة WebAssembly إلى رمز جهاز النظام الأساسي الحالي ، يمكنك ذلك يدعم توصيل الخلفيات المختلفة للبناء (Singlepass، Cranelift، LLVM) والمحركات (باستخدام JIT أو توليد كود الآلة). يتم توفير التحكم في الوصول والتفاعل مع النظام بواسطة واجهة برمجة تطبيقات WASI (واجهة نظام WebAssembly) ، والتي توفر واجهات برمجة للعمل مع الملفات والمآخذ والوظائف الأخرى التي يوفرها نظام التشغيل.

منصة يسمح لك بتحقيق أداء تنفيذ التطبيق قريبًا من أداء البنيات الأصلية.

أهم المستجدات في Wasmer 3.0

في هذا الإصدار الجديد من Wasmer 3.0 ، تم إصدار القدرة على إنشاء ملفات أصلية قابلة للتنفيذ لأي نظام أساسي. الامر "Wasmer create-exe»تمت إعادة تصميمه بالكامل لتحويل ملف تعليمات برمجية وسيطة WebAssembly إلى ملفات قابلة للتنفيذ قائمة بذاتها لأنظمة Linux و Windows و macOS التي يمكن تشغيلها دون تثبيت Wasmer.

الجدة الأخرى التي تم تقديمها هي أن القدرة على تشغيل حزم WAPM موجود في دليل wapm.io باستخدام الأمر "wasmer run". على سبيل المثال ، قم بتنفيذ "wasmer run python / python»سيتم تنزيل حزمة python من مستودع wapm.io وتشغيلها.

تم إعادة تصميم Wasmer Rust API بالكامل، وتغيير طريقة تعامله مع الذاكرة وتوفير القدرة على تخزين كائنات Wasm بأمان في هيكل المتجر.

أبرز أيضًا في هذا الإصدار الجديد من Wasmer 3.0 هو تحسين تنفيذ WASI API (واجهة نظام WebAssembly) ، بالإضافة إلى تصحيح المشكلات في WASI API للعمل مع نظام الملفات. تم إعادة تصميم الأنواع الداخلية باستخدام WAI (واجهات WebAssembly) ، والتي ستسمح بتنفيذ سلسلة من الوظائف الجديدة في المستقبل.

بالإضافة إلى ذلك ، تم أيضًا تبسيط المحركات ، لأنه بدلاً من محركات منفصلة لـ JIT ، ربط ديناميكي وثابت (Universal ، Dylib ، StaticLib) ، يقدم الآن محركًا مشتركًا ويحمل التعليمات البرمجية ويحفظها التي يتم التحكم فيها على مستوى إعداد المعلمة.

لإلغاء تسلسل القطع الأثرية ، يتم استخدام إطار عمل rkyv ، الذي يوفر عملية نسخ صفري ، أي أنه لا يتطلب تخصيص ذاكرة إضافي ويقوم بإلغاء التسلسل باستخدام المخزن المؤقت المقدم في البداية فقط.

من تغييرات أخرى التي تتميز عن هذا الإصدار الجديد:

  • أدى استخدام rkyv إلى زيادة سرعة بدء التشغيل بشكل ملحوظ.
  • تم تحسين برنامج التحويل البرمجي Singlepass لدعم الوظائف متعددة القيم ، وتحسين الموثوقية ، وإضافة دعم لأطر معالجة الاستثناءات.
  • مجموعة المكونات wasmer- شبيبة تم تنفيذه لتشغيل Wasmer في متصفح الويب والتفاعل معه من JavaScript باستخدام المكتبة wasm-bindgen.
  • تم اقتراح هيكل جديد. عرض ذاكرة مما يسمح بقراءة البيانات وكتابتها في منطقة ذاكرة خطية.

أخيرًا ، تجدر الإشارة إلى أن البرامج يتم توزيعها في شكل وحدات WebAssembly العادية ، والتي يمكن إدارتها باستخدام مدير حزم WAPM. يتوفر Wasmer أيضًا كمكتبة يمكن استخدامها لتضمين رمز WebAssembly في برامج Rust و C / C ++ و C # و D و Python و JavaScript و Go و PHP و Ruby و Elixir و Java.

رمز المشروع مكتوب بلغة Rust ويتم توزيعه بموجب ترخيص MIT ويمكنك التحقق من المزيد عنه ، في الرابط التالي.


اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: AB Internet Networks 2008 SL
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.