Проект Deno развивает защищённую JavaScript-платформу, похожую на Node.js

Saadaval projekti väljalaskmine Deno 0.33, mis pakub Node.js-iga sarnast platvormi isoleeritud JavaScripti ja TypeScripti rakenduste käitamiseks, mida saab kasutada rakenduste täitmiseks ilma brauseriga seotud sidemeteta, näiteks serveripoolsete protsessorite loomiseks. Denos kasutatakse JavaScripti mootorit V8, mida kasutatakse ka Node.js-is ja Chromium-projekti põhjal loodud brauserites. Projekti kood GNU Üldine Avaliku litsentsi alusel. on MIT litsentsi all. Projekti arendab Ryan Dahl (Ryan Dahl), JavaScripti platvormi Node.js looja.

Üks peamisi eesmärke uue JavaScripti runtime'i loomisel on pakkuda turvalisemat keskkonda. Turvalisuse suurendamiseks on V8 mootori ümber kirjutatud Rusti keeles, vältides paljusid madalamal tasandil mälu haldamisega seotud haavatavusi, näiteks mälupiirkonna juurde pääsemist pärast selle vabastamist, nullipunktide dereferentseerimist ja puhvriväärdeid. Päringute töötlemiseks mittesünkroonilises režiimis kasutatakse platvormi Tokio, samuti kirjutatud Rusti keeles. Tokio võimaldab luua kõrgtehnoloogilisi sündmuspõhiseid (Event-driven) rakendusi, mis toetavad mitme lõime ja asünkroonse võrgu päringute töötlemist.

Peamised omadused Deno:

  • Tavakasutuse turvakeskne seadistamine. Failidele juurdepääs, võrgufunktsioonid ja keskkonnamuutujatele juurdepääs on vaikimisi blokeeritud ja vajavad väljendatud lubamist;
  • Sisseehitatud TypeScripti tugi koos JavaScriptiga;
  • Käivituskeskkond tarnitakse ühes iseseisvas käivitatavas failis („deno“). Deno abil rakenduste käivitamiseks on vajalik alla laadida oma platvormile üks käivitatav fail, mille suurus on umbes 10 MB, ilma välistest sõltuvustest ja ega nõua mingit erilist süsteemi installimist;
  • 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;
  • Peale runtime'i täidab Deno platvorm ka pakihalduri rolli ning võimaldab koodis viidata moodulitele URL-ide kaudu. Näiteks, et laadida moodulit, võib koodis näidata «import * as log from 'https://deno.land/std/log/mod.ts'». Väliselt serverilt URL-ide kaudu laaditud failid vahemälestatakse. Moodulite versiooni sidumine määratakse URL-ides versiooninumbrite kaudu, näiteks «https://unpkg.com/liltest@0.0.5/dist/liltest.js»;
  • Kompleksi on integreeritud sõltuvuste kontrollimise süsteem (käsk «deno info») ja koodi vormindamise tööriist (deno fmt).
  • Rakenduste arendajatele pakutud standardsete moodulite kogum, mis on läbinud täiendava auditeerimise ja ühilduvuse kontrolli;
  • Kõik rakenduse skriptid saavad olla ühendatud üheks JavaScripti failiks.

Erinevused Node.js-st:

  • Deno ei kasuta pakihaldurit npm
    ja ei seondu hoidlate külge; moodulite aadressimine toimub URL-i või failitee kaudu, ja mooduleid saab paigutada igale veebisaidile;
  • Deno-s ei kasutata «package.json» moodulite määratlemiseks;
  • API erinevused, kõik asünkroonsed toimingud Deno-s tagastavad promise.
  • Deno nõuab, et kõik vajalikud õigused failide, võrgu ja keskkonnamuutujite jaoks oleksid selgelt määratletud;
  • Kõik vead, mis ei ole käsitletud, viivad rakenduse täitmise lõpetamiseni;
  • Deno kasutab ECMAScripti moodulisüsteemi ja ei toeta require().

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster