Nedávno bola zverejnená správa o vydaní novej verzie frameworku Deno 1.28, ktorý umožňuje spúšťanie samostatných aplikácií JavaScript a TypeScript, ktoré možno použiť na vytvorenie radičov, ktoré bežia na serveri.
Deno bol vytvorený s cieľom poskytnúť používateľom bezpečnejšie prostredie a eliminovať mylné predstavy v architektúre Node.js. Na zlepšenie bezpečnosti je väzba okolo motora V8 napísaná v jazyku Rust, čo zabraňuje mnohým zraniteľnostiam, ktoré vznikajú v dôsledku manipulácie s pamäťou na nízkej úrovni.
Na spracovanie požiadaviek v neblokovanom režime sa používa rámec Tokio, tiež napísaný v jazyku Rust. Tokio vám umožňuje vytvárať vysokovýkonné aplikácie založené na architektúre riadenej udalosťami, podporujúce multithreading a asynchrónne spracovanie sieťových požiadaviek.
Niektoré z funkcií Hlavné z nich sú tieto:
- Zabudovaná podpora jazyka TypeScript okrem JavaScriptu. Na kontrolu typov a generovanie JavaScriptu sa používa bežný kompilátor TypeScript, čo vedie k poklesu výkonu v porovnaní s analýzou JavaScriptu vo V8.
- Runtime prichádza vo forme jedného samostatného spustiteľného súboru („deno“). Na spustenie aplikácií pomocou Deno si jednoducho stiahnete spustiteľný súbor pre vašu platformu s veľkosťou približne 30 MB, ktorý nemá žiadne externé závislosti a nevyžaduje žiadnu špeciálnu inštaláciu do vášho systému.
- Efektívne aplikačné spracovanie sieťových požiadaviek cez HTTP, platforma je navrhnutá na vytváranie vysokovýkonných sieťových aplikácií
- Možnosť vytvárať univerzálne webové aplikácie, ktoré môžu bežať v Deno aj v bežnom webovom prehliadači
- Prítomnosť štandardnej sady modulov, ktorých použitie nevyžaduje prepojenie s externými závislosťami.
- Moduly zo štandardnej kolekcie boli dodatočne auditované a testované na kompatibilitu
- Balík obsahuje vstavaný systém kontroly závislostí (príkaz "deno info") a nástroj na formátovanie kódu (deno fmt).
- Všetky aplikačné skripty je možné spojiť do jedného súboru JavaScript.
Hlavné správy Deno 1.28
Kľúčovou zmenou v novej verzii je stabilizácia kompatibility s balíkmi umiestnenými v úložisku NPM, čo umožňuje spoločnosti Deno používať viac ako 1,3 milióna modulov vytvorený pre platformu Node.js. Napríklad aplikácie založené na Deno teraz môžu používať moduly trvalého prístupu k údajom, ako sú Prisma, Mongoose a MySQL, ako aj front-end rámce ako React a Vue.
Niektoré moduly NPM sú stále nekompatibilné s Deno, napríklad kvôli väzbám na špecifické prostredia Node.js, ako je súbor package.json. Pri moduloch NPM tiež nie je možné použiť príkaz „deno compilovať“. Budúce vydania sú plánované na odstránenie týchto nekompatibilít a obmedzení.
Modulový systém Deno starý ECMAScript a model modulu Web API zostávajú rovnakéa na import modulov NPM sa používa známa schéma načítania podľa adresy URL spoločnosti Deno.
Používanie balíkov NPM v Deno je oveľa jednoduchšie ako v Node.js, pretože nie je potrebné predinštalovať moduly (moduly sa inštalujú pri prvom spustení aplikácie), súbor package.json sa nepoužíva a adresár node_modules sa nepoužíva, sa štandardne používa (moduly sa ukladajú do medzipamäte v zdieľanom adresári, ale je možné vrátiť predchádzajúce správanie pomocou voľby "--node-modules-dir").
aplikácie založené na NPM si zachováva schopnosť používať mechanizmy kontroly prístupu, Deno izolácia a aktivácia pre pokročilé funkcie, ktoré ovplyvňujú bezpečnosť. Ak chcete čeliť útokom prostredníctvom pochybných závislostí, Deno štandardne blokuje všetky pokusy o prístup do systému zo závislostí a zobrazí varovanie o zistených problémoch. Napríklad, keď sa modul pokúsi zapísať do /usr/bin/, zobrazí sa výzva na potvrdenie tejto operácie:
Vylepšenia nesúvisiace s NPM v novej verzii vrátane modernizácie motora V8 pre verziu 10.9, automatická detekcia súborov so zámkami, stabilizácia Deno.bench(), Deno.gid(), Deno.networkInterfaces(), Deno.systemMemoryInfo() a Deno API. .uid(), ktorý pridáva nové nestabilné API Deno.Command() na vykonávanie príkazov (univerzálna náhrada za Deno.spawn, Deno.spawnSync a Deno.spawnChild).
Nakoniec to stojí za zmienku Podobne ako Node.js, aj Deno používa V8 JavaScript engine., ktorý sa používa aj v prehliadačoch založených na prehliadači Chromium. Deno zároveň nie je fork Node.js, ale nový projekt postavený od nuly. Kód projektu je distribuovaný pod licenciou MIT a existujú hotové zostavy pre Linux, Windows a macOS.
Ak ste záujem dozvedieť sa o tom viac, môžete sa poradiť nasledujúci odkaz.