Deno JavaScript ప్లాట్‌ఫారమ్ NPM మాడ్యూల్‌లకు అనుకూలంగా ఉంది

డెనో 1.28 విడుదల చేయబడింది, శాండ్‌బాక్సింగ్ జావాస్క్రిప్ట్ మరియు టైప్‌స్క్రిప్ట్ అప్లికేషన్‌ల కోసం ఒక ఫ్రేమ్‌వర్క్, ఇది సర్వర్-సైడ్ హ్యాండ్లర్‌లను రూపొందించడానికి ఉపయోగించవచ్చు. ప్లాట్‌ఫారమ్‌ను Node.js సృష్టికర్త ర్యాన్ డాల్ అభివృద్ధి చేశారు. Node.js వలె, Deno V8 జావాస్క్రిప్ట్ ఇంజిన్‌ను ఉపయోగిస్తుంది, ఇది Chromium-ఆధారిత బ్రౌజర్‌లలో కూడా ఉపయోగించబడుతుంది. అదే సమయంలో, Deno Node.js యొక్క ఫోర్క్ కాదు, ఇది మొదటి నుండి సృష్టించబడిన కొత్త ప్రాజెక్ట్. ప్రాజెక్ట్ కోడ్ MIT లైసెన్స్ క్రింద పంపిణీ చేయబడింది. Linux, Windows మరియు macOS కోసం బిల్డ్‌లు సిద్ధం చేయబడ్డాయి.

వినియోగదారులకు మరింత సురక్షితమైన వాతావరణాన్ని అందించడానికి మరియు Node.js ఆర్కిటెక్చర్‌లో సంభావిత లోపాలను తొలగించడానికి Deno ప్రాజెక్ట్ సృష్టించబడింది. భద్రతను మెరుగుపరచడానికి, V8 ఇంజిన్ రస్ట్‌లో వ్రాయబడింది, ఇది తక్కువ-స్థాయి మెమరీ మానిప్యులేషన్ నుండి ఉత్పన్నమయ్యే అనేక దుర్బలత్వాలను నివారిస్తుంది. నాన్-బ్లాకింగ్ మోడ్‌లో అభ్యర్థనలను ప్రాసెస్ చేయడానికి, రస్ట్‌లో కూడా వ్రాయబడిన టోకియో ప్లాట్‌ఫారమ్ ఉపయోగించబడుతుంది. టోకియో ఈవెంట్-ఆధారిత ఆర్కిటెక్చర్ ఆధారంగా అధిక-పనితీరు గల అప్లికేషన్‌లను సృష్టించడానికి మిమ్మల్ని అనుమతిస్తుంది, మల్టీ-థ్రెడింగ్ మరియు ప్రాసెసింగ్ నెట్‌వర్క్ అభ్యర్థనలను అసమకాలిక రీతిలో సపోర్ట్ చేస్తుంది.

కొత్త విడుదలలో కీలకమైన మార్పు NPM రిపోజిటరీలో హోస్ట్ చేయబడిన ప్యాకేజీలతో అనుకూలత యొక్క స్థిరీకరణ, ఇది Node.js ప్లాట్‌ఫారమ్ కోసం సృష్టించబడిన 1.3 మిలియన్ కంటే ఎక్కువ మాడ్యూల్‌లను ఉపయోగించడానికి Denoని అనుమతిస్తుంది. ఉదాహరణకు, Deno-ఆధారిత అప్లికేషన్‌లు ఇప్పుడు Prisma, Mongoose మరియు MySQL వంటి నిరంతర డేటా యాక్సెస్ మాడ్యూల్‌లను అలాగే రియాక్ట్ మరియు Vue వంటి ఫ్రంట్-ఎండ్ ఫ్రేమ్‌వర్క్‌లను ఉపయోగించవచ్చు. కొన్ని NPM మాడ్యూల్స్ ఇప్పటికీ Denoతో అననుకూలంగానే ఉన్నాయి, ఉదాహరణకు Node.js-నిర్దిష్ట ఎన్విరాన్‌మెంట్ ఎలిమెంట్‌ల వంటి ప్యాకేజీ.json ఫైల్‌కు బైండింగ్‌ల కారణంగా. NPM మాడ్యూల్స్‌తో "డెనో కంపైల్" ఆదేశాన్ని ఉపయోగించడం కూడా ఇంకా సాధ్యం కాదు. భవిష్యత్ విడుదలలు ఈ అననుకూలతలు మరియు పరిమితులను పరిష్కరించడానికి ప్లాన్ చేస్తాయి.

Deno యొక్క మునుపు ఉపయోగించిన ECMAScript మాడ్యూల్ సిస్టమ్ మరియు వెబ్ API మోడల్‌కు మద్దతు అదే స్థాయిలో ఉంచబడుతుంది మరియు NPM మాడ్యూల్‌లను దిగుమతి చేయడానికి Deno యొక్క సుపరిచితమైన URL-ఆధారిత లోడింగ్ పథకం ఉపయోగించబడుతుంది. NPM మాడ్యూల్‌లను యాక్సెస్ చేయడానికి, ప్రత్యేక URL ప్రిఫిక్స్ “npm:” ఉంది, ఇది సాధారణ డెనో మాడ్యూల్‌ల మాదిరిగానే ఉపయోగించబడుతుంది. ఉదాహరణకు, NPM మాడ్యూల్‌ను దిగుమతి చేయడానికి, మీరు "npm:chalk@5";' నుండి దిగుమతి {సుద్ద }ని పేర్కొనవచ్చు మరియు కమాండ్ లైన్ నుండి NPM స్క్రిప్ట్‌ను అమలు చేయడానికి - "deno run --allow-env --allow -read npm:create- vite-extra."

Denoలో NPM ప్యాకేజీలను ఉపయోగించడం Node.js కంటే చాలా సులభం, ఎందుకంటే మాడ్యూల్‌లను ముందుగా ఇన్‌స్టాల్ చేయాల్సిన అవసరం లేదు (అప్లికేషన్ మొదట ప్రారంభించబడినప్పుడు మాడ్యూల్స్ ఇన్‌స్టాల్ చేయబడతాయి), ప్యాకేజీ.json ఫైల్ లేదు మరియు డిఫాల్ట్ node_modules లేదు. డైరెక్టరీ (మాడ్యూల్స్ భాగస్వామ్య డైరెక్టరీలో కాష్ చేయబడ్డాయి, కానీ “--node-modules-dir” ఎంపికను ఉపయోగించి పాత ప్రవర్తనను తిరిగి ఇవ్వడం సాధ్యమవుతుంది).

NPM-ఆధారిత అప్లికేషన్‌లు Deno యొక్క యాక్సెస్ నియంత్రణ, ఐసోలేషన్ మరియు సెక్యూరిటీ-సెన్సిటివ్ అధునాతన సామర్థ్యాలను ఉపయోగించగల సామర్థ్యాన్ని కలిగి ఉంటాయి. సందేహాస్పద డిపెండెన్సీల ద్వారా దాడులను ఎదుర్కోవడానికి, డిపెండెన్సీల నుండి సిస్టమ్‌కు యాక్సెస్‌ను పొందే అన్ని ప్రయత్నాలను డెనో డిఫాల్ట్‌గా బ్లాక్ చేస్తుంది మరియు గుర్తించిన సమస్యల గురించి హెచ్చరికను ప్రదర్శిస్తుంది. ఉదాహరణకు, ఒక మాడ్యూల్ /usr/bin/కి వ్రాత యాక్సెస్‌ను పొందేందుకు ప్రయత్నించినప్పుడు, ఈ ఆపరేషన్ కోసం నిర్ధారణ అభ్యర్థన ప్రదర్శించబడుతుంది: deno రన్ npm:install-malware ⚠️ ┌ Deno అభ్యర్థనలు /usr/bin/కి వ్రాతపూర్వక ప్రాప్యత. ├ `install-malware` ద్వారా అభ్యర్థించబడింది ├ ఈ ప్రాంప్ట్‌ను దాటవేయడానికి --allow-writeతో మళ్లీ అమలు చేయండి. └ అనుమతించాలా? [y/n] (y = అవును, అనుమతించు; n = కాదు, తిరస్కరించు) >

కొత్త వెర్షన్‌లో NPM కాని మెరుగుదలలలో V8 ఇంజిన్‌ను 10.9 విడుదల చేయడానికి నవీకరించడం, లాక్‌లతో ఫైల్‌లను స్వయంచాలకంగా గుర్తించడం, Deno.bench(), Deno.gid(), Deno.networkInterfaces(), Deno.systemMemoryInfo() స్థిరీకరణ ఉన్నాయి. మరియు Deno APIలు. .uid(), రన్నింగ్ కమాండ్‌ల కోసం కొత్త అస్థిర API Deno.Command()ని జోడిస్తుంది (Deno.spawn, Deno.spawnSync మరియు Deno.spawnChild కోసం యూనివర్సల్ రీప్లేస్‌మెంట్).

డెనో యొక్క ప్రధాన లక్షణాలు:

  • భద్రత-ఆధారిత డిఫాల్ట్ కాన్ఫిగరేషన్. ఫైల్ యాక్సెస్, నెట్‌వర్కింగ్ మరియు ఎన్విరాన్‌మెంట్ వేరియబుల్స్‌కి యాక్సెస్ డిఫాల్ట్‌గా డిసేబుల్ చేయబడతాయి మరియు తప్పనిసరిగా ఎనేబుల్ చేయబడాలి. అప్లికేషన్‌లు డిఫాల్ట్‌గా వివిక్త శాండ్‌బాక్స్ పరిసరాలలో అమలవుతాయి మరియు స్పష్టమైన అనుమతులను మంజూరు చేయకుండా సిస్టమ్ సామర్థ్యాలను యాక్సెస్ చేయలేవు;
  • జావాస్క్రిప్ట్‌కు మించిన టైప్‌స్క్రిప్ట్‌కు అంతర్నిర్మిత మద్దతు. టైప్ చెకింగ్ మరియు జావాస్క్రిప్ట్ జనరేషన్ కోసం, స్టాండర్డ్ టైప్‌స్క్రిప్ట్ కంపైలర్ ఉపయోగించబడుతుంది, ఇది V8లోని జావాస్క్రిప్ట్ పార్సింగ్‌తో పోలిస్తే పనితీరులో తగ్గుదలకు దారితీస్తుంది;
  • రన్‌టైమ్ ఒకే స్వీయ-నియంత్రణ ఎక్జిక్యూటబుల్ ఫైల్ ("డెనో") రూపంలో వస్తుంది. Denoని ఉపయోగించి అప్లికేషన్‌లను రన్ చేయడానికి, మీరు మీ ప్లాట్‌ఫారమ్ కోసం ఒక ఎక్జిక్యూటబుల్ ఫైల్‌ను డౌన్‌లోడ్ చేయాలి, దాదాపు 30 MB పరిమాణం ఉంటుంది, దీనికి బాహ్య డిపెండెన్సీలు లేవు మరియు సిస్టమ్‌లో ప్రత్యేక ఇన్‌స్టాలేషన్ అవసరం లేదు. అంతేకాకుండా, డెనో అనేది మోనోలిథిక్ అప్లికేషన్ కాదు, ఇది రస్ట్ క్రేట్ ప్యాకేజీల (deno_core, rusty_v8) సమాహారం, వీటిని ప్రత్యేకంగా ఉపయోగించవచ్చు;
  • ప్రోగ్రామ్‌ను ప్రారంభించేటప్పుడు, అలాగే మాడ్యూల్‌లను లోడ్ చేయడానికి, మీరు URL చిరునామాను ఉపయోగించవచ్చు. ఉదాహరణకు, welcome.js ప్రోగ్రామ్‌ను అమలు చేయడానికి, మీరు “deno https://deno.land/std/examples/welcome.js” ఆదేశాన్ని ఉపయోగించవచ్చు. బాహ్య వనరుల నుండి కోడ్ డౌన్‌లోడ్ చేయబడుతుంది మరియు స్థానిక సిస్టమ్‌లో కాష్ చేయబడుతుంది, కానీ స్వయంచాలకంగా ఎప్పటికీ నవీకరించబడదు (నవీకరణ చేయడానికి “--రీలోడ్” ఫ్లాగ్‌తో అప్లికేషన్‌ను స్పష్టంగా అమలు చేయడం అవసరం);
  • అప్లికేషన్‌లలో HTTP ద్వారా నెట్‌వర్క్ అభ్యర్థనల సమర్థవంతమైన ప్రాసెసింగ్; ప్లాట్‌ఫారమ్ అధిక-పనితీరు గల నెట్‌వర్క్ అప్లికేషన్‌లను రూపొందించడానికి రూపొందించబడింది;
  • డెనోలో మరియు సాధారణ వెబ్ బ్రౌజర్‌లో అమలు చేయగల సార్వత్రిక వెబ్ అప్లికేషన్‌లను సృష్టించగల సామర్థ్యం;
  • మాడ్యూల్స్ యొక్క ప్రామాణిక సెట్ యొక్క ఉనికి, దీని ఉపయోగం బాహ్య డిపెండెన్సీలకు కట్టుబడి ఉండవలసిన అవసరం లేదు. ప్రామాణిక సేకరణ నుండి మాడ్యూల్స్ అదనపు ఆడిట్ మరియు అనుకూలత పరీక్షకు లోనయ్యాయి;
  • రన్‌టైమ్‌తో పాటు, డెనో ప్లాట్‌ఫారమ్ ప్యాకేజీ మేనేజర్‌గా కూడా పనిచేస్తుంది మరియు కోడ్‌లోని URL ద్వారా మాడ్యూల్‌లను యాక్సెస్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. ఉదాహరణకు, మాడ్యూల్‌ను లోడ్ చేయడానికి, మీరు “https://deno.land/std/log/mod.ts” నుండి లాగ్‌గా “దిగుమతి *ని కోడ్‌లో పేర్కొనవచ్చు. URL ద్వారా బాహ్య సర్వర్‌ల నుండి డౌన్‌లోడ్ చేయబడిన ఫైల్‌లు కాష్ చేయబడ్డాయి. మాడ్యూల్ వెర్షన్‌లకు బైండింగ్ అనేది URL లోపల వెర్షన్ నంబర్‌లను పేర్కొనడం ద్వారా నిర్ణయించబడుతుంది, ఉదాహరణకు, “https://unpkg.com/[ఇమెయిల్ రక్షించబడింది]/dist/liltest.js";
  • నిర్మాణంలో సమీకృత డిపెండెన్సీ ఇన్‌స్పెక్షన్ సిస్టమ్ (“డెనో ఇన్ఫో” కమాండ్) మరియు కోడ్ ఫార్మాటింగ్ కోసం యుటిలిటీ (డెనో fmt) ఉన్నాయి;
  • అన్ని అప్లికేషన్ స్క్రిప్ట్‌లను ఒక జావాస్క్రిప్ట్ ఫైల్‌గా కలపవచ్చు.

మూలం: opennet.ru

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