projekti väljaanne , pakkudes Node.js sarnast platvormi iseseisvaks rakenduste käitamiseks JavaScripti ja TypeScripti keeles, mida saab kasutada rakenduste käitamiseks ilma brauseri seotuse vajaduseta, näiteks serveripoolsete töötlejate loomiseks. Deno kasutab JavaScripti mootori , mida rakendatakse ka Node.js-s ja Chromiumi põhistel brauseritel. Projekti koodi jagab MIT litsents. Projekti arendab Ryan Dahl (), JavaScripti platvormi Node.js looja.
Üks peamisi eesmärke JavaScripti uue käitusaja loomisel on pakkuda turvalisemat keskkonda. Turvalisuse tagamiseks on V8 mootori ümber kirjutatud Rusti keeles, mis aitab vältida paljusid haavatavusi, mis tulenevad madala taseme mäluga töötamisest, nagu näiteks mäluruumi juurde pääsemine pärast selle vabastamist, null-näitajate dereferseerimine ja puutest sõltuvate mälupiiride ületamine. Taotluste töötlemiseks kasutatakse mitteblokeerivat platvormi , mis on samuti kirjutatud Rust keeles. Tokio võimaldab luua kõrge jõudlusega sündmustepõhiseid rakendusi, mis toetavad multitegumtöötlust ja asynchronous võrgupäringute töötlemist.
Peamised Deno:
- Turvakesksus vaikehäälestuses. Failide juurde pääs, võrguvõimalused ja ligipääs keskkonnamuutujatele on vaikimisi blokeeritud ja vajavad selget lubamist;
- Sisseehitatud TüüpScripti keele tugi lisaks JavaScriptile;
- Käivitusaja keskkond on saadaval ühes iseseisvas täitmisfailis („deno“). Rakenduste käitamiseks Deno abil piisab, kui oma platvormil ainult üks täidetav fail, mille suurus on umbes 10 MB, ilma välistest sõltuvustest ja ei vaja erilisi süsteemi installimist;
- Programmi käitamisel ja moodulite laadimisel saab kasutada URL-aadressimist. Näiteks, käivitamiseks programmi welcome.js võib kasutada käsku „deno https://deno.land/std/examples/welcome.js“. Kood välistelt allikatelt laaditakse ja salvestatakse lokaalses süsteemis, kuid kunagi ei uuendata automaatselt (uuendamiseks peab rakendust selgelt käivitama lipuga „—reload“).
- Efektiivne HTTP-võrgupäringute töötlemine, platvorm on loodud kõrge jõudlusega võrgurakenduste loomiseks.
- Võimalus luua universaalseid veebi rakendusi, mis saavad töötada nii Deno-s kui ka tavapärases veebi brauseris.
- Kogu rakenduse skriptid saab ühendada üheks JavaScripti failiks.
- Komplekti kuulub sõltuvuste vaatamise süsteem (käsk «deno info») ja koodi vormindamise utiliit (deno fmt).
- Rakenduste arendajatele standardsete moodulite komplekt, mis on läbinud täiendava auditi ja ühilduvuse kontrolli;
- Erinevused Node.js-st:
Deno ei kasuta paketihaldurit npm
- ja see ei ole seotud hoidlate, samuti toimub moodulite aadressimine URL-i või failitee kaudu ning neid mooduleid saab majutada mis tahes veebisaidil;
Deno-s ei kasutata „package.json“-i moodulite määratlemiseks; - API erinevused, kõik asünkroonsed tegevused 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, millele ei ole määratud käsitlejat, viivad rakenduse täitmise lõpetamiseni;
- Deno-s rakendatakse ECMAScripti moodulisüsteemi ja ei toetata require();
- Deno kasutab ECMAScripti moodulisüsteemi ja require() ei ole toetatud.
Allikas: opennet.ru
