
تم تطوير المنصة بواسطة Ryan Dahl ، مبتكر Node.js.
مؤخرا تم إطلاق خبر إطلاق الإصدار الجديد من إطار دينو 1.28، والتي تتيح تنفيذ تطبيقات JavaScript و TypeScript قائمة بذاتها والتي يمكن استخدامها لإنشاء وحدات تحكم تعمل على الخادم.
تم إنشاء Deno لتزويد المستخدمين ببيئة أكثر أمانًا والقضاء على المفاهيم الخاطئة في بنية Node.js. لتحسين الأمان ، تمت كتابة الارتباط حول محرك V8 بلغة Rust ، مما يمنع العديد من الثغرات الأمنية التي تنشأ بسبب معالجة الذاكرة منخفضة المستوى.
لمعالجة الطلبات في وضع عدم الحظر ، يتم استخدام إطار عمل Tokio ، المكتوب أيضًا في Rust. يسمح لك Tokio بإنشاء تطبيقات عالية الأداء استنادًا إلى بنية مدفوعة بالأحداث ، ودعم تعدد مؤشرات الترابط ومعالجة طلبات الشبكة بشكل غير متزامن.
بعض الميزات أهمها دينو هي التالية:
- دعم لغة TypeScript المضمنة بالإضافة إلى JavaScript. للتحقق من الأنواع وإنشاء JavaScript ، يتم استخدام مترجم TypeScript العادي ، مما يؤدي إلى انخفاض في الأداء مقارنةً بتحليل JavaScript في V8.
- يأتي وقت التشغيل في شكل ملف تنفيذي واحد مستقل (“deno”). لتشغيل التطبيقات باستخدام Deno ، ما عليك سوى تنزيل ملف قابل للتنفيذ لمنصتك ، بحجم 30 ميغابايت تقريبًا ، ولا يحتوي على تبعيات خارجية ولا يتطلب أي تثبيت خاص على نظامك.
- معالجة فعالة للتطبيق لطلبات الشبكة عبر HTTP ، تم تصميم النظام الأساسي لبناء تطبيقات شبكة عالية الأداء
- القدرة على إنشاء تطبيقات ويب عالمية يمكن تشغيلها في كل من Deno ومتصفح الويب العادي
- وجود مجموعة معيارية من الوحدات ، لا يتطلب استخدامها الارتباط بالتبعيات الخارجية.
- تم أيضًا مراجعة واختبار الوحدات من المجموعة القياسية للتأكد من توافقها
- تتضمن الحزمة نظامًا مدمجًا لفحص التبعية (أمر "deno info") وأداة مساعدة لتنسيق التعليمات البرمجية (deno fmt).
- يمكن دمج جميع البرامج النصية للتطبيق في ملف JavaScript واحد.
الأخبار الرئيسية لـ Deno 1.28
التغيير الرئيسي في الإصدار الجديد هو استقرار التوافق مع الحزم المستضافة في مستودع NPM، ماذا يسمح لـ Deno باستخدام أكثر من 1,3 مليون وحدة مصمم لمنصة Node.js. على سبيل المثال ، يمكن للتطبيقات المستندة إلى Deno الآن استخدام وحدات الوصول المستمر إلى البيانات مثل Prisma و Mongoose و MySQL ، بالإضافة إلى أطر أمامية مثل React و Vue.
لا تزال بعض وحدات NPM غير متوافقة مع Deno، على سبيل المثال ، بسبب الارتباطات ببيئات Node.js معينة ، مثل ملف package.json. كما أنه من غير الممكن استخدام الأمر "deno compile" مع وحدات NPM. يتم التخطيط للإصدارات المستقبلية لمعالجة أوجه عدم التوافق والقيود هذه.
نظام الوحدة يظل نموذج وحدة ECMAScript و Web API القديم من Deno كما هو، ويتم استخدام مخطط التحميل المعتمد على URL الخاص بـ Deno لاستيراد وحدات NPM.
يعد استخدام حزم NPM في Deno أسهل بكثير مما هو عليه في Node.js، لأنه ليست هناك حاجة للتثبيت المسبق للوحدات (يتم تثبيت الوحدات عند بدء تشغيل التطبيق لأول مرة)، لم يتم استخدام ملف package.json ولم يتم استخدام دليل node_modules ، يتم استخدامه افتراضيًا (يتم تخزين الوحدات النمطية مؤقتًا في الدليل المشترك ، ولكن من الممكن التراجع عن السلوك السابق باستخدام الخيار "--node-modules-dir").
التطبيقات على أساس تحتفظ NPM بالقدرة على استخدام آليات التحكم في الوصول ، عزل وتنشيط دينو للوظائف المتقدمة التي تؤثر على الأمن. لمواجهة الهجمات عبر التبعيات المشكوك فيها ، يقوم Deno بشكل افتراضي بحظر جميع محاولات الوصول إلى النظام من التبعيات ويعرض تحذيرًا بشأن المشاكل المكتشفة. على سبيل المثال ، عندما تحاول الوحدة الكتابة إلى / usr / bin / ، سيتم عرض مطالبة تأكيد لهذه العملية:
تحسينات غير متعلقة بـ NPM في الإصدار الجديد تشمل ترقية محرك V8 للإصدار 10.9 ، الكشف التلقائي عن الملفات ذات الأقفالواستقرار Deno.bench () و Deno.gid () و Deno.networkInterfaces () و Deno.systemMemoryInfo () وواجهات برمجة تطبيقات Deno. .uid () ، إضافة Deno.Command () API الجديد غير المستقر لتنفيذ الأوامر (الاستبدال العام لـ Deno.spawn و Deno.spawnSync و Deno.spawnChild).
أخيرا من الجدير بالذكر أن مثل Node.js ، يستخدم Deno محرك V8 JavaScript.، والتي تُستخدم أيضًا في المتصفحات القائمة على Chromium. في الوقت نفسه ، فإن Deno ليس مفترقًا لـ Node.js ، ولكنه مشروع جديد مبني من الصفر. يتم توزيع كود المشروع بموجب ترخيص معهد ماساتشوستس للتكنولوجيا وهناك تصميمات جاهزة لنظام التشغيل Linux و Windows و macOS.
إذا كنت مهتم بمعرفة المزيد عنها ، يمكنك التشاور الرابط التالي.