Izšla je JavaScript platforma Deno 1.16, namenjena ločenemu izvajanju (brez uporabe brskalnika) aplikacij, napisanih v jezikih JavaScript in TypeScript. Projekt se razvija pod vodstvom avtorja Node.js Ryana Dahla. Koda platforme je napisana v programskem jeziku Rust in je distribuirana pod MIT licenco. Pripravljene gradnje so na voljo za Linux, Windows in macOS.
Projekt je podoben platformi Node.js in uporablja JavaScript motor V8, vendar po besedah avtorja Node.js odpravlja nekatere arhitekturne napake predhodnika in se razlikuje po naslednjih značilnostih:
- Uporaba programa Rust kot glavnega jezika, kar po mnenju razvijalcev zmanjšuje tveganje za pojav ranljivosti, povezanih z nizko raven dela z spominom (prelivanje vgrajenega pomnilnika, use-after-free itd.);
- Deno ne uporablja upravitelja paketov npm in package.json, temveč uporabniku ponuja namestitev modulov s pomočjo navedbe URL ali poti do modula za namestitev. Kljub temu projekt ponuja več orodij za poenostavitev dela s tretjimi stranskimi moduli;
- Aplikacije se izvajajo ločeno v peskovniku in nimajo dostopa do omrežja, spremenljivk okolja in datotečnega sistema, brez izrecno dodeljenih pooblastil;
- V arhitekturi je predvidena možnost ustvarjanja univerzalnih spletnih aplikacij, ki lahko delujejo tako v sistemu Deno kot v običajnem brskalniku;
- Uporaba 'ES Modules' in odsotnost podpore za require();
- Vsaka neobvladana napaka programerja v spletnem naslovu povzroči njihovo prisilno zaključitev;
- Podpora za TypeScript poleg JavaScripta;
- Polna velikost platforme, pripravljene za uporabo, znaša 84 MB (v zip arhivu — 31 MB) v obliki ene izvršne datoteke;
- V kompletu je na voljo sistem za upravljanje odvisnosti in formatiranje kode;
- Usmerjanje k visokozmogljivim aplikacijam.
Dino obdeluje zahteve v nebločni način s pomočjo platforme Tokio, namenjene ustvarjanju visokozmogljivih aplikacij na osnovi dogodkov. Prav tako je zanimivo, da je vgrajen HTTP strežnik Deno implementiran v TypeScriptu nad naravnimi TCP-socketi, kar pozitivno vpliva na zmogljivost omrežnih operacij.
V novi različici so navedene:
- Optimizacija zmogljivosti (4 popravki);
- Popravljanje več kot 15 napak, med katerimi zdaj TLS-odjemalec podpira HTTP/2, subsistem kodiranja pa podpira dodatne oznake kodiranja itd.;
- Več kot dva ducata novosti, med katerimi je mogoče izpostaviti stabilizacijo prej testiranih podsistemov Deno.startTls in Deno.TestDefinition.permissions, nadgradnjo JS-motorja V8 na različico 9.7 in podporo za pretvorbe React 17 JSX.
Izvor: opennet.ru
