Nedávno byla zveřejněna zpráva o vydání nové verze frameworku Deno 1.28, který umožňuje spouštění samostatných aplikací JavaScript a TypeScript, které lze použít k vytvoření řadičů běžících na serveru.
Deno byl vytvořen, aby uživatelům poskytoval bezpečnější prostředí a eliminovat mylné představy v architektuře Node.js. Pro zlepšení zabezpečení je vazba kolem enginu V8 napsána v jazyce Rust, což zabraňuje mnoha zranitelnostem, které vznikají kvůli práci s pamětí na nízké úrovni.
Pro zpracování požadavků v neblokovacím režimu se používá framework Tokio, také napsaný v Rustu. Tokio vám umožňuje vytvářet vysoce výkonné aplikace založené na architektuře řízené událostmi, která podporuje multithreading a zpracovává síťové požadavky asynchronně.
Některé z funkcí Hlavní z nich jsou následující:
- Vestavěná podpora jazyka TypeScript kromě JavaScriptu. Ke kontrole typů a generování JavaScriptu se používá běžný kompilátor TypeScript, což vede k poklesu výkonu ve srovnání s analýzou JavaScriptu ve V8.
- Runtime je k dispozici ve formě jednoho samostatného spustitelného souboru („deno“). Pro spouštění aplikací pomocí Deno si jednoduše stáhnete spustitelný soubor pro vaši platformu o velikosti asi 30 MB, který nemá žádné externí závislosti a nevyžaduje žádnou speciální instalaci do vašeho systému.
- Efektivní aplikační 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ářet univerzální webové aplikace, které lze spustit jak v Deno, tak v běžném webovém prohlížeči
- Přítomnost standardní sady modulů, jejichž použití nevyžaduje propojení s externími závislostmi.
- Moduly ze standardní kolekce byly dodatečně auditovány a testovány na kompatibilitu
- Balíček obsahuje vestavěný systém kontroly závislostí (příkaz "deno info") a nástroj pro formátování kódu (deno fmt).
- Všechny aplikační skripty lze sloučit do jednoho souboru JavaScript.
Hlavní novinky Deno 1.28
Klíčovou změnou v nové verzi je stabilizace kompatibility s balíčky hostovanými v úložišti NPM, co umožňuje společnosti Deno používat více než 1,3 milionu modulů vytvořené pro platformu Node.js. Například aplikace založené na Deno nyní mohou používat moduly pro trvalý přístup k datům, jako jsou Prisma, Mongoose a MySQL, a také front-endové rámce jako React a Vue.
Některé moduly NPM jsou stále nekompatibilní s Deno, například kvůli vazbám na konkrétní prostředí Node.js, jako je soubor package.json. U modulů NPM také není možné použít příkaz „deno kompilovat“. Budoucí vydání jsou plánována k vyřešení těchto nekompatibilit a omezení.
Modulový systém Deno starší ECMAScript a model modulu Web API zůstávají stejnéa k importu modulů NPM se používá známé schéma načítání založené na adresách URL společnosti Deno.
Používání balíčků NPM v Deno je mnohem jednodušší než v Node.js, protože není potřeba předinstalovat moduly (moduly se instalují při prvním spuštění aplikace), soubor package.json se nepoužívá a adresář node_modules se nepoužívá, se standardně používá (moduly se ukládají do mezipaměti ve sdíleném adresáři, ale předchozí chování je možné vrátit volbou "--node-modules-dir").
aplikace založené na NPM si zachovává schopnost používat mechanismy řízení přístupu, Deno izolace a aktivace pro pokročilé funkce, které ovlivňují bezpečnost. Chcete-li čelit útokům prostřednictvím pochybných závislostí, Deno ve výchozím nastavení blokuje všechny pokusy o přístup do systému ze závislostí a zobrazí varování o zjištěných problémech. Například, když se modul pokusí zapsat do /usr/bin/, zobrazí se výzva k potvrzení této operace:
Vylepšení nesouvisející s NPM v nové verzi včetně modernizace motoru V8 pro verzi 10.9, automatická detekce souborů se zámky, stabilizace Deno.bench(), Deno.gid(), Deno.networkInterfaces(), Deno.systemMemoryInfo() a Deno API. .uid(), která přidává nové nestabilní API Deno.Command() pro provádění příkazů (univerzální náhrada za Deno.spawn, Deno.spawnSync a Deno.spawnChild).
Nakonec stojí za zmínku Stejně jako Node.js, Deno používá V8 JavaScript engine., který se také používá v prohlížečích založených na Chromiu. Deno přitom není fork Node.js, ale nový projekt postavený od nuly. Kód projektu je distribuován pod licencí MIT a existují hotové sestavení pro Linux, Windows a macOS.
Pokud zájem se o tom dozvědět více, můžete se poradit následující odkaz.