సర్వర్ వైపు JavaScript ప్లాట్‌ఫారమ్ Node.js 20.0 అందుబాటులో ఉంది

Node.js 20.0 విడుదల చేయబడింది, ఇది జావాస్క్రిప్ట్‌లో నెట్‌వర్క్ అప్లికేషన్‌లను అమలు చేయడానికి ఒక ప్లాట్‌ఫారమ్. Node.js 20.0 దీర్ఘకాలిక మద్దతు శాఖగా వర్గీకరించబడింది, అయితే ఈ స్థితి స్థిరీకరణ తర్వాత అక్టోబర్‌లో మాత్రమే కేటాయించబడుతుంది. Node.js 20.xకి ఏప్రిల్ 30, 2026 వరకు మద్దతు ఉంటుంది. Node.js 18.x యొక్క మునుపటి LTS బ్రాంచ్ నిర్వహణ ఏప్రిల్ 2025 వరకు కొనసాగుతుంది మరియు చివరి LTS బ్రాంచ్ 16.xకి ముందు సెప్టెంబరు 2023 వరకు ఉంటుంది. 14.x LTS శాఖ ఏప్రిల్ 30న నిలిపివేయబడుతుంది మరియు Node.js 19.x స్టేజింగ్ బ్రాంచ్ జూన్ 1న నిలిపివేయబడుతుంది.

ప్రధాన మెరుగుదలలు:

  • V8 ఇంజిన్ వెర్షన్ 11.3కి నవీకరించబడింది, ఇది Chromium 113లో ఉపయోగించబడింది. Chromium 19 ఇంజిన్‌ను ఉపయోగించిన Node.js 107 బ్రాంచ్‌తో పోలిస్తే మార్పులు, String.prototype.isWellFormed మరియు toWellFormed ఫంక్షన్‌లు, Array.prototype మరియు TypedArray ఉన్నాయి. Array మరియు TypedArray ఆబ్జెక్ట్‌లను మార్చేటప్పుడు కాపీతో పని చేయడానికి ప్రోటోటైప్ పద్ధతులు, RegExpలోని “v” ఫ్లాగ్, ArrayBuffer పరిమాణాన్ని మార్చడానికి మద్దతు మరియు WebAssemblyలో SharedArrayBuffer పరిమాణాన్ని పెంచడం, టెయిల్ రికర్షన్ (టెయిల్-కాల్).
  • అమలు సమయంలో నిర్దిష్ట వనరులకు ప్రాప్యతను పరిమితం చేయడానికి అనుమతించే ప్రయోగాత్మక అనుమతి నమూనా విధానం ప్రతిపాదించబడింది. నడుస్తున్నప్పుడు “--ప్రయోగాత్మక-అనుమతి” ఫ్లాగ్‌ను పేర్కొనడం ద్వారా అనుమతి మోడల్ మద్దతు ప్రారంభించబడుతుంది. ప్రారంభ అమలు ఫైల్ సిస్టమ్‌లోని నిర్దిష్ట భాగాలకు, చైల్డ్ ప్రాసెస్‌లకు (--అనుమతి-చైల్డ్-ప్రాసెస్) యాక్సెస్‌ను పరిమితం చేయడానికి (--allow-fs-write) మరియు రీడ్ (--allow-fs-read) ఎంపికలను అందిస్తుంది. add-ons (--no-addons) ) మరియు థ్రెడ్‌లు (--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 (టెస్ట్ ఏదైనా ప్రోటోకాల్) ఆకృతిలో ఫలితాలను అందించే పరీక్షలను సృష్టించడం మరియు అమలు చేయడం కోసం రూపొందించబడింది, ఇది స్థిరంగా చేయబడింది.
  • పనితీరు ఆప్టిమైజేషన్‌కు బాధ్యత వహించే ప్రత్యేక డెవలప్‌మెంట్ బృందం ఏర్పడింది, ఇది కొత్త బ్రాంచ్‌ను సిద్ధం చేస్తున్నప్పుడు, URL పార్సింగ్, ఫెచ్() మరియు ఈవెంట్‌టార్గెట్‌తో సహా వివిధ రన్‌టైమ్ భాగాలను వేగవంతం చేయడానికి పని చేస్తుంది. ఉదాహరణకు, EventTarget ప్రారంభించడం యొక్క ఓవర్‌హెడ్ సగానికి తగ్గించబడింది, URL.canParse() పద్ధతి యొక్క పనితీరు గణనీయంగా మెరుగుపరచబడింది మరియు టైమర్‌ల సామర్థ్యం మెరుగుపరచబడింది. ఇది C++లో వ్రాయబడిన అధిక-పనితీరు గల URL పార్సర్, Ada 2.0 విడుదలను కూడా కలిగి ఉంది.
  • ఒకే ఎక్జిక్యూటబుల్ ఫైల్ (SEA, సింగిల్ ఎక్జిక్యూటబుల్ అప్లికేషన్స్) రూపంలో అప్లికేషన్‌లను బట్వాడా చేయడానికి ప్రయోగాత్మక సామర్థ్యం అభివృద్ధి కొనసాగింది. ఎక్జిక్యూటబుల్ ఫైల్‌ను సృష్టించడానికి ఇప్పుడు JSON ఫార్మాట్‌లో కాన్ఫిగరేషన్ ఫైల్ నుండి రూపొందించబడిన బ్లాబ్‌ను భర్తీ చేయడం అవసరం (జావాస్క్రిప్ట్ ఫైల్‌ను ప్రత్యామ్నాయం చేయడానికి బదులుగా).
  • ఇతర ప్రాజెక్ట్‌ల అమలుతో వెబ్ క్రిప్టో API యొక్క మెరుగైన అనుకూలత.
  • ARM64 సిస్టమ్‌లలో Windows కోసం అధికారిక మద్దతు జోడించబడింది.
  • స్వతంత్ర వెబ్‌అసెంబ్లీ అప్లికేషన్‌లను రూపొందించడానికి WASI (WebAssembly సిస్టమ్ ఇంటర్‌ఫేస్) పొడిగింపుల కోసం మద్దతు అమలు కొనసాగుతోంది. WASI మద్దతును ప్రారంభించడానికి ప్రత్యేక కమాండ్ లైన్ ఫ్లాగ్‌ను పేర్కొనవలసిన అవసరం తీసివేయబడింది.

Node.js ప్లాట్‌ఫారమ్ వెబ్ అప్లికేషన్‌ల సర్వర్ వైపు మద్దతు కోసం మరియు సాధారణ క్లయింట్ మరియు సర్వర్ నెట్‌వర్క్ ప్రోగ్రామ్‌లను సృష్టించడం కోసం రెండింటినీ ఉపయోగించవచ్చు. Node.js కోసం అప్లికేషన్‌ల కార్యాచరణను విస్తరించడానికి, మాడ్యూళ్ల యొక్క పెద్ద సేకరణ సిద్ధం చేయబడింది, దీనిలో మీరు HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 సర్వర్‌లు మరియు క్లయింట్లు, ఇంటిగ్రేషన్ కోసం మాడ్యూల్‌ల అమలుతో మాడ్యూళ్లను కనుగొనవచ్చు. వివిధ వెబ్ ఫ్రేమ్‌వర్క్‌లు, WebSocket మరియు అజాక్స్ హ్యాండ్లర్లు, DBMS (MySQL, PostgreSQL, SQLite, MongoDB), టెంప్లేట్ ఇంజిన్‌లు, CSS ఇంజిన్‌లు, క్రిప్టోగ్రాఫిక్ అల్గారిథమ్‌లు మరియు ఆథరైజేషన్ సిస్టమ్‌ల అమలు (OAuth), XML పార్సర్‌లకు కనెక్టర్‌లు.

పెద్ద సంఖ్యలో సమాంతర అభ్యర్థనల ప్రాసెసింగ్‌ను నిర్ధారించడానికి, Node.js నాన్-బ్లాకింగ్ ఈవెంట్ హ్యాండ్లింగ్ మరియు కాల్‌బ్యాక్ హ్యాండ్లర్ల నిర్వచనం ఆధారంగా అసమకాలిక కోడ్ అమలు నమూనాను ఉపయోగిస్తుంది. మల్టీప్లెక్సింగ్ కనెక్షన్‌ల కోసం మద్దతు ఉన్న పద్ధతులు epoll, kqueue, /dev/poll, మరియు సెలెక్ట్. కనెక్షన్ మల్టీప్లెక్సింగ్ కోసం, libuv లైబ్రరీ ఉపయోగించబడుతుంది, ఇది Unix సిస్టమ్‌లలో libev మరియు Windowsలో IOCP కోసం యాడ్-ఆన్. libeio లైబ్రరీ థ్రెడ్ పూల్‌ని సృష్టించడానికి ఉపయోగించబడుతుంది మరియు నాన్-బ్లాకింగ్ మోడ్‌లో DNS ప్రశ్నలను నిర్వహించడానికి c-ares ఏకీకృతం చేయబడింది. నిరోధించడానికి కారణమయ్యే అన్ని సిస్టమ్ కాల్‌లు థ్రెడ్ పూల్ లోపల అమలు చేయబడతాయి మరియు సిగ్నల్ హ్యాండ్లర్ల వలె, పేరులేని పైపు (పైపు) ద్వారా వారి పని ఫలితాన్ని తిరిగి బదిలీ చేస్తాయి. జావాస్క్రిప్ట్ కోడ్ అమలు Google ద్వారా అభివృద్ధి చేయబడిన V8 ఇంజిన్‌ను ఉపయోగించడం ద్వారా అందించబడుతుంది (అదనంగా, మైక్రోసాఫ్ట్ చక్ర-కోర్ ఇంజిన్‌తో Node.js సంస్కరణను అభివృద్ధి చేస్తోంది).

దాని ప్రధాన భాగంలో, Node.js అనేది Perl AnyEvent, రూబీ ఈవెంట్ మెషిన్, పైథాన్ ట్విస్టెడ్ ఫ్రేమ్‌వర్క్‌లు మరియు Tcl ఈవెంట్ ఇంప్లిమెంటేషన్‌ను పోలి ఉంటుంది, అయితే Node.jsలోని ఈవెంట్ లూప్ డెవలపర్ నుండి దాచబడింది మరియు నడుస్తున్న వెబ్ అప్లికేషన్‌లో ఈవెంట్ హ్యాండ్లింగ్‌ను పోలి ఉంటుంది. బ్రౌజర్‌లో. node.js కోసం అప్లికేషన్‌లను వ్రాస్తున్నప్పుడు, మీరు ఈవెంట్-ఆధారిత ప్రోగ్రామింగ్ యొక్క ప్రత్యేకతలను పరిగణించాలి, ఉదాహరణకు, "var result = db.query("select..");" పనిని పూర్తి చేయడం మరియు ఫలితాల తదుపరి ప్రాసెసింగ్ కోసం వేచి ఉండటంతో, Node.js అసమకాలిక అమలు సూత్రాన్ని ఉపయోగిస్తుంది, అనగా. కోడ్ "db.query("select..", ఫంక్షన్ (ఫలితం) {ఫలితం ప్రాసెసింగ్});"గా రూపాంతరం చెందుతుంది, దీనిలో నియంత్రణ తక్షణమే తదుపరి కోడ్‌కు వెళుతుంది మరియు డేటా వచ్చిన తర్వాత ప్రశ్న ఫలితం ప్రాసెస్ చేయబడుతుంది.

మూలం: opennet.ru

ఒక వ్యాఖ్యను జోడించండి