Node.js جو ليکڪ محفوظ JavaScript پليٽ فارم Deno 1.0 پيش ڪيو

ترقي جي ٻن سالن کان پوء پيش ڪيو پهريون اهم ڇڏڻ ڊينو 1.0, JavaScript ۽ TypeScript ۾ ايپليڪيشنن جي اسٽينڊ اڪيلو عمل لاءِ هڪ پليٽ فارم، جيڪو سرور تي هلندڙ هينڊلر ٺاهڻ لاءِ استعمال ٿي سگهي ٿو. پليٽ فارم تيار ڪيو ويو آهي ريان ڊاهل (ريان داهل) جو خالق Node.js. Node.js وانگر، Deno هڪ JavaScript انجڻ استعمال ڪري ٿو V8، جيڪو پڻ استعمال ڪيو ويندو آهي Chromium-based برائوزرن ۾. ساڳئي وقت، Deno Node.js جو ڪانٽو نه آهي، پر هڪ نئين منصوبي آهي شروع کان ٺاهي وئي. پروجيڪٽ ڪوڊ طرفان ورهايل MIT لائسنس جي تحت. اسيمبليون تيار ڪيل لينڪس، ونڊوز ۽ macOS لاءِ.

اهم نسخو نمبر ڊنو نالي اسپيس ۾ APIs جي استحڪام سان لاڳاپيل آهي، جيڪي OS سان ايپليڪيشنن جي رابطي جا ذميوار آهن. سافٽ ويئر انٽرفيس جيڪي هن وقت تائين آهن مستحڪم نه ٿيو, ڊفالٽ طور لڪايل آهن ۽ صرف موجود آهن جڏهن هلندا آهن "--unstable" موڊ ۾. جيئن ته نوان ورجن ٺاهيا ويندا آهن، اهڙا APIs آهستي آهستي مستحڪم ٿي ويندا. API عالمي نالي واري جاءِ ۾، جنهن ۾ عام افعال شامل آهن جهڙوڪ setTimeout() ۽ fetch()، روايتي ويب برائوزرن جي API جي جيترو ممڪن ٿي سگهي ويجھو آهي ۽ برائوزرن لاءِ ويب معيارن جي مطابق ترقي ڪئي وئي آهي. Rust پاران مهيا ڪيل APIs، جيڪي سڌو سنئون پليٽ فارم ڪوڊ ۾ استعمال ڪيا ويا آهن، انهي سان گڏ ڊنو رن ٽائم لاء پلگ ان کي ترقي ڪرڻ لاء انٽرفيس، اڃا تائين مستحڪم نه ڪيا ويا آهن ۽ ترقي جاري رکندا آهن.

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

مکيه особенности ڊنو:

  • سيڪيورٽي جي بنياد تي ڊفالٽ ترتيب. فائل جي رسائي، نيٽ ورڪنگ، ۽ ماحولياتي متغير تائين رسائي ڊفالٽ طور تي بند ٿيل آھن ۽ واضح طور تي فعال ٿيڻ گھرجي. ايپليڪيشنون ڊفالٽ طور تي الڳ ٿيل سينڊ باڪس ماحول ۾ هلن ٿيون ۽ واضح اجازتون ڏيڻ کان سواءِ سسٽم جي صلاحيتن تائين رسائي نٿا ڪري سگهن؛
  • جاوا اسڪرپٽ کان ٻاهر ٽائپ اسڪرپٽ لاءِ بلٽ ان سپورٽ. معياري ٽائپ اسڪرپٽ ڪمپلر استعمال ڪيو ويندو آهي قسمن کي چيڪ ڪرڻ ۽ جاوا اسڪرپٽ پيدا ڪرڻ لاءِ، جيڪو V8 ۾ جاوا اسڪرپٽ پارسنگ جي مقابلي ۾ ڪارڪردگيءَ جو سبب بڻجي ٿو. مستقبل ۾، اسان ٽائپ اسڪرپٽ ٽائپ چيڪنگ سسٽم جو پنهنجو پاڻ تي عمل درآمد ڪرڻ جو منصوبو تيار ڪريون ٿا، جيڪو ٽائپ اسڪرپٽ پروسيسنگ ڪارڪردگي کي ترتيب سان بهتر ڪندو؛
  • رن ٽائم هڪ واحد خودمختاري قابل عمل فائل ("deno") جي صورت ۾ اچي ٿو. Deno استعمال ڪندي ايپليڪيشنن کي هلائڻ لاء اهو ڪافي آهي اپلوڊ ان جي پليٽ فارم لاءِ هڪ قابل عمل فائل آهي، اٽڪل 20 MB سائيز ۾، جنهن ۾ ڪو به خارجي انحصار نه آهي ۽ سسٽم تي ڪنهن خاص انسٽاليشن جي ضرورت ناهي. ان کان علاوه، ڊينو هڪ واحد ايپليڪيشن نه آهي، پر زنگ (Rust) ۾ ڪرٽ پيڪيجز جو مجموعو آهي.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) شامل آهي؛
  • سڀئي ايپليڪيشن اسڪرپٽ هڪ جاوا اسڪرپٽ فائل ۾ گڏ ڪري سگهجن ٿيون.

Node.js کان فرق:

  • Deno استعمال نٿو ڪري npm پيڪيج مينيجر
    ۽ مخزنن سان جڙيل نه آهي، ماڊلز کي URL ذريعي يا فائل رستي ذريعي خطاب ڪيو ويو آهي، ۽ ماڊل پاڻ کي ڪنهن به ويب سائيٽ تي رکيل آهن؛
  • Deno ماڊلز جي وضاحت ڪرڻ لاءِ ”package.json“ استعمال نٿو ڪري.
  • API فرق، Deno ۾ سڀئي هم وقت ساز ڪارناما هڪ واعدو موٽائي؛
  • Deno فائلن، نيٽ ورڪ ۽ ماحولياتي متغيرن لاء سڀني ضروري اجازتن جي واضح تعريف جي ضرورت آهي؛
  • سڀئي غلطيون جيڪي نه مهيا ڪيون ويون آهن هينڊلر سان گڏ ايپليڪيشن کي ختم ڪرڻ جي ڪري؛
  • Deno ECMAScript ماڊل سسٽم استعمال ڪري ٿو ۽ ضرورت جي حمايت نٿو ڪري();
  • Deno جو بلٽ ان HTTP سرور ٽائيپ اسڪرپٽ ۾ لکيل آهي ۽ اصلي TCP ساکٽس جي مٿي تي هلندو آهي، جڏهن ته Node.js HTTP سرور C ۾ لکيل آهي ۽ JavaScript لاءِ بائنڊنگ مهيا ڪري ٿو. Deno جي ڊولپرز پوري TCP ساکٽ پرت کي بهتر ڪرڻ ۽ وڌيڪ عام انٽرفيس مهيا ڪرڻ تي ڌيان ڏنو آهي. Deno HTTP سرور مهيا ڪري ٿو گھٽ throughput پر پيش گوئي جي گھٽ ويڪرائي جي ضمانت ڏئي ٿو. مثال طور، ٽيسٽ ۾، Deno HTTP سرور جي بنياد تي هڪ سادي ايپليڪيشن 25 هزار درخواستن کي في سيڪنڊ تي عمل ڪرڻ جي قابل هئي 1.3 ملي سيڪنڊن جي وڌ ۾ وڌ دير سان. Node.js ۾، هڪ جهڙي ايپليڪيشن 34 هزار درخواستن تي في سيڪنڊ تي عمل ڪيو، پر دير سان 2 ۽ 300 ملي سيڪنڊن جي وچ ۾.
  • Deno Node.js (NPM) جي پيڪيجز سان مطابقت ناهي، پر الڳ الڳ ترقي ڪئي پئي وڃي اندروني پرت معياري Node.js لائبريري سان مطابقت لاءِ، جيئن جيئن ترقي ٿيندي، تيئن وڌيڪ ۽ وڌيڪ ايپليڪيشنون Node.js لاءِ لکيل هونديون Deno ۾.
  • جو ذريعو: opennet.ru

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