JavaScript platvorm Deno 1.16 on vÀlja antud, mis on mÔeldud isoleeritud rakenduste tÀitmiseks (ilma brauserit kasutamata), mis on kirjutatud JavaScripti ja TypeScripti keeltesse. Projekti arendab Node.js autor Ryan Dahl. Platvormi kood on kirjutatud Rust programmeerimiskeeles ja jagatakse MIT litsentsi alusel. Valmis versioonid on ette valmistatud Linuxi, Windows ja macOS jaoks.
Projekt sarnaneb Node.js platvormiga ja kasutab samuti JavaScripti V8 mootorit, kuid Node.js autori sĂ”nul parandab see mitmeid eelkĂ€ija arhitektuurilisi vigu ja erineb sellest jĂ€rgmiste nĂŒansside poolest:
- Peamise keelena Rusti kasutamine, mis arendajate arvates vÀhendab madalal tasemel mÀlu haldamisega seotud haavatavuste riski (bufferoverflow, use-after-free jne);
- Deno ei kasuta pakihaldurit npm ja package.json, pakkudes kasutajale moodulite installimist, nÀidates URL-i vÔi teed moodulile. Sellegipoolest pakub projekt mitmeid utiliite kolmandate osapoolte moodulite kasutamise lihtsustamiseks;
- Rakendused kĂ€ivitatakse isoleeritult liivakastides ja neil ei ole juurdepÀÀsu vĂ”rku, keskkonnamuutujatele ja faili sĂŒsteemile ilma selgesĂ”naliste Ă”igusteta;
- Arhitektuur vĂ”imaldab luua universaalseid veebirakendusi, mis suudavad toimida nii Deno sĂŒsteemis kui ka tavalises brauseris;
- Kasutamine «ES Moodulite» ja puudub tugi require();
- Markeerimata arendaja vead veebirakenduses toovad kaasa nende sundlÔpetamise;
- Tugiteenused TypeScripti jaoks lisaks JavaScriptile;
- Valmistoodangu platvormi tĂ€issuurus on 84 MB (zip-arhivis 31 MB) ĂŒhes tĂ€idesaatvas failis;
- Komplektis on kaasas sĂ”ltuvuste lahendamise ja koodi vormindamise sĂŒsteem;
- Orienteeritud kÔrge jÔudlusega rakendustele.
Deno töötleb pĂ€ringuid mitteblokeerivas reĆŸiimis, kasutades Tokio platvormi, mis on mĂ”eldud kĂ”rge jĂ”udlusega rakenduste loomiseks sĂŒndmustel pĂ”hinevas arhitektuuris. Samuti on huvitav, et Deno sisseehitatud HTTP-server on realiseeritud TypeScriptis kohalike TCP-sokettide peal, mis mĂ”jutab positiivselt vĂ”rguoperatsioonide jĂ”udlust.
Uues versioonis on mÀrgata:
- JÔudluse optimeerimine (4 plaastrit);
- Ăle 15 vea parandamine, sealhulgas TLS- kliendi tugi HTTP/2-le, kodeerimissĂŒsteem toetab tĂ€iendavaid kodeerimissilte jne;
- Rohkem kui kaks tosinat uuendust, mille seast vÔib esile tÔsta Deno.startTls ja Deno.TestDefinition.permissions varasemate testimise aluste stabiliseerimise, JavaScripti mootori V8 vÀrskendamise versioonile 9.7 ning React 17 JSX transformatsioonide toe.
Allikas: opennet.ru
