سرور سائیڈ JavaScript پلیٹ فارم Node.js 18.0 دستیاب ہے۔

Node.js 18.0 جاری کیا گیا تھا، جاوا اسکرپٹ میں نیٹ ورک ایپلی کیشنز چلانے کے لیے ایک پلیٹ فارم۔ Node.js 18.0 کو ایک طویل المدتی سپورٹ برانچ کے طور پر درجہ بندی کیا گیا ہے، لیکن یہ حیثیت صرف اکتوبر میں، استحکام کے بعد تفویض کی جائے گی۔ Node.js 18.x کو اپریل 2025 تک سپورٹ کیا جائے گا۔ Node.js 16.x کی پچھلی LTS برانچ کی دیکھ بھال اپریل 2024 تک رہے گی، اور آخری LTS برانچ 14.x سے ایک سال اپریل 2023 تک۔ 12.x LTS برانچ 30 اپریل کو بند کر دی جائے گی، اور Node.js 17.x سٹیجنگ برانچ یکم جون کو بند کر دی جائے گی۔

اہم بہتری:

  • V8 انجن کو ورژن 10.1 میں اپ ڈیٹ کر دیا گیا ہے، جو Chromium 101 میں استعمال ہوتا ہے۔ Node.js کے 17.9.0 ریلیز کے مقابلے میں، اب اس کے اختتام سے متعلق عناصر کو تلاش کرنے کے لیے FindLast اور findLastIndex کے طریقوں جیسی خصوصیات کے لیے سپورٹ موجود ہے۔ ایک صف، اور Intl.supportedValuesOf فنکشن۔ بہتر Intl.Locale API۔ طبقاتی شعبوں اور نجی طریقوں کی ابتداء کو تیز کر دیا گیا ہے۔
  • تجرباتی fetch() API کو بطور ڈیفالٹ فعال کیا گیا ہے، جو نیٹ ورک پر وسائل لوڈ کرنے کے لیے ڈیزائن کیا گیا ہے۔ عمل درآمد HTTP/1.1 undici کلائنٹ کے کوڈ پر مبنی ہے اور براؤزرز میں فراہم کردہ اسی طرح کے API کے جتنا ممکن ہو قریب ہے۔ اس میں HTTP درخواست اور رسپانس ہیڈرز میں ہیرا پھیری کے لیے فارم ڈیٹا، ہیڈرز، درخواست اور جوابی انٹرفیس کے لیے تعاون شامل ہے۔ const res = await fetch('https://nodejs.org/api/documentation.json')؛ اگر (res.ok) { const ڈیٹا = انتظار کریں res.json(); console.log(ڈیٹا)؛ }
  • ویب اسٹریمز API کے تجرباتی نفاذ کو شامل کیا گیا ہے، جو نیٹ ورک پر موصول ہونے والے ڈیٹا اسٹریمز تک رسائی فراہم کرتا ہے۔ API پوری فائل کے ڈاؤن لوڈ ہونے کا انتظار کیے بغیر، نیٹ ورک پر معلومات پہنچتے ہی ڈیٹا کے ساتھ کام کرنے کے لیے آپ کے اپنے ہینڈلرز کو شامل کرنا ممکن بناتا ہے۔ اب Node.js میں دستیاب اشیاء میں ReadableStream*, TransformStream*, WritableStream*, TextEncoderStream, TextDecoderStream، CompressionStream، اور DecompressionStream شامل ہیں۔
  • Blob API کو مستحکم پر منتقل کر دیا گیا ہے، جس سے آپ مختلف ورکر تھریڈز میں محفوظ استعمال کے لیے ناقابل تغیر خام ڈیٹا کو انکیپسلیٹ کر سکتے ہیں۔
  • BroadcastChannel API کو مستحکم بنایا گیا ہے، جس سے آپ پیغامات کے تبادلے کو "ایک بھیجنے والے - بہت سے وصول کنندگان" فارمیٹ میں غیر مطابقت پذیر موڈ میں منظم کر سکتے ہیں۔
  • تجرباتی ماڈیول نوڈ شامل کیا گیا: JavaScript میں ٹیسٹ بنانے اور چلانے کے لیے ٹیسٹ جو TAP (Test Anything Protocol) فارمیٹ میں نتائج دیتا ہے۔
  • Red Hat Enterprise Linux (RHEL) 8 اور Glibc 2.28+ پر مبنی دیگر تقسیموں کے لیے تیار کردہ اسمبلیوں کی جنریشن، بشمول Debian 10 اور Ubuntu 20.04، نیز macOS 10.15+ کے لیے فراہم کی گئی ہے۔ V8 انجن کی تعمیر میں دشواریوں کی وجہ سے، ونڈوز کے لیے 32 بٹ بلڈز کی تخلیق کو عارضی طور پر روک دیا گیا ہے۔
  • ایک تجرباتی آپشن فراہم کیا گیا تاکہ ایک Node.js قابل عمل بنایا جا سکے جس میں صارف کے منتخب کردہ اجزاء کو شروع کیا گیا ہو۔ ابتدائی اجزاء کی وضاحت کرنے کے لیے، "--node-snapshot-main" آپشن کو کنفیگر بلڈ اسکرپٹ میں شامل کیا گیا ہے، مثال کے طور پر، "./configure —node-snapshot-main=marked.js؛ نام کا نوڈ"

Node.js پلیٹ فارم ویب ایپلیکیشنز کے سرور سائیڈ سپورٹ، اور عام کلائنٹ اور سرور نیٹ ورک پروگرام بنانے کے لیے دونوں استعمال کیا جا سکتا ہے۔ Node.js کے لیے ایپلی کیشنز کی فعالیت کو بڑھانے کے لیے، ماڈیولز کا ایک بڑا مجموعہ تیار کیا گیا ہے، جس میں آپ HTTP، SMTP، XMPP، DNS، FTP، IMAP، POP3 سرورز اور کلائنٹس، انضمام کے لیے ماڈیولز کے نفاذ کے ساتھ ماڈیولز تلاش کر سکتے ہیں۔ مختلف ویب فریم ورک، WebSocket اور Ajax ہینڈلرز، DBMS (MySQL، PostgreSQL، SQLite، MongoDB) کے کنیکٹرز، ٹیمپلیٹ انجن، CSS انجن، کرپٹوگرافک الگورتھم کے نفاذ اور اتھارٹی سسٹمز (OAuth)، XML پارسر کے ساتھ۔

متوازی درخواستوں کی بڑی تعداد کو ہینڈل کرنے کے لیے، Node.js غیر مسدود ایونٹ پروسیسنگ اور کال بیک ہینڈلرز کی وضاحت پر مبنی ایک غیر مطابقت پذیر کوڈ کے عمل درآمد ماڈل کا استعمال کرتا ہے۔ ملٹی پلیکسنگ کنکشن کے لیے معاون طریقوں میں ایپل، کیو، /dev/poll، اور سلیکٹ شامل ہیں۔ کنکشن ملٹی پلیکسنگ کے لیے، libuv لائبریری کا استعمال کیا جاتا ہے، جو یونکس سسٹمز پر libev اور ونڈوز پر IOCP میں ایک اضافہ ہے۔ libeio لائبریری کا استعمال تھریڈ پول بنانے کے لیے کیا جاتا ہے، اور c-ares کو DNS سوالات کو نان بلاکنگ موڈ میں انجام دینے کے لیے مربوط کیا جاتا ہے۔ تمام سسٹم کالز جو بلاکنگ کا سبب بنتی ہیں تھریڈ پول کے اندر عمل میں لائی جاتی ہیں اور پھر، سگنل ہینڈلرز کی طرح، اپنے کام کا نتیجہ ایک بے نام پائپ کے ذریعے واپس بھیج دیتے ہیں۔ جاوا اسکرپٹ کوڈ کا نفاذ گوگل کے تیار کردہ V8 انجن کے استعمال سے یقینی بنایا جاتا ہے (اس کے علاوہ، مائیکروسافٹ Node.js کا ایک ورژن چکرا کور انجن کے ساتھ تیار کر رہا ہے)۔

اس کے بنیادی طور پر، Node.js Perl AnyEvent، Ruby Event Machine، Python Twisted فریم ورک اور Tcl میں ایونٹس کے نفاذ سے ملتا جلتا ہے، لیکن Node.js میں ایونٹ کا لوپ ڈویلپر سے پوشیدہ ہے اور ویب ایپلیکیشن میں ایونٹ پروسیسنگ سے ملتا جلتا ہے۔ براؤزر میں چل رہا ہے۔ node.js کے لیے ایپلی کیشنز لکھتے وقت، ایونٹ سے چلنے والے پروگرامنگ کی تفصیلات کو مدنظر رکھنا ضروری ہے، مثال کے طور پر، "var result = db.query("select..");" کرنے کے بجائے۔ کام کی تکمیل کے انتظار اور نتائج کے بعد کی کارروائی کے ساتھ، Node.js غیر مطابقت پذیر عمل کے اصول کا استعمال کرتا ہے، یعنی کوڈ کو "db.query("select.."، فنکشن (نتیجہ) {رزلٹ پروسیسنگ}) میں تبدیل کر دیا جاتا ہے، جس میں کنٹرول فوری طور پر مزید کوڈ کو منتقل کر دیا جائے گا، اور ڈیٹا آتے ہی استفسار کے نتیجے پر کارروائی ہو جائے گی۔

ماخذ: opennet.ru

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