Deno JavaScript پليٽ فارم NPM ماڊلز سان مطابقت رکي ٿو

Deno 1.28 جاري ڪيو ويو آهي، سينڊ باڪسنگ جاوا اسڪرپٽ ۽ ٽائپ اسڪرپٽ ايپليڪيشنن لاءِ هڪ فريم ورڪ جيڪو سرور-سائڊ هينڊلر ٺاهڻ لاءِ استعمال ٿي سگهي ٿو. پليٽ فارم ٺاهي وئي آهي ريان ڊاهل، جو خالق Node.js. Node.js وانگر، Deno استعمال ڪري ٿو V8 JavaScript انجڻ، جيڪو پڻ استعمال ٿئي ٿو Chromium-based برائوزرن ۾. ساڳئي وقت، Deno Node.js جو ڪانٽو نه آهي، پر هڪ نئين منصوبي آهي شروع کان ٺاهي وئي. پروجيڪٽ ڪوڊ MIT لائسنس تحت ورهايو ويو آهي. لينڪس، ونڊوز ۽ ميڪوس لاءِ تعميرات تيار ڪيون ويون آهن.

Deno پروجيڪٽ ٺاهي وئي هئي صارفين کي وڌيڪ محفوظ ماحول فراهم ڪرڻ ۽ Node.js فن تعمير ۾ تصوراتي غلطين کي ختم ڪرڻ لاءِ. سيڪيورٽي کي بهتر ڪرڻ لاء، V8 انجڻ Rast ۾ لکيل آهي، جيڪو ڪيترن ئي خطرن کان بچي ٿو جيڪي گهٽ-سطح جي يادگيري جي ورهاڱي کان پيدا ٿين ٿيون. غير بلاڪنگ موڊ ۾ درخواستن تي عمل ڪرڻ لاءِ، ٽوڪيو پليٽ فارم، جيڪو پڻ Rust ۾ لکيل آهي، استعمال ڪيو ويندو آهي. ٽوڪيو توهان کي اجازت ڏئي ٿو اعليٰ ڪارڪردگي واريون ايپليڪيشنون ٺاهڻ جي بنياد تي ايونٽ تي هلندڙ فن تعمير، سپورٽ ڪندي ملٽي ٿريڊنگ ۽ پروسيسنگ نيٽ ورڪ جي درخواستن کي غير مطابقت واري موڊ ۾.

نئين رليز ۾ هڪ اهم تبديلي NPM مخزن ۾ ميزباني ڪيل پيڪيجز سان مطابقت جي استحڪام آهي، جيڪا Deno کي Node.js پليٽ فارم لاءِ ٺاهيل 1.3 ملين کان وڌيڪ ماڊل استعمال ڪرڻ جي اجازت ڏئي ٿي. مثال طور، Deno-based ايپليڪيشنون هاڻي استعمال ڪري سگهن ٿيون مسلسل ڊيٽا جي رسائي جا ماڊلز جهڙوڪ Prisma، Mongoose ۽ MySQL، انهي سان گڏ فرنٽ-اينڊ فريم ورڪ جهڙوڪ React ۽ Vue. ڪجهه NPM ماڊل اڃا تائين Deno سان مطابقت نه رکندا آهن، مثال طور، Node.js-مخصوص ماحول جي عنصرن جهڙوڪ package.json فائل کي پابند ڪرڻ جي ڪري. NPM ماڊلز سان گڏ "deno compile" حڪم استعمال ڪرڻ اڃا ممڪن ناهي. مستقبل جي رليز جو منصوبو انهن غير مطابقت ۽ حدن کي حل ڪرڻ لاء.

Deno جي اڳ ۾ استعمال ٿيل ECMAScript ماڊل سسٽم ۽ ويب API ماڊل لاءِ سپورٽ ساڳئي سطح تي برقرار آهي، ۽ Deno جي واقف URL تي ٻڌل لوڊشيڊنگ اسڪيم NPM ماڊلز کي درآمد ڪرڻ لاءِ استعمال ڪئي ويندي آهي. NPM ماڊلز تائين رسائي حاصل ڪرڻ لاءِ، اتي ھڪڙو خاص URL پريفڪس آھي “npm:”، جنھن کي استعمال ڪري سگھجي ٿو ساڳيءَ طرح باقاعده Deno ماڊلز وانگر. مثال طور، هڪ NPM ماڊل درآمد ڪرڻ لاءِ، توهان وضاحت ڪري سگهو ٿا 'import { chalk } from "npm:chalk@5"؛'، ۽ NPM اسڪرپٽ هلائڻ لاءِ ڪمانڊ لائن مان - "deno run --allow-env --allow -پڙھو اين پي ايم: ٺاھيو- ويٽ-اضافي.

Deno ۾ NPM پيڪيجز استعمال ڪرڻ Node.js جي ڀيٽ ۾ تمام آسان آهي، ڇو ته ماڊلز کي اڳ ۾ نصب ڪرڻ جي ڪا ضرورت ناهي (ماڊيول انسٽال ڪيا ويندا آهن جڏهن ايپليڪيشن پهريون ڀيرو شروع ٿيندي آهي)، هتي ڪا به package.json فائل ناهي، ۽ نه ئي ڪو به ڊفالٽ node_modules آهي. ڊاريڪٽري (ماڊيول شيئر ڊاريڪٽري ۾ ڪيش ٿيل آهن، پر اهو ممڪن آهي ته "--node-modules-dir" اختيار استعمال ڪندي پراڻي رويي کي واپس ڪرڻ).

NPM تي ٻڌل ايپليڪيشنون Deno جي رسائي ڪنٽرول، اڪيلائي، ۽ سيڪيورٽي-حساس ترقي يافته صلاحيتن کي استعمال ڪرڻ جي صلاحيت برقرار رکنديون آهن. قابل اعتراض انحصار جي ذريعي حملن کي منهن ڏيڻ لاء، ڊنو ڊفالٽ طور تي سڀني ڪوششن کي بلاڪ ڪري ٿو انحصار کان سسٽم تائين رسائي حاصل ڪرڻ ۽ معلوم ٿيل مسئلن بابت ڊيڄاريندڙ ڏيکاري ٿو. مثال طور، جڏهن هڪ ماڊل /usr/bin/ تائين لکڻ جي رسائي حاصل ڪرڻ جي ڪوشش ڪندو، هن آپريشن لاءِ هڪ تصديق جي درخواست ڏيکاري ويندي: deno run npm:install-malware ⚠️ ┌ Deno /usr/bin/ ڏانهن لکڻ جي رسائي جي درخواست ڪري ٿو. ├ 'install-malware' پاران گذارش ڪئي وئي ├ هن پرامپٹ کي نظرانداز ڪرڻ لاءِ --allow-write سان ٻيهر هلايو. └ اجازت ڏيو؟ [y/n] (y = ها، اجازت ڏيو؛ n = نه، انڪار) >

نون ورزن ۾ غير NPM سڌارا شامل آهن V8 انجڻ کي اپڊيٽ ڪرڻ لاءِ 10.9 جاري ڪرڻ، لاڪ سان فائلن جي پاڻمرادو پتو لڳائڻ، Deno.bench () Deno.gid() Deno.networkInterfaces() Deno.systemMemoryInfo() ۽ Deno APIs.

Deno جي مکيه خاصيتون:

  • سيڪيورٽي جي بنياد تي ڊفالٽ ترتيب. فائل جي رسائي، نيٽ ورڪنگ، ۽ ماحولياتي متغير تائين رسائي ڊفالٽ طور تي بند ٿيل آھن ۽ واضح طور تي فعال ٿيڻ گھرجي. ايپليڪيشنون ڊفالٽ طور تي الڳ ٿيل سينڊ باڪس ماحول ۾ هلن ٿيون ۽ واضح اجازتون ڏيڻ کان سواءِ سسٽم جي صلاحيتن تائين رسائي نٿا ڪري سگهن؛
  • جاوا اسڪرپٽ کان ٻاهر ٽائپ اسڪرپٽ لاءِ بلٽ ان سپورٽ. ٽائپ چيڪنگ ۽ جاوا اسڪرپٽ جي نسل لاءِ، معياري ٽائپ اسڪرپٽ ڪمپلر استعمال ڪيو ويندو آهي، جيڪو V8 ۾ جاوا اسڪرپٽ پارسنگ جي مقابلي ۾ ڪارڪردگيءَ ۾ گھٽتائي جو سبب بڻجي ٿو.
  • رن ٽائم هڪ واحد خودمختاري قابل عمل فائل ("deno") جي صورت ۾ اچي ٿو. Deno استعمال ڪندي ايپليڪيشنن کي هلائڻ لاءِ، توهان کي صرف پنهنجي پليٽ فارم لاءِ هڪ قابل عمل فائل ڊائون لوڊ ڪرڻ جي ضرورت آهي، اٽڪل 30 MB سائيز ۾، جنهن ۾ ڪو به خارجي انحصار نه آهي ۽ سسٽم تي ڪنهن خاص انسٽاليشن جي ضرورت ناهي. ان کان علاوه، deno هڪ monolithic ايپليڪيشن نه آهي، پر Rust crate پيڪيجز جو هڪ مجموعو آهي (deno_core, rusty_v8)، جيڪو الڳ الڳ استعمال ڪري سگهجي ٿو؛
  • جڏهن پروگرام شروع ڪيو وڃي، انهي سان گڏ ماڊل لوڊ ڪرڻ لاء، توهان استعمال ڪري سگهو ٿا URL ايڊريسنگ. مثال طور، welcome.js پروگرام کي هلائڻ لاءِ، توھان استعمال ڪري سگھو ٿا حڪم ”deno https://deno.land/std/examples/welcome.js“. خارجي وسيلن مان ڪوڊ ڊائون لوڊ ڪيو ويندو آهي ۽ مقامي سسٽم تي ڪيش ڪيو ويندو آهي، پر ڪڏهن به خودڪار طور تي اپڊيٽ نه ڪيو ويندو آهي (تازه ڪاري کي واضح طور تي "--ريلوڊ" پرچم سان ايپليڪيشن هلائڻ جي ضرورت آهي)؛
  • ايپليڪيشنن ۾ HTTP ذريعي نيٽ ورڪ جي درخواستن جي موثر پروسيسنگ؛ پليٽ فارم اعلي ڪارڪردگي نيٽ ورڪ ايپليڪيشن ٺاهڻ لاء ٺهيل آهي.
  • آفاقي ويب ايپليڪيشن ٺاهڻ جي صلاحيت جيڪا ڊنو ۽ باقاعده ويب برائوزر ۾ ٻنهي تي عمل ڪري سگهجي ٿي؛
  • ماڊلز جي هڪ معياري سيٽ جي موجودگي، جنهن جو استعمال خارجي انحصار کي پابند ڪرڻ جي ضرورت ناهي. معياري مجموعي مان ماڊلز اضافي آڊٽ ۽ مطابقت جي جاچ کان گذريا آهن؛
  • رن ٽائم کان علاوه، ڊنو پليٽ فارم پڻ ڪم ڪري ٿو هڪ پيڪيج مئنيجر ۽ توهان کي ڪوڊ جي اندر URL ذريعي ماڊلز تائين رسائي جي اجازت ڏئي ٿو. مثال طور، هڪ ماڊل لوڊ ڪرڻ لاء، توهان ڪوڊ ۾ وضاحت ڪري سگهو ٿا "import * as log from "https://deno.land/std/log/mod.ts". يو آر ايل ذريعي خارجي سرورز تان ڊائون لوڊ ڪيل فائلون ڪيش ٿيل آهن. ماڊل ورزن تي پابند ٿيڻ جو اندازو URL جي اندر ورزن نمبرن جي وضاحت سان طئي ڪيو ويندو آهي، مثال طور، “https://unpkg.com/[ايميل محفوظ ٿيل]/dist/liltest.js"؛
  • ڍانچي ۾ هڪ مربوط انحصار انسپيڪشن سسٽم (“deno info” ڪمانڊ) ۽ ڪوڊ فارميٽنگ لاءِ يوٽيلٽي (deno fmt) شامل آهي؛
  • سڀئي ايپليڪيشن اسڪرپٽ هڪ جاوا اسڪرپٽ فائل ۾ گڏ ڪري سگهجن ٿيون.

جو ذريعو: opennet.ru

تبصرو شامل ڪريو