Node.js کے مصنف نے محفوظ JavaScript پلیٹ فارم Deno 1.0 پیش کیا۔

دو سال کی ترقی کے بعد پیش کیا پہلی بڑی ریلیز ڈینو 1.0, JavaScript اور TypeScript میں ایپلی کیشنز کے اکیلے عمل درآمد کے لیے ایک پلیٹ فارم، جسے سرور پر چلنے والے ہینڈلرز بنانے کے لیے استعمال کیا جا سکتا ہے۔ یہ پلیٹ فارم ریان ڈہل نے تیار کیا ہے۔ریان ڈہل)، Node.js کا خالق۔ Node.js کی طرح، Deno JavaScript انجن استعمال کرتا ہے۔ V8، جو Chromium پر مبنی براؤزرز میں بھی استعمال ہوتا ہے۔ ایک ہی وقت میں، Deno Node.js کا کانٹا نہیں ہے، بلکہ ایک نیا پروجیکٹ ہے جو شروع سے بنایا گیا ہے۔ پروجیکٹ کوڈ نے بانٹا ایم آئی ٹی لائسنس کے تحت۔ اسمبلیاں تیار لینکس، ونڈوز اور میک او ایس کے لیے۔

اہم ورژن نمبر ڈینو نام کی جگہ میں APIs کے استحکام سے وابستہ ہے، جو OS کے ساتھ ایپلی کیشنز کے تعامل کے لیے ذمہ دار ہیں۔ سافٹ ویئر انٹرفیس جو اب تک ہیں۔ مستحکم نہیں, بطور ڈیفالٹ پوشیدہ ہوتے ہیں اور صرف "--غیر مستحکم" موڈ میں چلنے پر دستیاب ہوتے ہیں۔ جیسے جیسے نئے ورژن بنتے جائیں گے، ایسے APIs آہستہ آہستہ مستحکم ہوتے جائیں گے۔ عالمی نام کی جگہ میں API، جس میں عام افعال جیسے setTimeout() اور fetch() شامل ہیں، روایتی ویب براؤزرز کے API کے جتنا ممکن ہو قریب ہے اور براؤزرز کے لیے ویب معیارات کے مطابق تیار کیا گیا ہے۔ Rust کی طرف سے فراہم کردہ APIs، جو براہ راست پلیٹ فارم کوڈ میں استعمال ہوتے ہیں، نیز ڈینو رن ٹائم کے لیے پلگ ان تیار کرنے کے لیے انٹرفیس، ابھی تک مستحکم نہیں ہوئے ہیں اور ترقی کرتے رہتے ہیں۔

ایک نیا جاوا اسکرپٹ پلیٹ فارم بنانے کے اہم مقاصد تصوراتی غلطیوں کو ختم کرنے کی خواہش تھی، تسلیم کیا Node.js فن تعمیر میں، اور صارفین کو زیادہ محفوظ ماحول فراہم کرتا ہے۔ سیکورٹی کو بہتر بنانے کے لیے، V8 انجن کو Rust میں لکھا گیا ہے، جو بہت سی کمزوریوں سے بچتا ہے جو کم سطح کی میموری کی ہیرا پھیری سے پیدا ہوتی ہیں، جیسے کہ مفت رسائی، null pointer dereferences، اور buffer overruns۔ پلیٹ فارم کو نان بلاکنگ موڈ میں درخواستوں پر کارروائی کرنے کے لیے استعمال کیا جاتا ہے۔ ٹوکیو، زنگ میں بھی لکھا ہے۔ ٹوکیو آپ کو ایونٹ سے چلنے والے فن تعمیر کی بنیاد پر اعلیٰ کارکردگی کی ایپلی کیشنز بنانے کی اجازت دیتا ہے، ملٹی تھریڈنگ کی حمایت کرتا ہے اور غیر مطابقت پذیر موڈ میں نیٹ ورک کی درخواستوں پر کارروائی کرتا ہے۔

اہم خصوصیات ڈینو:

  • سیکیورٹی پر مبنی ڈیفالٹ کنفیگریشن۔ فائل تک رسائی، نیٹ ورکنگ، اور ماحولیاتی متغیرات تک رسائی بطور ڈیفالٹ غیر فعال ہے اور اسے واضح طور پر فعال ہونا چاہیے۔ ایپلیکیشنز بذریعہ ڈیفالٹ الگ تھلگ سینڈ باکس ماحول میں چلتی ہیں اور واضح اجازتوں کے بغیر سسٹم کی صلاحیتوں تک رسائی حاصل نہیں کرسکتی ہیں۔
  • جاوا اسکرپٹ سے آگے TypeScript کے لیے بلٹ ان سپورٹ۔ معیاری TypeScript کمپائلر کا استعمال اقسام کو چیک کرنے اور JavaScript بنانے کے لیے کیا جاتا ہے، جو V8 میں JavaScript پارسنگ کے مقابلے میں کارکردگی کو متاثر کرتا ہے۔ مستقبل میں، ہم TypeScript قسم کے چیکنگ سسٹم کے اپنے نفاذ کو تیار کرنے کا ارادہ رکھتے ہیں، جو TypeScript پروسیسنگ کی کارکردگی کو ایک ترتیب سے بہتر بنائے گا۔
  • رن ٹائم ایک خود ساختہ ایگزیکیوٹیبل فائل ("deno") کی شکل میں آتا ہے۔ ڈینو کا استعمال کرتے ہوئے ایپلی کیشنز کو چلانے کے لیے یہ کافی ہے۔ اپ لوڈ کریں اس کے پلیٹ فارم کے لیے ایک قابل عمل فائل ہے، جس کا سائز تقریباً 20 MB ہے، جس کا کوئی بیرونی انحصار نہیں ہے اور اسے سسٹم پر کسی خاص تنصیب کی ضرورت نہیں ہے۔ مزید یہ کہ ڈینو کوئی یک سنگی ایپلی کیشن نہیں ہے بلکہ یہ زنگ میں کریٹ پیکجوں کا مجموعہ ہے (deno_core, زنگ آلود_v8)، جسے الگ سے استعمال کیا جا سکتا ہے۔
  • پروگرام شروع کرنے کے ساتھ ساتھ ماڈیول لوڈ کرنے کے لیے، آپ یو آر ایل ایڈریسنگ استعمال کر سکتے ہیں۔ مثال کے طور پر، welcome.js پروگرام کو چلانے کے لیے، آپ "deno https://deno.land/std/examples/welcome.js" کمانڈ استعمال کر سکتے ہیں۔ بیرونی وسائل سے کوڈ مقامی سسٹم پر ڈاؤن لوڈ اور کیش کیا جاتا ہے، لیکن کبھی بھی خود بخود اپ ڈیٹ نہیں ہوتا ہے (اپ ڈیٹ کرنے کے لیے واضح طور پر ایپلیکیشن کو "--ریلوڈ" پرچم کے ساتھ چلانے کی ضرورت ہوتی ہے)؛
  • ایپلی کیشنز میں HTTP کے ذریعے نیٹ ورک کی درخواستوں کی موثر پروسیسنگ؛ پلیٹ فارم کو اعلی کارکردگی والے نیٹ ورک ایپلی کیشنز بنانے کے لیے ڈیزائن کیا گیا ہے۔
  • یونیورسل ویب ایپلیکیشنز بنانے کی اہلیت جو ڈینو اور باقاعدہ ویب براؤزر دونوں میں چلائی جا سکتی ہے۔
  • دستیابی ماڈیولز کا معیاری سیٹ، جس کے استعمال کے لیے بیرونی انحصار کے پابند ہونے کی ضرورت نہیں ہے۔ معیاری مجموعہ کے ماڈیولز اضافی آڈٹ اور مطابقت کی جانچ سے گزر چکے ہیں۔
  • رن ٹائم کے علاوہ، ڈینو پلیٹ فارم ایک پیکیج مینیجر کے طور پر بھی کام کرتا ہے اور آپ کو کوڈ کے اندر یو آر ایل کے ذریعے ماڈیولز تک رسائی کی اجازت دیتا ہے۔ مثال کے طور پر، ایک ماڈیول کو لوڈ کرنے کے لیے، آپ "https://deno.land/std/log/mod.ts" سے لاگ کے طور پر "import*" کوڈ میں بتا سکتے ہیں۔ یو آر ایل کے ذریعے بیرونی سرورز سے ڈاؤن لوڈ کی گئی فائلیں کیش کی جاتی ہیں۔ ماڈیول ورژن کے پابند ہونے کا تعین URL کے اندر ورژن نمبر بتا کر کیا جاتا ہے، مثال کے طور پر، "https://unpkg.com/[ای میل محفوظ]/dist/liltest.js"؛
  • ڈھانچے میں ایک مربوط انحصاری معائنہ کا نظام ("deno info" کمانڈ) اور کوڈ فارمیٹنگ (deno fmt) کے لیے ایک افادیت شامل ہے۔
  • تمام ایپلیکیشن اسکرپٹس کو ایک جاوا اسکرپٹ فائل میں ملایا جا سکتا ہے۔

Node.js سے فرق:

  • ڈینو این پی ایم پیکیج مینیجر کا استعمال نہیں کرتا ہے۔
    اور ریپوزٹریز سے منسلک نہیں ہے، ماڈیولز کو یو آر ایل یا فائل پاتھ کے ذریعے ایڈریس کیا جاتا ہے، اور ماڈیول خود کسی بھی ویب سائٹ پر رکھے جا سکتے ہیں۔
  • ڈینو ماڈیولز کی وضاحت کے لیے "package.json" کا استعمال نہیں کرتا ہے۔
  • API فرق، Deno میں تمام غیر مطابقت پذیر اعمال ایک وعدہ واپس کرتے ہیں؛
  • ڈینو کو فائلوں، نیٹ ورک اور ماحولیاتی متغیرات کے لیے تمام ضروری اجازتوں کی واضح تعریف درکار ہے۔
  • تمام غلطیاں جو ہینڈلرز کے ساتھ فراہم نہیں کی جاتی ہیں درخواست کے خاتمے کا باعث بنتی ہیں۔
  • Deno ECMAScript ماڈیول سسٹم کا استعمال کرتا ہے اور ضرورت () کو سپورٹ نہیں کرتا ہے۔
  • ڈینو کا بلٹ ان HTTP سرور TypeScript میں لکھا جاتا ہے اور مقامی TCP ساکٹ کے اوپر چلتا ہے، جبکہ Node.js HTTP سرور C میں لکھا جاتا ہے اور JavaScript کے لیے بائنڈنگ فراہم کرتا ہے۔ ڈینو کے ڈویلپرز نے پوری TCP ساکٹ لیئر کو بہتر بنانے اور زیادہ عام انٹرفیس فراہم کرنے پر توجہ مرکوز کی ہے۔ Deno HTTP سرور کم تھرو پٹ فراہم کرتا ہے لیکن متوقع کم تاخیر کی ضمانت دیتا ہے۔ مثال کے طور پر، ٹیسٹ میں، ڈینو HTTP سرور پر مبنی ایک سادہ ایپلیکیشن 25 ملی سیکنڈ کی زیادہ سے زیادہ تاخیر کے ساتھ فی سیکنڈ 1.3 ہزار درخواستوں پر کارروائی کرنے کے قابل تھی۔ Node.js میں، اسی طرح کی ایک درخواست نے فی سیکنڈ 34 ہزار درخواستوں پر کارروائی کی، لیکن تاخیر 2 اور 300 ملی سیکنڈز تک تھی۔
  • Deno Node.js (NPM) کے پیکجوں کے ساتھ مطابقت نہیں رکھتا، لیکن اسے الگ سے تیار کیا جا رہا ہے۔ interlayer معیاری Node.js لائبریری کے ساتھ مطابقت کے لیے، جیسا کہ یہ تیار ہوتا ہے، Node.js کے لیے لکھی گئی زیادہ سے زیادہ ایپلی کیشنز Deno میں چل سکیں گی۔
  • ماخذ: opennet.ru

نیا تبصرہ شامل کریں