Node.js 23.0.0، جاوا اسڪرپٽ ۾ نيٽ ورڪ ايپليڪيشنن کي هلائڻ لاء هڪ پليٽ فارم، جاري ڪيو ويو آهي. Node.js 23.0 هڪ وچولي شاخ جي طور تي درجه بندي ڪئي وئي آهي، جيڪا 7 مهينن تائين (جون 2025 تائين) جي مدد ڪئي ويندي. ايندڙ ڏينهن ۾، Node.js 22 برانچ جي استحڪام مڪمل ڪئي ويندي، جيڪا 29 آڪٽوبر تي LTS اسٽيٽس حاصل ڪندي ۽ اپريل 2027 تائين سپورٽ ڪئي ويندي. Node.js 20.x ۽ 18.x جي ماضي جي LTS شاخن لاءِ سپورٽ ترتيبوار اپريل 2026 ۽ 2025 تائين جاري رهندي.
بنيادي سڌارا:
- شامل ڪيل تجرباتي سپورٽ TypeScript لاءِ، جيڪا اجازت ڏئي ٿي واضح قسم جي وصفن جي. "--experimental-strip-types" ۽ "--experimental-transform-types" اختيارن کي استعمال ڪندي سپورٽ کي فعال ڪيو ويو آھي. پهرين آپشن جي صورت ۾، ٽائپ اسڪرپٽ سان ڪم ڪرڻ سان ٻولي جي مخصوص قسم جي وصفن کي صاف ڪرڻ لاءِ گھٽجي ويو آهي (قسم جي چڪاس نه ڪئي وئي آهي، ڪوڊ کي صرف ٽائپ بيس جاوا اسڪرپٽ ۾ تبديل ڪيو ويندو آهي). ٻيو اختيار ڪجھ TypeScript نحو عنصرن کي تبديل ڪري ٿو، جهڙوڪ اينمز ۽ نيمس اسپيس، جاوا اسڪرپٽ ڪوڊ ۾.
- ڊفالٽ طور تي چالو ڪيو ويو آهي استعمال ڪرڻ جي صلاحيت "گهربل()" ڪال کي لوڊ ڪرڻ لاءِ JavaScript ESM ماڊلز (ECMAScript Modules) هم وقت ساز موڊ ۾. ESM ماڊلز برائوزرن ۾ استعمال ٿيندا آھن ۽ Node.js لاءِ مخصوص CommonJS ماڊلز کي تبديل ڪندا آھن. Node.js ۾ "require()" ذريعي لوڊ ڪرڻ لاء، ESM ماڊل کي هم وقت سازي سان عمل ڪيو وڃي (مٿين سطح تي انتظار ڪرڻ کان سواء).
- فائلن ۾ ESM ماڊلز جي خودڪار سڃاڻپ بغير يا ".js" جي واڌ سان مهيا ڪئي وئي آهي. اڳي، اهڙين فائلن کي CommonJS ماڊيول سمجهيو ويندو هو، جيستائين انهن جو قسم واضح طور تي بيان ڪيو ويو هجي package.json فائل ۾ ساڳئي ڊاريڪٽري ۾ واقع آهي ("قسم": "ماڊيول"). نئين ورزن ۾، فائلن لاءِ جن جو قسم package.json ۾ بيان نه ڪيو ويو آهي، اهو پهريون ڀيرو لوڊ ڪرڻ جي ڪوشش ڪري ٿو CommonJS ماڊل طور، ۽ جيڪڏهن اهو ناڪام ٿئي ٿو، ته پوء ESM ماڊل جي طور تي.
- تجرباتي عمل شامل ڪيو ويو برائوزرن سان مطابقت رکندڙ ويب اسٽوريج API کي ڪي/ويليو ڊيٽا جي مسلسل (لوڪل اسٽوريج ڪلاس) يا عارضي (سيشن اسٽوريج ڪلاس) اسٽوريج لاءِ ٺاهيو ويو آهي. ويب اسٽوريج سپورٽ کي فعال ڪرڻ لاءِ API کي "--experimental-webstorage" پرچم سان هلائڻ ۽ "--localstorage-file" پرچم استعمال ڪندي اسٽوريج فائل جو رستو بيان ڪرڻ جي ضرورت آهي.
- شامل ڪيل تجرباتي SQLite API ڊيٽابيس سان ڪم ڪرڻ لاءِ SQL سوال ٻولي ۽ اسٽوريج استعمال ڪندي SQLite لائبريري جي بنياد تي. ڊسڪ تي فائل ۾ ڊيٽابيس کي ذخيرو ڪرڻ کان علاوه، ان کي فائل جي نالي جي بدران ":memory:" بيان ڪندي ميموري ۾ رکي سگهجي ٿو. مٿي بيان ڪيل ويب اسٽوريج API پڻ SQLite جي چوٽي تي لاڳو ڪئي وئي آهي، نتيجي ۾ SQLite جو اضافو Node.js لاءِ انحصار جي طور تي.
- "node -run" حڪم کي مستحڪم قرار ڏنو ويو آهي، پيڪيج. json فائل ۾ بيان ڪيل اسڪرپٽ کي هلائڻ لاء ٺهيل.
- ماڊلز جي لانچ کي خاص طور تي تيز ڪرڻ لاءِ ڊسڪ تي مرتب ڪيل ڪوڊ کي ڪيش ڪرڻ لاءِ اختياري مدد لاڳو ڪئي وئي. ڪيشنگ NODE_COMPILE_CACHE ماحولياتي متغير ذريعي فعال ڪئي وئي آهي. ان جي مقصد جي لحاظ کان، خصوصيت v8-compile-cache پيڪيج وانگر آهي، پر اعلي ڪارڪردگي ۽ ESM ماڊلز جي حمايت ۾ مختلف آهي.
- بفر اعتراض کي بهتر ڪيو ويو آهي خاص طور تي Buffer.copy() ۽ Buffer.write() طريقن جي ڪارڪردگي کي وڌائڻ لاءِ.
- node:fs module جي ڪارڪردگي بهتر ڪئي وئي آهي، جيڪا پڻ آپريشن دوران C++ ڪوڊ تي ڪالن جو تعداد گھٽائي ٿي.
- V8 انجڻ کي اپڊيٽ ڪيو ويو آهي ورزن 12.9 ۾، استعمال ڪيو ويو Chromium 129 ۾.
- 32-bit ونڊوز سسٽم لاءِ سپورٽ ختم ڪئي وئي آهي.
- Node.js ۽ V8 انجڻ ۾ C++ 20 معيار ۾ بيان ڪيل خاصيتن جي تعارف جي ڪري، GCC ڪمپلر ورزن جي گهرج کي وڌايو ويو آهي. بلڊنگ Node.js هاڻي گهٽ ۾ گهٽ GCC 12 جي ضرورت آهي.
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 ۾ اضافو آهي. لائبيو لائبريري ٿريڊ پول ٺاھڻ لاءِ استعمال ڪئي ويندي آھي، ۽ سي-آئرز غير بلاڪنگ موڊ ۾ DNS سوالن کي انجام ڏيڻ لاءِ ضم ٿيل آھي. سڀئي سسٽم ڪالون جيڪي بلاڪ ڪرڻ جو سبب بڻجن ٿيون ٿريڊ پول جي اندر ۽ پوءِ، سگنل هينڊلر وانگر، انهن جي ڪم جو نتيجو واپس هڪ نامعلوم پائپ ذريعي منتقل ڪيو وڃي ٿو.
جاوا اسڪرپٽ ڪوڊ جي عمل کي يقيني بڻايو وڃي ٿو گوگل پاران تيار ڪيل V8 انجڻ جي استعمال سان (ان کان علاوه، Microsoft چڪر-ڪور انجڻ سان Node.js جو هڪ نسخو ٺاهي رهيو آهي). ان جي بنيادي طور تي، Node.js ساڳيو آهي Perl AnyEvent، Ruby Event Machine، Python Twisted فريم ورڪ ۽ Tcl ۾ واقعن جي عمل درآمد، پر Node.js ۾ واقع ايونٽ لوپ ڊولپر کان لڪيل آهي ۽ ويب ايپليڪيشن ۾ ايونٽ پروسيسنگ وانگر آهي. برائوزر ۾ هلندڙ.
جو ذريعو: opennet.ru
