Deno projekt arendab turvalist JavaScripti platvormi, mis sarnaneb Node.js-iga

Saadaval projekti väljalase Anna mulle 0.33, mis pakub Node.js-i sarnast platvormi iseseisvaks rakenduste käivitamiseks JavaScriptis ja TypeScriptis, mida saab kasutada rakenduste käitamiseks ilma brauseriga sidumata, näiteks serveris töötavate töötlejate loomiseks. Deno kasutab JavaScripti mootorit V8, mida kasutatakse ka Node.js-is ja Chromiumi projektil põhinevates brauserites. Projekti kood jaotatud MIT litsentsi alusel. Projekti arendab Ryan Dahl (Ryan Dahl), JavaScripti platvormi Node.js looja.

JavaScripti uue käitusaja loomise üks peamisi eesmärke on turvalisema keskkonna pakkumine. Turvalisuse parandamiseks on V8 mootor kirjutatud Rust keeles, mis väldib paljusid madala tasemega mäluga manipuleerimisest tulenevaid haavatavusi, nagu järelvaba juurdepääs, nullkursori viited ja puhvri ülekulu. Platvormi kasutatakse päringute töötlemiseks mitteblokeerivas režiimis Tokyo, kirjutatud ka Roostes. Tokio võimaldab teil luua suure jõudlusega rakendusi, mis põhinevad sündmustepõhisel arhitektuuril, toetades mitme lõimega töötlemist ja võrgupäringute töötlemist asünkroonses režiimis.

Kõik Omadused Deno:

  • Turvalisusele orienteeritud vaikekonfiguratsioon. Juurdepääs failidele, võrkude loomine ja juurdepääs keskkonnamuutujatele on vaikimisi keelatud ja need peavad olema selgesõnaliselt lubatud;
  • Sisseehitatud tugi TypeScripti keelele lisaks JavaScriptile;
  • Käitusaeg on ühe iseseisva käivitatava faili (“deno”) kujul. Rakenduste käivitamiseks Deno abil piisab lae alla oma platvormi jaoks üks käivitatav fail, suurusega umbes 10 MB, millel pole väliseid sõltuvusi ja mis ei vaja süsteemi spetsiaalset installimist;
  • Programmi käivitamisel ja ka moodulite laadimisel saate kasutada URL-i adresseerimist. Näiteks programmi welcome.js käivitamiseks võite kasutada käsku "deno https://deno.land/std/examples/welcome.js". Välistest ressurssidest pärit kood laaditakse alla ja salvestatakse kohalikus süsteemis vahemällu, kuid seda ei värskendata kunagi automaatselt (värskendamiseks on vaja rakendust selgesõnaliselt käivitada lipuga "--reload");
  • Võrgupäringute tõhus töötlemine HTTP kaudu rakendustes; platvorm on mõeldud suure jõudlusega võrgurakenduste loomiseks;
  • Võimalus luua universaalseid veebirakendusi, mida saab käivitada nii Denos kui ka tavalises veebibrauseris;
  • Lisaks käitusajale toimib Deno platvorm ka paketihaldurina ja võimaldab moodulitele ligi pääseda koodi sees oleva URL-i kaudu. Näiteks mooduli laadimiseks saate määrata koodis "import * logina aadressilt "https://deno.land/std/log/mod.ts". Välistest serveritest URL-i kaudu alla laaditud failid salvestatakse vahemällu. Mooduli versioonidega sidumine määratakse URL-is versiooninumbrite määramisega, näiteks „https://unpkg.com/[meiliga kaitstud]/dist/liltest.js";
  • Struktuur sisaldab integreeritud sõltuvuskontrollisüsteemi (käsk "deno info") ja koodi vormindamise utiliiti (deno fmt).
  • Rakenduste arendajatele pakutud standardmoodulite komplekt, mis on läbinud täiendava auditi ja ühilduvustesti;
  • Kõik rakenduse skriptid saab ühendada üheks JavaScripti failiks.

Erinevused Node.js-st:

  • Deno ei kasuta npm paketihaldurit
    ja ei ole seotud hoidlatega, moodulid on adresseeritud URL-i või failitee kaudu ning mooduleid saab paigutada mis tahes veebisaidile;

  • Deno ei kasuta "package.json" moodulite määratlemiseks;
  • API erinevus, kõik Deno asünkroonsed toimingud annavad lubaduse;
  • Deno nõuab failide, võrgu- ja keskkonnamuutujate jaoks kõigi vajalike õiguste selgesõnalist määratlemist;
  • Kõik vead, mida töötlejatega ei pakuta, viivad rakenduse lõpetamiseni;
  • Deno kasutab ECMAScripti moodulisüsteemi ja ei toeta nõudmist ().

Allikas: opennet.ru

Lisa kommentaar