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

Byla vydána verze platformy Deno 2.0, určená pro izolované spuštění serverových aplikací v jazycích JavaScript a TypeScript s využitím enginu V8, aplikovaného v prohlížečích založených na Chromium. Projekt Deno vede Ryan Dahl, tvůrce Node.js, s cílem poskytnout bezpečnější prostředí a odstranit koncepční chyby, které byly učiněny v architektuře Node.js. Pro zvýšení bezpečnosti je obal kolem enginu V8 napsán v jazyce Rust a pro zpracování požadavků v neblokujícím režimu se používá platforma Tokio. Kód projektu je šířen pod licencí MIT. Sestavy byly připraveny pro Linux, Windows a macOS.

Při přípravě nové větve byla kladena hlavní důraz na kompatibilitu se starou infrastrukturou JavaScriptu a na rozšíření spektra podporovaných JavaScriptových projektů bez ohrožení bezpečnosti. Mezi změnami:

  • Byla zavedena zpětná kompatibilita s Node.js a npm, což umožňuje spouštět nemodifikované aplikace vytvořené pro Node.js. Podpora Node.js také poskytuje možnost postupného převodu stávajících projektů z Node.js na použití Deno nebo připojení závislostí z NPM k Deno projektům pomocí specifikátoru „npm:“ při importu balíčků do deno.json.
  • Byla přidána vestavěná podpora pro soubor package.json a adresář s moduly node_modules, používanými v Node.js.
  • Byla zajištěna podpora privátních NPM repozitářů, definovaných pomocí souborů „.npmrc“.
  • Byla přidána podpora populárních JavaScriptových frameworků, jako jsou Next.js, Astro, Remix, Angular, SvelteKit a QwikCity.
  • Byla přidána podpora pracovních prostorů npm (workspace) a mono-repozitářů (monorepo) s odděleným zpracováním závislostí.
  • Byly přidány nové příkazy pro správu balíčků: „deno install“ pro instalaci závislostí, „deno add“ pro přidání balíčků do package.json nebo deno.json, „deno remove“ pro odstranění balíčků. Je poznamenáno, že „deno install“ funguje zhruba 15krát rychleji než npm při absenci balíčků v cache a 90% rychleji při přítomnosti balíčku v cache (podporovány jak node_modules, tak vlastní globální cache).
  • Byla stabilizována standardní knihovna.
  • Byl zajištěn dlouhý cyklus podpory (LTS).
  • Byl představen JSR — repozitář s JavaScriptovými a TypeScriptovými knihovnami, které lze používat v různých JavaScript Runtime.
  • V příkazu „deno fmt“ se objevila možnost formátování obsahu ve formátech HTML, CSS a YAML.
  • Do týmu „deno lint“ byla přidána podpora specifických pravidel a oprav pro Node.js.
  • V týmu „deno test“ byla implementována možnost spouštět testy vytvořené pomocí node:test.
  • V týmu „deno task“ byla implementována podpora pro spouštění skriptů prostřednictvím package.json.
  • V týmu „deno compile“ byla přidána možnost podepisování kódu digitálním podpisem.
  • V týmu „deno serve“ byla realizována paralelizace operací HTTP serverů s využitím několika CPU jader.
  • V týmu „deno coverage“ byla podpora pro ukládání zpráv v HTML formátu.
  • Provedena optimalizace výkonu.
    Доступна платформа Deno 2.0, развиваемая автором Node.js

Hlavní vlastnosti Deno:

  • Zaměření na bezpečnost v konfiguraci podle výchozího nastavení. Přístupy k souborům, síťové schopnosti a přístup k proměnným prostředí jsou ve výchozím nastavení blokovány a vyžadují explicitní povolení. Aplikace se ve výchozím nastavení spouštějí v izolovaných sandboxových prostředích a nemohou přistupovat k systémovým schopnostem bez udělení jasných oprávnění;
  • Vestavěná podpora jazyka TypeScript vedle JavaScriptu. Pro ověřování typů a generování JavaScriptu je použit nativní TypeScript kompilátor, což vede k poklesu výkonu ve srovnání s analýzou JavaScriptu v V8;
  • Runtime je dodáván ve formě jediného samostatného spustitelného souboru („deno“). Pro spuštění aplikací pomocí Deno stačí stáhnout jeden spustitelný soubor pro svou platformu o velikosti přibližně 40 MB, který nemá externí závislosti a nevyžaduje žádnou speciální instalaci v systému. Deno není monolitní aplikace, ale představuje sbírku crate balíčků na Rustu (deno_core, rusty_v8), které lze používat samostatně;
  • Při spuštění programu a také pro načítání modulů lze použít adresaci přes URL. Například pro spuštění programu welcome.js lze použít příkaz „deno https://deno.land/std/examples/welcome.js“. Kód z externích zdrojů se načítá a ukládá do mezipaměti na místní systém, ale nikdy se automaticky neaktualizuje (pro aktualizaci je nutné explicitně spustit aplikaci s přepínačem „—reload“);
  • Efektivní zpracování síťových požadavků přes HTTP, platforma je navržena pro vytváření vysoce výkonných síťových aplikací;
  • Možnost vytváření univerzálních webových aplikací, které mohou běžet jak v Deno, tak v běžném webovém prohlížeči;
  • Existence standardní sady modulů, jejichž používání nevyžaduje vazby na externí závislosti. Moduly ze standardní kolekce prošly dodatečným auditem a kontrolou kompatibility;
  • Kromě runtime platforma Deno také funguje jako správce balíčků a umožňuje uvnitř kódu odkazovat na moduly pomocí URL. Například pro načtení modulu lze v kódu uvést „import * as log from "https://deno.land/std/log/mod.ts". Soubor, který je načten z externích servery URL, je ukládán do cache. Vazby na verze modulů jsou určovány podle uvedení čísel verzí v URL, například „https://unpkg.com/liltest@0.0.5/dist/liltest.js“;
  • Orientace na použití webových standardů, podpora Promise, fetch a ECMAScript modulů.
  • Kompatibilita s balíčky umístěnými v repozitáři NPM a vytvořenými pro platformu Node.js.
  • Součástí je také systém pro inspekci závislostí (příkaz „deno info“) a nástroj pro formátování kódu (deno fmt);
  • Všechny skripty aplikace lze sloučit do jednoho JavaScript souboru.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster