Projekt Deno vyvíja zabezpečenú platformu JavaScript podobnú Node.js

K dispozícii vydanie projektu Daj mi 0.33, ktorá ponúka platformu podobnú Node.js na spúšťanie samostatných aplikácií v jazyku JavaScript a TypeScript, ktoré možno použiť na spúšťanie aplikácií bez toho, aby boli viazané na prehliadač, ako je napríklad vytváranie obslužných programov, ktoré sa spúšťajú na serveri. Deno používa JavaScript engine V8, ktorý sa používa aj v Node.js a prehliadačoch založených na projekte Chromium. Kód projektu distribuovaný pod licenciou MIT. Projekt vyvíja Ryan Dahl (Ryan Dahl), tvorca platformy JavaScript Node.js.

Jedným z hlavných cieľov vytvorenia nového runtime pre JavaScript je poskytnúť bezpečnejšie prostredie. Aby sa zlepšila bezpečnosť, motor V8 je napísaný v jazyku Rust, ktorý zabraňuje mnohým zraniteľnostiam, ktoré vznikajú pri manipulácii s pamäťou na nízkej úrovni, ako je napríklad voľný prístup, dereferences nulového ukazovateľa a pretečenie vyrovnávacej pamäte. Platforma sa používa na spracovanie požiadaviek v neblokovanom režime Tokio, tiež napísaný v Rust. Tokio vám umožňuje vytvárať vysokovýkonné aplikácie založené na architektúre riadenej udalosťami, podporujúce multi-threading a spracovanie sieťových požiadaviek v asynchrónnom režime.

Hlavné rysy Deno:

  • Predvolená konfigurácia orientovaná na bezpečnosť. Prístup k súborom, vytváranie sietí a prístup k premenným prostredia sú predvolene zakázané a musia byť explicitne povolené;
  • Zabudovaná podpora pre jazyk TypeScript okrem JavaScriptu;
  • Runtime prichádza vo forme jedného samostatného spustiteľného súboru („deno“). Na spúšťanie aplikácií pomocou Deno to stačí Stiahnuť ▼ pre svoju platformu jeden spustiteľný súbor s veľkosťou asi 10 MB, ktorý nemá žiadne externé závislosti a nevyžaduje žiadnu špeciálnu inštaláciu do systému;
  • Pri spúšťaní programu, ako aj pri načítavaní modulov môžete použiť URL adresu. Napríklad na spustenie programu welcome.js môžete použiť príkaz „deno https://deno.land/std/examples/welcome.js“. Kód z externých zdrojov sa stiahne a uloží do vyrovnávacej pamäte v lokálnom systéme, ale nikdy sa automaticky neaktualizuje (aktualizácia vyžaduje explicitné spustenie aplikácie s príznakom „--reload“);
  • Efektívne spracovanie sieťových požiadaviek cez HTTP v aplikáciách, platforma je určená na vytváranie vysokovýkonných sieťových aplikácií;
  • Schopnosť vytvárať univerzálne webové aplikácie, ktoré je možné spúšťať v Deno aj v bežnom webovom prehliadači;
  • Platforma Deno funguje okrem runtime aj ako správca balíkov a umožňuje vám pristupovať k modulom podľa URL v kóde. Napríklad na načítanie modulu môžete zadať v kóde „import * ako denník z „https://deno.land/std/log/mod.ts“. Súbory stiahnuté z externých serverov cez URL sa ukladajú do vyrovnávacej pamäte. Väzba na verzie modulov je určená uvedením čísel verzií vnútri adresy URL, napríklad „https://unpkg.com/[chránené e-mailom]/dist/liltest.js";
  • Štruktúra zahŕňa integrovaný systém kontroly závislostí (príkaz „deno info“) a nástroj na formátovanie kódu (deno fmt).
  • Pre vývojárov aplikácií navrhované súbor štandardných modulov, ktoré prešli dodatočným auditom a testovaním kompatibility;
  • Všetky aplikačné skripty je možné spojiť do jedného súboru JavaScript.

Rozdiely od Node.js:

  • Deno nepoužíva správcu balíkov npm
    a nie je viazaný na repozitáre, moduly sú adresované prostredníctvom URL alebo cestou k súboru a samotné moduly môžu byť umiestnené na ľubovoľnej webovej stránke;

  • Deno nepoužíva "package.json" na definovanie modulov;
  • Rozdiel medzi API, všetky asynchrónne akcie v Deno vracajú prísľub;
  • Deno vyžaduje explicitnú definíciu všetkých potrebných oprávnení pre súbory, sieť a premenné prostredia;
  • Všetky chyby, ktoré nie sú poskytnuté obsluhou, vedú k ukončeniu aplikácie;
  • Deno používa modulový systém ECMAScript a nepodporuje require().

Zdroj: opennet.ru

Pridať komentár