Byl vydán JavaScriptový rámec Deno 1.16, určený pro samostatné provádění (bez použití prohlížeče) aplikací napsaných v jazycích JavaScript a TypeScript. Projekt je vyvíjen autorem Node.js Ryanem Dahlem. Kód rámce je napsán v programovacím jazyce Rust a je distribuován pod licencí MIT. Hotové sestavení je připraveno pro Linux, Windows a macOS.
Projekt je podobný platformě Node.js a také využívá JavaScriptový engine V8, nicméně podle autora Node.js napravuje některé architektonické chyby svého předchůdce a odlišuje se následujícími prvky:
- Použití Rust jako hlavního jazyka, což podle vývojářů snižuje riziko vzniku zranitelností spojených s nízkoúrovňovým zacházením s pamětí (přetečení bufferu, use-after-free atd.);
- Deno nepoužívá správce balíčků npm a package.json, nabízející uživateli instalaci modulů pomocí URL nebo cesty k modulu pro instalaci. Přesto projekt nabízí několik utilit pro usnadnění práce s externími moduly;
- Aplikace se spouštějí izolovaně v pískovištích a nemají přístup k síti, proměnným prostředí a souborovému systému bez explicitně udělených oprávnění;
- Architektura navrhuje možnost vytváření univerzálních webových aplikací, které mohou pracovat jak v systému Deno, tak v běžném prohlížeči;
- Použití „ES Modules“ a absence podpory require();
- Jakékoli nezpracované chyby programátora ve webové aplikaci vedou k jejímu nucenému ukončení;
- Podpora TypeScript kromě JavaScriptu;
- Celková velikost připravené platformy je 84 MB (v zip archivu — 31 MB) ve formě jednoho spustitelného souboru;
- Součástí je systém pro řešení závislostí a formátování kódu;
- Zaměřit se na vysoce výkonné aplikace.
Dino zpracovává požadavky v neblokujícím režimu s využitím platformy Tokio, určené pro vytváření vysoce výkonných aplikací na základě událostmi řízené (event-driven) architektury. Zajímavé je, že vestavěný HTTP server Deno je implementován na TypeScriptu na základě nativních TCP socketů, což pozitivně ovlivňuje výkon síťových operací.
Ve nové verzi jsou uvedeny:
- Optimalizace výkonu (4 opravy);
- Oprava více než 15 chyb, zejména nyní klient TLS podporuje HTTP/2, podpora pro kódování zahrnuje další kódovací značky atd.;
- Více než dvě desítky novinek, mezi něž patří stabilizace dříve testovaných subsystémů Deno.startTls a Deno.TestDefinition.permissions, aktualizace JavaScriptového enginu V8 na verzi 9.7 a podpora transformací React 17 JSX.
Zdroj: opennet.ru
