JavaScript መድረክ Node.js 22.0.0 ይገኛል።

Node.js 22.0 በጃቫ ስክሪፕት ውስጥ የኔትወርክ አፕሊኬሽኖችን ለማሄድ የሚያስችል መድረክ ተለቀቀ። Node.js 22.0 እንደ የረጅም ጊዜ የድጋፍ ቅርንጫፍ ተመድቧል፣ ነገር ግን ይህ ሁኔታ ከተረጋጋ በኋላ በጥቅምት ወር ብቻ ይመደባል። Node.js 22.x እስከ ኤፕሪል 30፣ 2027 ድረስ ይደገፋል። የNode.js 20.x የቀድሞ LTS ቅርንጫፍ ጥገና እስከ ኤፕሪል 2026 እና ካለፈው LTS ቅርንጫፍ 18.x በፊት ያለው አመት እስከ ኤፕሪል 2025 ድረስ ይቆያል። የNode.js 21.x ዝግጅት ቅርንጫፍ ሰኔ 1፣ 2024 ይቋረጣል።

ዋና ማሻሻያዎች፡-

  • የV8 ኤንጂን ወደ ስሪት 12.4 ተዘምኗል፣ በChromium 124 ጥቅም ላይ ይውላል። ከ Node.js 21 ቅርንጫፍ ጋር ሲነፃፀር፣ V8 11.8 ኤንጂን ከተጠቀመው) መካከል፡-
    • ለ WasmGC ቅጥያ ድጋፍ ፣ በፕሮግራሚንግ ቋንቋዎች የተፃፉ ፕሮግራሞችን ቆሻሻ ሰብሳቢ (ኮትሊን ፣ ፒኤችፒ ፣ ጃቫ ፣ ወዘተ) ወደ WebAssembly መላክን ቀላል ያደርገዋል። WasmGC መስመራዊ ያልሆነ የማህደረ ትውስታ ድልድልን መጠቀም የሚችሉ አዲስ አይነት አወቃቀሮችን እና ድርድሮችን ይጨምራል።
    • የ Array.fromAsync() ዘዴ ድጋፍ፣ ከተደራራቢ መሰል፣ ተነባቢ ወይም የተመሳሰለ የሚደጋገም ነገር አዲስ የ Array ነገርን በአንድነት ይመልሳል።
    • እንደ .ካርታ፣ .ማጣራት፣ .ፈልግ፣ .ውሰድ፣ .ጣል፣ .ለእያንዳንዱ እና .መቀነስ የመሳሰሉ የመድገም ዘዴዎች ድጋፍ።
    • የእሴቶችን ስብስብ የሚገልጽ እና እንደ መገናኛ፣ ህብረት፣ ልዩነት እና መደመር ያሉ የጋራ ስብስብ ስራዎችን የሚተገብሩ ዘዴዎችን የሚያቀርብ የስብስብ ነገር ድጋፍ።
  • ከፍተኛ አፈጻጸም ያለው የማሽን ኮድ በከፍተኛ ደረጃ ጥቅም ላይ ለዋለ ጃቫስክሪፕት ኮድ ለመፍጠር በማለምለም የማግሌቭ ማበልጸጊያ JIT ማጠናቀር በነባሪነት ነቅቷል። ማግሌቭን ማንቃት የረጅም ጊዜ ስራዎችን የማይሰሩ የአጭር ጊዜ የCLI አፕሊኬሽኖችን በከፍተኛ ሁኔታ ማፋጠን ይችላል ለምሳሌ የጄትሬአ ሙከራን የማጠናቀቅ ጊዜ በ 7.5% እና የፍጥነት መለኪያ ሙከራ በ 5% ይቀንሳል.
  • ከዥረቶች ጋር መስራት የተፋጠነው የከፍተኛ የውሃ ማርክ አማራጭን ዋጋ ከ16 ኪባ ወደ 65 ኪባ በመጨመር ነው (የቀረጻውን ገደብ የሚወስነው)። ለውጡ የማህደረ ትውስታ ፍጆታን ይጨምራል፣ስለዚህ በውስን RAM ላይ ለመስራት የተነደፉ አፕሊኬሽኖች ወደ setDefaultHighWaterMark() ጥሪ ወደ አሮጌው እሴት መመለስ ያስፈልጋቸው ይሆናል።
  • የአቦርት ሲግናል ቅጽበታዊ ገጽ እይታን የበለጠ ቀልጣፋ በማድረግ የተሻሻለ () እና ሯጭ ኤፒአይዎችን ፈትኗል። ከፋይል ስርዓቶች ጋር ከተመሳሰለ ሥራ ጋር የተገናኘ የኤፒአይዎች አፈጻጸም ተሻሽሏል።
  • የJavaScript ESM ሞጁሎችን (ECMAScript Modules) በተመሳሰለ ሁነታ ለመጫን የ"require()" ጥሪን ለመጠቀም የሙከራ ባህሪ ቀርቧል። የESM ሞጁሎች በአሳሾች ውስጥ ጥቅም ላይ ይውላሉ እና ለ Node.js የተለዩ CommonJS ሞጁሎችን ይተካሉ። በ"require()" በኩል ለመጫን የESM ሞጁሉ በተመሳሰለ ሁነታ (ከላይኛው ደረጃ ሳይጠብቅ) መተግበር አለበት። ድጋፍ በ"--ለሙከራ-አስፈላጊ-ሞዱል" ባንዲራ በኩል ነቅቷል።
  • የ"--run" ትዕዛዙን በመጠቀም በ pack.json ፋይል ውስጥ የተገለጹ ስክሪፕቶችን የማሄድ የሙከራ ችሎታ ታክሏል። "
  • የ "node -watch" ትዕዛዝ ወደ የተረጋጋ ምድብ ተንቀሳቅሷል የሰዓት ሁነታን በመተግበር ሂደቱ እንደገና መጀመሩን የሚያረጋግጥ ከውጭ የመጣው ፋይል ሲቀየር (ለምሳሌ "node -watch index.js" ከተፈጸመ, index.js ሲቀየር ሂደቱ በራስ-ሰር እንደገና ይጀምራል።
  • የWebSocket API ቤተኛ አተገባበር ተረጋግቷል፣ ይህም ዌብሶኬት ተጨማሪ ጥገኞችን ሳይጭን በደንበኛ ሁነታ ጥቅም ላይ እንዲውል አስችሎታል።
  • ለ Navigator API ከፊል ድጋፍ ታክሏል።
  • የዌብ ዥረት ኤፒአይ ለፍላት-ጥሬ መጭመቂያ ቅርጸት ድጋፍ አድርጓል።
  • የፋይል ዱካዎች ስርዓተ ጥለት ለማዛመድ የግሎብ እና የግሎብSync ተግባራት ወደ node:fsmodule ታክለዋል።
  • በስህተት የተዋቀሩ የIPv6 ቁልል የተሻሻለ አያያዝ። የተተገበረ Happy Eyeballs ስልተ ቀመር በIPv6 አሠራር ላይ ችግሮች ካጋጠሙ ለፈጣን መልሶ ማገገሚያ።
  • util API ተቋርጧል።
  • የተዘመኑ የጥገኝነት ስሪቶች፡ npm 10.5.1፣ libuv 1.48.0፣ simdutf 5.2.3፣ c-ares 1.28.1፣ zlib 1.3.0.1-motley-24c07df፣ simdjson ወደ 3.8.0፣ ada 2.7.7. እና u.6.6.0 .

የ Node.js መድረክ ለድር መተግበሪያዎች አገልጋይ ጥገና እና መደበኛ የደንበኛ እና የአገልጋይ አውታረ መረብ ፕሮግራሞችን ለመፍጠር ሁለቱንም ሊያገለግል ይችላል። ለ Node.js አፕሊኬሽኖች ተግባራዊነትን ለማስፋት ብዙ የሞጁሎች ስብስብ ተዘጋጅቷል ፣ በዚህ ውስጥ የኤችቲቲፒ ፣ SMTP ፣ XMPP ፣ ዲ ኤን ኤስ ፣ ኤፍቲፒ ፣ IMAP ፣ POP3 አገልጋዮች እና ደንበኞች ፣ ውህደቶች ሞጁሎችን ማግኘት ይችላሉ ። በተለያዩ የድር ማዕቀፎች ፣ WebSocket እና Ajax ተቆጣጣሪዎች ፣ DBMS ማገናኛዎች (MySQL ፣ PostgreSQL ፣ SQLite ፣ MongoDB) ፣ ቴምፕሊንግ ሞተሮች ፣ CSS ሞተሮች ፣ የ crypto ስልተ ቀመሮች እና የፈቀዳ ስርዓቶች (OAuth) አተገባበር ፣ ኤክስኤምኤል ተንታኞች።

ብዙ ቁጥር ያላቸው ትይዩ ጥያቄዎችን ለማስተናገድ Node.js በማይከለክለው የክስተት ሂደት እና የመልሶ ጥሪ ተቆጣጣሪዎችን በመግለጽ ላይ የተመሰረተ ያልተመሳሰል ኮድ ማስፈጸሚያ ሞዴል ይጠቀማል። የሚደገፉ ግንኙነቶችን ለማባዛት የሚረዱ ዘዴዎች epoll, kqueue, /dev/poll እና ይምረጡ. ለግንኙነት ማባዛት፣ ሊቡቭ ቤተ-መጽሐፍት ጥቅም ላይ ይውላል፣ ይህም በዩኒክስ ሲስተምስ ላይ ለሊቭቭ እና በዊንዶውስ ላይ IOCP ላይ ተጨማሪ ነው። የሊቤዮ ቤተ-መጽሐፍት የክር ገንዳ ለመፍጠር ይጠቅማል፣ እና c-ares የተዋሃደው የዲ ኤን ኤስ መጠይቆችን በማይታገድ ሁነታ ነው። እገዳን የሚያስከትሉ ሁሉም የስርዓት ጥሪዎች በክር ገንዳ ውስጥ ይከናወናሉ እና ከዚያ ልክ እንደ ሲግናል ተቆጣጣሪዎች የሥራቸውን ውጤት ባልታወቀ ቧንቧ ይመለሳሉ።

የጃቫ ስክሪፕት ኮድ አፈፃፀም የሚረጋገጠው በጎግል በተሰራው የቪ8 ኢንጂን በመጠቀም ነው (በተጨማሪም ማይክሮሶፍት የ Node.js ሥሪት ከቻክራ-ኮር ሞተር ጋር እያዘጋጀ ነው።) በዋናው ላይ፣ Node.js ከ Perl AnyEvent፣ Ruby Event Machine፣ Python Twisted frameworks እና በTcl ውስጥ ያሉ የክስተቶች አተገባበር ጋር ተመሳሳይ ነው፣ ነገር ግን በ Node.js ውስጥ ያለው የክስተት ዑደት ከገንቢው የተደበቀ እና በድር መተግበሪያ ውስጥ የክስተት ሂደትን ይመስላል። በአሳሽ ውስጥ እየሄደ ነው።

ምንጭ: opennet.ru

አስተያየት ያክሉ