Deno JavaScript platvorm toetab NPM mooduleid

VÀlja on antud Deno 1.28, platvorm isoleeritud JavaScripti ja TypeScripti rakenduste kÀitamiseks, mida saab kasutada serveripoolsete töötlejate loomisel. Platvormi arendab Ryan Dahl, Node.js looja. Nagu Node.js, kasutab Deno JavaScripti V8 mootorit, mida kasutatakse ka Chromiumi baasil pÔhinevates brauserites. Siiski, Deno ei ole Node.js haru, vaid nullist loodud uus projekt. Projekti kood on litsentseeritud MIT litsentsi alusel. Kompileeritud versioonid on saadaval Linuxile, Windowsile ja macOS-ile.

Deno projekt on loodud pakkuma kasutajatele turvalisemat keskkonda ning kĂ”rvaldab Node.js arhitektuuris tehtud kontseptuaalsed vead. Turvalisuse suurendamiseks on V8 mootori ĂŒmber kirjutatud Rusti keeles, et vĂ€ltida paljusid madala taseme mĂ€lu haldamisega seotud haavatavusi. Taotluste töötlemiseks kasutatakse mittesĂŒnkroneeritud platvormi Tokio, mis on samuti kirjutatud Rusti keeles. Tokio vĂ”imaldab luua kĂ”rge jĂ”udlusega rakendusi, mis pĂ”hinevad sĂŒndmustele orienteeritud arhitektuuril (Event-driven), toetades mitme niidi kasutamist ja asĂŒnkroonset vĂ”rgu taotluste töötlemist.

Uues vĂ€ljaandes on peamine muudatus NPM-i hoidlas paiknevaid pakette toetava ĂŒhilduvuse stabiliseerimine, mis vĂ”imaldab kasutada Deno-s ĂŒle 1.3 miljoni Node.js platvormile loodud mooduli. NĂ€iteks on Deno-pĂ”histes rakendustes nĂŒĂŒd vĂ”imalik kasutada selliseid mooduleid andmete pideva juurdepÀÀsu korraldamiseks nagu Prisma, Mongoose ja MySQL, samuti esiplaani tööks mĂ”eldud raamistikke nagu React ja Vue. MĂ”ned NPM-moodulid jÀÀvad Deno-ga siiski ĂŒhilduvaks, nĂ€iteks Node.js keskkonna spetsiifiliste elementide, nĂ€iteks package.json-faili, kĂŒlge sidumise tĂ”ttu. Samuti ei ole veel vĂ”imalik kasutada kĂ€sku „deno compile“ NPM-moodulitega. Tulevastes vĂ€ljaannetes on kavas sellised ĂŒhilduvus- ja piiranguprobleemid lahendada.

Deno mudeleid ja Web API-d toetava eelneva mudeli tugi on sĂ€ilinud samal tasemel ja NPM-moodulite importimiseks kasutatakse Deno-le tuttavat URL-pĂ”hist laadimisskeemi. NPM-moodulitele pÀÀsemiseks on ette nĂ€htud spetsiaalne URL-eelprefix "npm:", mida saab kasutada nagu tavapĂ€raste Deno moodulite puhul. NĂ€iteks NPM-mooduli importimiseks vĂ”ib kirjutada 'import { chalk } from "npm:chalk@5";', ja NPM-skripti kĂ€vitamiseks kĂ€surealt — 'deno run —allow-env —allow-read npm:create-vite-extra'.

NPM-pakettide kasutamine Deno-s on oluliselt lihtsam kui Node.js-s, kuna modude eelinstallimist ei ole vajalik (moodulid installitakse rakenduse esimesel kĂ€ivitamisel), package.json faili ei kasutata ning vaikimisi ei kasutata ka node_modules katalooge (moodulid vahetatakse ĂŒldises kataloogis, kuid vana kĂ€itumise taasalustamiseks on olemas vĂ”imalus valiku "—node-modules-dir" kaudu).

NPM-pĂ”histes rakendustes sĂ€ilitab Deno vĂ”imaluse kasutada juurdepÀÀsuhaldust, isoleerimist ja vĂ”imalikku turvalisuse aktiveerimist. RĂŒnnakute vĂ€ltimiseks kaheldavate sĂ”ltuvuste kaudu blokeerib Deno vaikimisi kĂ”ik katsed sĂŒsteemi juurde pÀÀseda, teavitades tuvastatud probleemidest. NĂ€iteks kui moodul pĂŒĂŒab kirjutamiseks pÀÀseda /usr/bin/, kuvatakse selle toimingu kinnitamise kĂŒsimus: deno run npm:install-malware ⚠ ┌ Deno palub kirjutamisĂ”igust /usr/bin/. ├ KĂŒsitakse `install-malware` poolt ├ KĂ€ivita uuesti —allow-write, et sellest teatisest mööda minna. └ Lubada? [y/n] (y = jah, luba; n = ei, keela) >

Uues versioonis on Deno tĂ€iustustes mainitud mitte seotud NPM-i rikkaid uuendusi, sealhulgas V8 mootori vĂ€rskendust versioonini 10.9, automaatset blokeerimisfailide mÀÀramist, API stabiliseerimist Deno.bench(), Deno.gid(), Deno.networkInterfaces(), Deno.systemMemoryInfo() ja Deno.uid(), samuti Deno.Command() uue katse API lisamist, et kĂ€ivitada kĂ€ske (ĂŒldine asendus Deno.spawn, Deno.spawnSync ja Deno.spawnChild).

Deno peamised omadused:

  • Turvalisuse orientatsioon vaikeseadetes. Failide juurde pÀÀs, vĂ”rguvĂ”imalused ja keskkonnamuutujate ale on vaikimisi blokeeritud ning vajavad selgelt lubamist. Vaikesed rakendused kĂ€ivituvad isoleeritud liivakasti keskkondades ega pÀÀse sĂŒsteemi funktsioonidele ligi ilma selgete volituste andmiseta;
  • Sisseehitatud TypeScripti keele tugi JavaScripti kĂ”rval. TĂŒĂŒpide kontrollimiseks ja JavaScripti genereerimiseks kasutatakse standardset TypeScripti kompilaatorit, mis pĂ”hjustab jĂ”udluse languse vĂ”rreldes JavaScripti kĂ€sitsi analĂŒĂŒsimisega V8-s;
  • Jooksepikendused esitatakse ĂŒhtse iseseisva kĂ€ideldava faili („deno”) kujul. Rakenduste kĂ€ivitamiseks Deno abil piisab, kui laadida alla platvormile sobiv kĂ€ideldav fail, mis on umbes 30 MB suurune, ilma vĂ€liste sĂ”ltuvusteta ning ei vaja mingit erilist sĂŒsteemi installimist. Deno ei ole monoliitne rakendus, vaid sisaldab Rustis kirjutatud crate-pakettide kogumit (deno_core, rusty_v8), mida saab kasutada eraldi;
  • Programmi kĂ€ivitamisel ning moodulite laadimisel saab kasutada URL-ide kaudu aadresse. NĂ€iteks, et kĂ€ivitada programmi welcome.js, vĂ”ib kasutada kĂ€sku «deno https://deno.land/std/examples/welcome.js». VĂ€lisest allikast saadud kood laaditakse ja vahemĂ€lustatakse kohalikus sĂŒsteemis, kuid ei uuendata automaatselt (uuendamiseks on vajalik rakendus selgelt kĂ€ivitada lipuga «—reload»);
  • TĂ”hus HTTP-pĂ€ringute töötlemine rakendustes, platvorm on suunatud kĂ”rge jĂ”udlusega vĂ”rgu rakenduste loomisele;
  • VĂ”imalus luua universaalseid veebi rakendusi, mis saavad töötada nii Deno-s kui ka tavapĂ€rases veebi brauseris;
  • Standardsete moodulite olemasolu, mille kasutamine ei nĂ”ua vĂ€liste sĂ”ltuvuste sidumist. Standardkollektsiooni moodulid on lĂ€binud tĂ€iendava auditi ja ĂŒhilduvuse kontrolli;
  • Lisaks runtime'ile tĂ€idab Deno platvorm ka paketihalduri rolli ja vĂ”imaldab koodis moodulite juurde pÀÀseda URL-ide kaudu. NĂ€iteks saab mooduli laadimiseks koodis mĂ€rkida "import * as log from 'https://deno.land/std/log/mod.ts'". VĂ€liste URL-ide kaudu laaditud failid serverite vahemĂ€lustatakse. Moodulite versioonide sidumine toimub URL-is versiooninumbrite nĂ€idete kaudu, nĂ€iteks 'https://unpkg.com/liltest@0.0.5/dist/liltest.js';
  • Integreeritud sĂŒsteem sĂ”ltuvuste inspektsiooniks (kĂ€sk 'deno info') ja koodi vormindamise utiliit (deno fmt);
  • KĂ”ik rakenduse skriptid saavad olla ĂŒhendatud ĂŒheks JavaScripti failiks.

Allikas: opennet.ru

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster