Доступна платформа Deno 2.0, развиваемая автором Node.js

Vyšla verzia platformy Deno 2.0, určená pre izolované vykonávanie serverových aplikácií v jazykoch JavaScript a TypeScript s používaním enginu V8, ktorý sa využíva v prehliadačoch na báze Chromium. Projekt Deno rozvíja Ryan Dahl, zakladateľ Node.js, s cieľom poskytnúť bezpečnejšie prostredie a odstrániť koncepčné chyby, ktorých sa dopustila architektúra Node.js. Pre zvýšenie bezpečnosti je obal okolo enginu V8 napísaný v jazyku Rust, a na spracovanie požiadaviek v neblokujúcom režime sa používa platforma Tokio. Kód projektu je distribúte pod licenciou MIT. Súčasti sú pripravené pre Linux, Windows a macOS.

Pri príprave novej vetvy sa hlavná pozornosť venovala kompatibilite so starou infraštruktúrou JavaScriptu a rozšíreniu spektra podporovaných JavaScriptových projektov bez ohrozenia zabezpečenia. Medzi zmenami:

  • Bola implementovaná spätná kompatibilita s Node.js a npm, ktorá umožňuje spúšťať nemodifikované aplikácie vytvorené pre Node.js. Podpora Node.js tiež umožňuje postupne prenášať existujúce projekty z Node.js na Deno alebo pripojiť závislosti z NPM k Deno projektom prostredníctvom špecifikátora „npm:“ pri importe balíkov v deno.json.
  • Bola pridaná zabudovaná podpora súboru package.json a adresára s modulmi node_modules, používanými v Node.js.
  • Bola zabezpečená podpora súkromných NPM repozitárov, definovaných prostredníctvom súborov „.npmrc.“
  • Bola pridaná podpora populárnych JavaScript frameworkov, ako sú Next.js, Astro, Remix, Angular, SvelteKit a QwikCity.
  • Bola pridaná podpora pracovných priestorov npm (workspace) a mono-repozitárov (monorepo) s oddeleným spracovaním závislostí.
  • Boli pridané nové príkazy na správu balíkov: „deno install“ na inštaláciu závislostí, „deno add“ na pridanie balíkov do package.json alebo deno.json, „deno remove“ na odstránenie balíkov. Zaznamenáva sa, že „deno install“ funguje približne o 15% rýchlejšie ako npm pri absencii balíkov v cache a o 90% rýchlejšie pri prítomnosti balíka v cache (podporuje sa ako node_modules, tak aj vlastná globálna cache).
  • Bola stabilizovaná štandardná knižnica.
  • Bol zabezpečený dlhý cyklus podpory (LTS).
  • Bol predstavený JSR — repozitár s JavaScript a TypeScript knižnicami, ktoré môžu byť použité v rôznych JavaScript Runtime.
  • V tímovej príkaze „deno fmt“ sa objavila možnosť formátovania obsahu vo formátoch HTML, CSS a YAML.
  • Do tímu „deno lint“ bola pridaná podpora špecifických pravidiel a opráv pre Node.js.
  • V príkaze „deno test“ bola implementovaná možnosť spúšťania testov vytvorených pomocou node:test.
  • V príkaze „deno task“ bola pridaná podpora spúšťania skriptov cez package.json.
  • V príkaze „deno compile“ pribudla možnosť overenia kódu digitálnym podpisom.
  • V príkaze „deno serve“ bola implementovaná paralelizácia operácií HTTP serverov s využitím viacerých jadier CPU.
  • V príkaze „deno coverage“ bola pridaná podpora ukladania správ v formáte HTML.
  • Bol vykonaný výkonový optimalizácia.
    Доступна платформа Deno 2.0, развиваемая автором Node.js

Hlavné funkcie Deno:

  • Orientácia na bezpečnosť v predvolenej konfigurácii. Prístup k súborom, sieťovým funkciám a k premenným prostredia je predvolene zablokovaný a vyžaduje explicitné povolenie. Aplikácie sa predvolene spúšťajú v izolovaných sandboxových prostrediach a nemôžu získať prístup k systémovým funkciám bez poskytnutia explicitných oprávnení;
  • Integrovaná podpora jazyka TypeScript okrem JavaScriptu. Na kontrolu typov a generáciu JavaScriptu je zapojený interný TypeScript kompilátor, čo vedie k poklesu výkonu v porovnaní s analýzou JavaScriptu vo V8;
  • Runtime je dodávané vo forme jedného samostatného spustiteľného súboru („deno“). Na spustenie aplikácií pomocou Deno stačí stiahnuť pre svoju platformu jeden spustiteľný súbor s veľkosťou okolo 40 MB, ktorý nemá žiadne externé závislosti a nevyžaduje špeciálnu inštaláciu systému. Deno však nie je monolitickou aplikáciou, ale predstavuje kolekciu crate balíkov na Ruste (deno_core, rusty_v8), ktoré je možné používať samostatne;
  • Pri spúšťaní programu, ako aj na sťahovanie modulov je možné použiť adresovanie cez URL. Napríklad pre spustenie programu welcome.js môžete použiť príkaz „deno https://deno.land/std/examples/welcome.js“. Kód z externých zdrojov sa sťahuje a uklada na lokálnom systéme, ale nikdy sa automaticky neaktualizuje (na aktualizáciu je potrebné explicitne spustiť aplikáciu s prepínačom „—reload“);
  • Efektívne spracovanie sieťových požiadaviek cez HTTP, platforma je určená na vytváranie vysokovýkonných sieťových aplikácií;
  • Možnosť vytvárania univerzálnych webových aplikácií, ktoré môžu fungovať ako v Deno, tak aj v bežnom webovom prehliadači;
  • Prítomnosť štandardného súboru modulov, ktorých používanie si nevyžaduje závislosť od vonkajších zdrojov. Moduly zo štandardnej kolekcie prešli dodatočným auditom a kontrolou kompatibility;
  • Okrem runtime platforma Deno tiež funguje ako správca balíkov a umožňuje v rámci kódu pristupovať k modulom cez URL. Napríklad, na načítanie modulu môžete v kóde uviesť: „import * as log from 'https://deno.land/std/log/mod.ts'. Súbory načítané z externých serverov cez URL sú cachované. Závislosť od verzií modulov sa určuje cez uvedenie čísiel verzií v URL, napríklad: 'https://unpkg.com/liltest@0.0.5/dist/liltest.js';
  • Orientácia na používanie webových štandardov, podpora Promise, fetch a modulov ECMAScript.
  • Kompatibilita s balíkmi umiestnenými v repozitári NPM a vytvorenými pre platformu Node.js.
  • Do systému je integrovaný systém inšpekcie závislostí (príkaz 'deno info') a nástroj na formátovanie kódu (deno fmt);
  • Všetky skripty aplikácie môžu byť skombinované do jedného JavaScript súboru.

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster