ஜாவாஸ்கிரிப்டில் நெட்வொர்க் பயன்பாடுகளை இயக்குவதற்கான தளமான Node.js 20.0 இன் வெளியீடு நடந்துள்ளது. நீண்ட ஆதரவு கிளைக்கு Node.js 20.0 ஒதுக்கப்பட்டுள்ளது, ஆனால் நிலைப்படுத்தப்பட்ட பிறகு அக்டோபர் வரை இந்த நிலை ஒதுக்கப்படாது. Node.js 20.x ஏப்ரல் 30, 2026 வரை ஆதரிக்கப்படும். முந்தைய Node.js 18.x LTS கிளையின் பராமரிப்பு ஏப்ரல் 2025 வரையிலும், முந்தைய 16.x LTS கிளை செப்டம்பர் 2023 வரையிலும் நீடிக்கும். 14.x LTS கிளை ஏப்ரல் 30 அன்றும், Node.js 19.x இடைக்கால கிளை ஜூன் 1ம் தேதியும் நிறுத்தப்படும்.
முக்கிய மேம்பாடுகள்:
- V8 இன்ஜின் பதிப்பு 11.3 க்கு புதுப்பிக்கப்பட்டது, இது Chromium 113 இல் பயன்படுத்தப்படுகிறது. Chromium 19 இன்ஜின், String.prototype.isWellFormed மற்றும் toWellFormed செயல்பாடுகளை பயன்படுத்திய Node.js 107 கிளையுடன் ஒப்பிடும்போது மாற்றங்கள், Array.prototype மற்றும் TypedArray.prototype முறைகள், Array மற்றும் TypedArray ஆப்ஜெக்ட்களின் மாற்றத்தின் மீது நகலெடுக்கும் முறைகள், RegExp இல் "v" கொடி, ArrayBuffer இன் அளவை மாற்றுவதற்கான ஆதரவு மற்றும் WebAssembly இல் tail-call இன் அளவை அதிகரிப்பதற்கான ஆதரவு.
- செயல்படுத்தும் போது சில ஆதாரங்களுக்கான அணுகலைக் கட்டுப்படுத்த அனுமதிக்கும் சோதனை அனுமதி மாதிரி பொறிமுறையானது முன்மொழியப்பட்டது. இயங்கும் போது "--சோதனை-அனுமதி" கொடியைக் குறிப்பிடுவதன் மூலம் அனுமதி மாதிரி ஆதரவு இயக்கப்படுகிறது. ஆரம்ப அமலாக்கத்தில், FS, குழந்தை செயல்முறைகள் (--அனுமதி-குழந்தை-செயல்பாடு) சில பகுதிகளை எழுதுவதை கட்டுப்படுத்தவும் (--allow-fs-read) படிக்கவும் (--allow-fs-read) விருப்பங்கள் முன்மொழியப்பட்டன. , add-ons (--no-addons ) மற்றும் threads (--allow-worker). எடுத்துக்காட்டாக, /tmp கோப்பகத்தில் எழுதவும் /home/index.js கோப்பைப் படிக்கவும் அனுமதிக்க, நீங்கள் குறிப்பிடலாம்: node --experimental-permission --allow-fs-write=/tmp/ --allow-fs-read =/home/index.js இன்டெக்ஸ் .js
அணுகலைச் சரிபார்க்க, process.permission.has() முறையைப் பயன்படுத்த பரிந்துரைக்கப்படுகிறது, எடுத்துக்காட்டாக, "process.permission.has('fs.write',"/tmp/test").
- "--பரிசோதனை- ஏற்றி" விருப்பத்தின் மூலம் ஏற்றப்பட்ட ECMAScript வெளிப்புற தொகுதிகளுக்கான (ESMகள்) ஹேண்ட்லர்கள் இப்போது ஒரு தனி நூலில் செயல்படுத்தப்படுகின்றன, இது பிரதான தொடரிலிருந்து தனிமைப்படுத்தப்பட்டுள்ளது, இது பயன்பாட்டுக் குறியீடு மற்றும் ஏற்றப்பட்ட ESM தொகுதிகளின் குறுக்குவெட்டை நீக்குகிறது. உலாவிகளைப் போலவே, import.meta.resolve() முறையும் இப்போது ஒரு பயன்பாட்டிலிருந்து அழைக்கப்படும்போது ஒத்திசைவாகச் செயல்படுகிறது. Node.js இன் அடுத்த கிளைகளில் ஒன்றில், ESM ஏற்றுதல் ஆதரவு நிலையான அம்சங்களின் வகைக்கு மாற்ற திட்டமிடப்பட்டுள்ளது.
- முனை:சோதனை (test_runner) தொகுதி, TAP (Test Anything Protocol) வடிவத்தில் முடிவுகளை வழங்கும் JavaScript சோதனைகளை உருவாக்கி இயக்க வடிவமைக்கப்பட்டுள்ளது, நிலையான நிலைக்கு நகர்த்தப்பட்டது.
- ஒரு தனி செயல்திறன் குழு உருவாக்கப்பட்டது, இது புதிய கிளைக்கான தயாரிப்பில், URL பாகுபடுத்துதல், ஃபெட்ச்() மற்றும் EventTarget உள்ளிட்ட பல்வேறு இயக்க நேர கூறுகளை விரைவுபடுத்த வேலை செய்தது. எடுத்துக்காட்டாக, EventTarget ஐ துவக்குவதற்கான மேல்நிலை பாதியாக குறைக்கப்பட்டுள்ளது, URL.canParse() முறையின் செயல்திறன் கணிசமாக மேம்படுத்தப்பட்டுள்ளது மற்றும் டைமர்களின் செயல்திறன் மேம்படுத்தப்பட்டுள்ளது. கூடுதலாக, C ++ இல் எழுதப்பட்ட உயர் செயல்திறன் கொண்ட URL பாகுபடுத்தி - Ada 2.0 வெளியீடு சேர்க்கப்பட்டுள்ளது.
- ஒற்றை இயங்கக்கூடிய கோப்பு (SEA, ஒற்றை இயங்கக்கூடிய பயன்பாடுகள்) வடிவத்தில் பயன்பாடுகளை வழங்குவதற்கான சோதனை அம்சத்தின் வளர்ச்சி தொடர்கிறது. இப்போது இயங்கக்கூடிய ஒன்றை உருவாக்க, JSON உள்ளமைவு கோப்பிலிருந்து உருவாக்கப்பட்ட ஒரு குமிழியை மாற்ற வேண்டும் (ஜாவாஸ்கிரிப்ட் கோப்பை மாற்றுவதற்குப் பதிலாக).
- மேம்படுத்தப்பட்ட Web Crypto API இணக்கத்தன்மை மற்ற திட்டங்களின் செயலாக்கங்களுடன்.
- Добавлена официальная поддержка Windows на системах ARM64.
- தனித்த WebAssembly பயன்பாடுகளை உருவாக்குவதற்கான WASI (WebAssembly System Interface) நீட்டிப்புகளுக்கான தொடர்ச்சியான ஆதரவு. WASI ஆதரவை இயக்க சிறப்பு கட்டளை வரி கொடியை குறிப்பிட வேண்டிய அவசியம் நீக்கப்பட்டது.
Node.js தளத்தை வலை பயன்பாடுகளின் சர்வர் பக்க ஆதரவுக்கும், நிலையான கிளையன்ட் மற்றும் சர்வர் பக்க நெட்வொர்க் நிரல்களை உருவாக்குவதற்கும் பயன்படுத்தலாம். Node.js பயன்பாடுகளின் செயல்பாட்டை விரிவுபடுத்த, செயல்படுத்தும் தொகுதிகள் உட்பட ஒரு பெரிய தொகுப்பு தயாரிக்கப்பட்டுள்ளது. சேவையகங்கள் மற்றும் HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 ஆகியவற்றின் கிளையண்டுகள், பல்வேறு வலை கட்டமைப்புகளுடன் ஒருங்கிணைப்பதற்கான தொகுதிகள், WebSocket மற்றும் Ajax கையாளுபவர்கள், DBMS (MySQL, PostgreSQL, SQLite, MongoDB) இணைப்பிகள், டெம்ப்ளேட் இயந்திரங்கள், CSS இயந்திரங்கள், கிரிப்டோகிராஃபிக் வழிமுறைகள் மற்றும் அங்கீகார அமைப்புகளின் செயல்படுத்தல்கள் (OAuth), XML பாகுபடுத்திகள்.
அதிக எண்ணிக்கையிலான இணையான கோரிக்கைகளைக் கையாள, Node.js தடையற்ற நிகழ்வு செயலாக்கம் மற்றும் கால்பேக் கையாளுநர்களை அடிப்படையாகக் கொண்ட ஒரு ஒத்திசைவற்ற குறியீடு செயலாக்க மாதிரியைப் பயன்படுத்துகிறது. ஆதரிக்கப்படும் இணைப்பு மல்டிபிளெக்சிங் முறைகளில் epoll, kqueue, /dev/poll, மற்றும் select ஆகியவை அடங்கும். யூனிக்ஸ் அமைப்புகளில் உள்ள libev மற்றும் IOCP அமைப்புகளில் உள்ள IOCP ஆகியவற்றின் சூப்பர்செட்டாக இருக்கும் libuv நூலகம், இணைப்பு மல்டிபிளெக்சிங்கிற்காகப் பயன்படுத்தப்படுகிறது. Windowsஒரு த்ரெட் பூலை உருவாக்க libeio நூலகம் பயன்படுத்தப்படுகிறது, மேலும் நான்-பிளாக்கிங் பயன்முறையில் DNS வினவல்களைச் செய்ய c-ares ஒருங்கிணைக்கப்பட்டுள்ளது. அனைத்து பிளாக்கிங் சிஸ்டம் அழைப்புகளும் த்ரெட் பூலுக்குள் செயல்படுத்தப்படுகின்றன, பின்னர், சிக்னல் ஹேண்ட்லர்களைப் போலவே, பெயரிடப்படாத பைப் வழியாக அவற்றின் முடிவுகளைத் திருப்பி அனுப்புகின்றன. ஜாவாஸ்கிரிப்ட் செயலாக்கம் கூகிளின் V8 எஞ்சின் மூலம் வழங்கப்படுகிறது (மைக்ரோசாப்ட் நிறுவனமும் சக்ரா-கோர் எஞ்சினுடன் நோட்.ஜேஎஸ்-இன் ஒரு வகையை உருவாக்கி வருகிறது).
அதன் மையத்தில், Node.js ஆனது Perl AnyEvent, Ruby Event Machine, Python Twisted frameworks மற்றும் Tcl நிகழ்வு செயல்படுத்தல் ஆகியவற்றைப் போன்றது, ஆனால் Node.js இல் உள்ள நிகழ்வு லூப் டெவலப்பரிடம் இருந்து மறைக்கப்பட்டு, இயங்கும் இணையப் பயன்பாட்டில் நிகழ்வைக் கையாளுவதை ஒத்திருக்கிறது. உலாவியில். node.js க்கான பயன்பாடுகளை எழுதும் போது, நிகழ்வு-உந்துதல் நிரலாக்கத்தின் பிரத்தியேகங்களைக் கருத்தில் கொள்ள வேண்டும், எடுத்துக்காட்டாக, "var result = db.query("select..");" வேலை முடிவடையும் வரை காத்திருக்கும் மற்றும் முடிவுகளின் அடுத்தடுத்த செயலாக்கத்துடன், Node.js ஒத்திசைவற்ற செயல்பாட்டின் கொள்கையைப் பயன்படுத்துகிறது, அதாவது. குறியீடு "db.query("select..", செயல்பாடு (முடிவு) {முடிவு செயலாக்கம்});" என மாற்றப்படுகிறது, இதில் கட்டுப்பாடு உடனடியாக மேலும் குறியீட்டிற்கு அனுப்பப்படும், மேலும் தரவு வந்தவுடன் வினவல் முடிவு செயலாக்கப்படும்.
ஆதாரம்: opennet.ru
