Проект Deno развивает защищённую JavaScript-платформу, похожую на Node.js

Dostupné vydání projektu Deno 0.33, která nabízí platformu podobnou Node.js pro izolované spouštění aplikací napsaných v JavaScriptu a TypeScriptu, která může být použita pro běh aplikací bez závislosti na prohlížeči, například pro vytváření serverových zpracovatelů. Deno využívá JavaScriptový engine V8, který se rovněž používá v Node.js a prohlížečích na bázi projektu Chromium. Kód projektu distribuováno je licencován pod MIT. Projekt rozvíjí Ryan Dahl (Ryan Dahl), tvůrce JavaScriptové platformy Node.js.

Jedním z hlavních cílů vytvoření nového runtime pro JavaScript je poskytnout bezpečnější prostředí. Pro zvýšení bezpečnosti je obal kolem motoru V8 napsán v jazyce Rust, což umožňuje vyhnout se mnoha zranitelnostem, které vznikají kvůli nízkoúrovňové práci s pamětí, jako je přístup k paměti po jejím uvolnění, dereference nulových ukazatelů a přetečení bufferu. Pro zpracování dotazů v neblokujícím režimu se používá platforma v architektuře Node.js, a poskytnout uživatelům bezpečnější prostředí. Pro zvýšení bezpečnosti je obal kolem engine V8 napsán v jazyce Rust, který umožňuje vyhnout se mnoha zranitelnostem způsobeným nízkoúrovňovou prací s pamětí, jako je přístup do oblasti paměti po jejím uvolnění, dereferencování nullových ukazatelů a překročení mezí bufferu. Pro zpracování požadavků v neblokujícím režimu se používá platformaTokio

Hlavní vlastnosti , také napsaná v jazyce Rust. Tokio umožňuje vytváření vysoce výkonných aplikací založených na architektuře orientované na události (Event-driven), které podporují vícerozpracování a asynchronní zpracování síťových požadavků.

  • Orientace na bezpečnost ve výchozí konfiguraci. Přístupy k souborům, síťové možnosti a přístup k proměnným prostředí jsou ve výchozím nastavení blokovány a vyžadují explicitní povolení;
  • Vestavěná podpora jazyka TypeScript kromě JavaScriptu;
  • Runtime je dodáván ve formě jednoho samostatného spustitelného souboru („deno“). Pro spuštění aplikací pomocí Deno stačí stáhnout pro svoji platformu jeden spustitelný soubor o velikosti přibližně 10 MB, který nemá externí závislosti a nevyžaduje žádnou zvláštní instalaci do systému;
  • 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;
  • Kromě runtime platforma Deno také funguje jako správce balíčků a umožňuje v rámci kódu odkazovat na moduly pomocí URL. Například pro načtení modulu můžete v kódu uvést „import * as log from „https://deno.land/std/log/mod.ts“. Soubory načtené z externích serverů pomocí URL jsou ukládány do mezipaměti. Verze modulů jsou určovány uvedením čísel verzí v URL, například „https://unpkg.com/liltest@0.0.5/dist/liltest.js“;
  • Součástí je integrovaný systém inspekce závislostí (příkaz „deno info“) a nástroj pro formátování kódu (deno fmt).
  • Pro vývojáře aplikací byla navržena sada standardních modulů, které prošly dodatečným auditem a kontrolou kompatibility;
  • Všechny skripty aplikace mohou být spojeny do jednoho JavaScriptového souboru.

Rozdíly oproti Node.js:

  • Deno nepoužívá správce balíčků npm
    a není vázáno na repozitáře, adresace modulů se provádí prostřednictvím URL nebo dle souborové cesty, přičemž moduly mohou být umístěny na jakémkoli webu;
  • V Deno se nepoužívá „package.json“ pro určení modulů;
  • Rozdílné API, všechny asynchronní akce v Deno vracejí promise;
  • Deno vyžaduje explicitní určení všech potřebných oprávnění pro soubory, síť a proměnné prostředí;
  • Veškeré chyby, které nemají obsluhovače, vedou k ukončení běhu aplikace;
  • V Deno se používá systém modulů ECMAScript a není podporován require().

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