vydání projektu , která nabízí platformu podobnou Node.js pro spouštění samostatných aplikací v JavaScriptu a TypeScriptu, kterou lze použít ke spouštění aplikací bez vazby na prohlížeč, jako je vytváření obslužných programů, které běží na serveru. Deno používá JavaScript engine , který se používá také v Node.js a prohlížečích založených na projektu Chromium. Kód projektu pod licencí MIT. Projekt vyvíjí Ryan Dahl (), tvůrce platformy JavaScript Node.js.
Jedním z hlavních cílů vytvoření nového běhového prostředí pro JavaScript je poskytnout bezpečnější prostředí. Pro zlepšení zabezpečení je V8 engine napsán v Rustu, který se vyhýbá mnoha zranitelnostem, které vyplývají z nízkoúrovňové manipulace s pamětí, jako je after-free přístup, dereference nulového ukazatele a přetečení vyrovnávací paměti. Platforma se používá ke zpracování požadavků v neblokujícím režimu , také psaný v Rust. Tokio vám umožňuje vytvářet vysoce výkonné aplikace založené na architektuře řízené událostmi, podporující multi-threading a zpracování síťových požadavků v asynchronním režimu.
hlavní Deno:
- Výchozí konfigurace zaměřená na zabezpečení. Přístup k souborům, síťování a přístup k proměnným prostředí jsou ve výchozím nastavení zakázány a musí být explicitně povoleny;
- Vestavěná podpora pro jazyk TypeScript kromě JavaScriptu;
- Runtime přichází ve formě jediného samostatného spustitelného souboru („deno“). Pro spouštění aplikací pomocí Deno to stačí pro její platformu jeden spustitelný soubor o velikosti asi 10 MB, který nemá žádné externí závislosti a nevyžaduje žádnou speciální instalaci do systému;
- Při spouštění programu, stejně jako pro načítání modulů, můžete použít URL adresování. Například ke spuštění programu welcome.js můžete použít příkaz „deno https://deno.land/std/examples/welcome.js“. Kód z externích zdrojů se stahuje a ukládá do mezipaměti v místním systému, ale nikdy se automaticky neaktualizuje (aktualizace vyžaduje explicitní spuštění aplikace s příznakem „--reload“);
- Efektivní zpracování síťových požadavků přes HTTP v aplikacích, platforma je určena pro tvorbu vysoce výkonných síťových aplikací;
- Schopnost vytvářet univerzální webové aplikace, které lze spouštět jak v Deno, tak v běžném webovém prohlížeči;
- Kromě běhového prostředí funguje platforma Deno také jako správce balíčků a umožňuje přístup k modulům pomocí URL adresy v rámci kódu. Například pro načtení modulu můžete v kódu zadat „import * as log from “https://deno.land/std/log/mod.ts”. Soubory stažené z externích serverů prostřednictvím URL se ukládají do mezipaměti. Propojení s verzemi modulů je určeno zadáním čísel verzí uvnitř URL, například „https://unpkg.com/liltest@0.0.5/dist/liltest.js“;
- Struktura zahrnuje integrovaný systém kontroly závislostí (příkaz „deno info“) a nástroj pro formátování kódu (deno fmt).
- Pro vývojáře aplikací sada standardních modulů, které prošly dodatečným auditem a testováním kompatibility;
- Všechny aplikační skripty lze sloučit do jednoho souboru JavaScript.
Rozdíly od Node.js:
- Deno nepoužívá správce balíčků npm
a není vázán na úložiště, moduly jsou adresovány přes URL nebo cestou k souboru a samotné moduly lze umístit na jakoukoli webovou stránku; - Deno nepoužívá "package.json" k definování modulů;
- Rozdíl API, všechny asynchronní akce v Deno vrátí slib;
- Deno vyžaduje explicitní definici všech nezbytných oprávnění pro soubory, sítě a proměnné prostředí;
- Všechny chyby, které nejsou poskytnuty obslužným rutinám, vedou k ukončení aplikace;
- Deno používá modulový systém ECMAScript a nepodporuje require().
Zdroj: opennet.ru
