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

Tillgänglig utgåvan av projektet Deno 0.33, som erbjuder en plattform liknande Node.js för isolerad körning av applikationer skrivna i JavaScript och TypeScript, som kan användas för att köra applikationer utan webbläsarens beroende, till exempel för att skapa servrar. Deno använder JavaScript-motorn V8, som också används i Node.js och webbläsare som bygger på Chromium-projektet. Koden för projektet sprids är licensierad under MIT. Projektet utvecklas av Ryan Dahl (Ryan Dahl), skaparen av JavaScript-plattformen Node.js.

Ett av de främsta målen med att skapa en ny körningstid för JavaScript är att erbjuda en mer säker miljö. För att öka säkerheten är inpackningen kring V8-motorn skriven i Rust, vilket gör det möjligt att undvika många sårbarheter som uppstår på grund av lågnivåminneshantering, såsom att referera till minnesområden efter att de frigjorts, dereferera nullpekare och överträde buffertgränser. För att hantera förfrågningar används en plattform Tokio, som också är skriven i Rust. Tokio möjliggör skapandet av högpresterande applikationer baserade på händelsestyrd arkitektur, vilket stödjer flertrådigheter och hantering av nätverksförfrågningar i asynkron läge.

Huvud funktioner Deno:

  • Fokus på säkerhet i standardkonfigurationen. Åtkomst till filer, nätverksmöjligheter och miljövariabler är som standard blockerat och kräver uttrycklig aktivering;
  • Inbyggt stöd för TypeScript utöver JavaScript;
  • Runtime levereras i form av en självförsörjande körbar fil (”deno”). För att köra applikationer med Deno räcker det med laddas ner för sin plattform är en körbar fil på cirka 10 MB, utan externa beroenden och kräver ingen speciell installation i systemet;
  • Vid körning av programmet samt för inladdning av moduler kan adressering göras via URL. Till exempel, för att köra programmet welcome.js kan kommandot "deno https://deno.land/std/examples/welcome.js" användas. Koden från externa resurser laddas ner och cachelagras på det lokala systemet, men uppdateras aldrig automatiskt (för att uppdatera krävs att applikationen körs med flaggan "—reload");
  • Effektiv hantering av HTTP-nätringförfrågningar, plattformen är designad för att skapa högpresterande nätverksapplikationer;
  • Möjlighet att skapa universella web-applikationer som kan köras både i Deno och i en vanlig webbläsare;
  • Förutom runtime fungerar Deno-plattformen även som en paketförvaltare och tillåter att moduler kan anropas i koden via URL. Till exempel kan modulen laddas med koden «import * as log from «https://deno.land/std/log/mod.ts». Filer som laddas från externa servrar via URL cachas. Bindningen till modulversioner definieras genom versionsnummer i URL:en, till exempel «https://unpkg.com/liltest@0.0.5/dist/liltest.js»;
  • I paketet finns ett system för inspektion av beroenden (kommandot ‘deno info’) och ett verktyg för kodformattering (deno fmt).
  • För applikationsutvecklare föreslagen ett sett av standardmoduler som har genomgått ytterligare granskning och kompatibilitetstestning;
  • Alla applikationsscript kan kombineras till en enda JavaScript-fil.

Skillnader från Node.js:

  • Deno använder ingen paketförvaltare npm
    och kopplar inte till repository, moduler adresseras via URL eller filväg, och moduler kan placeras på vilken webbplats som helst;
  • I Deno används ingen «package.json» för att definiera moduler;
  • API-differenser, alla asynkrona åtgärder i Deno returnerar ett promise;
  • Deno kräver en tydlig definiering av alla nödvändiga behörigheter för filer, nätverk och miljövariabler;
  • Alla fel utan hanterare medför att applikationens exekvering avslutas;
  • Deno använder ECMAScript-modulsystem och stöder inte require().

Källa: opennet.ru

Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar 🔥 Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster