Skaparen av Node.js har introducerat den sÀkra JavaScript-plattformen Deno 1.0

Efter tvÄ Ärs utveckling presenteras den första betydande utgÄvan Deno 1.0, en plattform för isolerad körning av applikationer skrivna i JavaScript och TypeScript, som kan anvÀndas för att skapa servrar. Plattformen utvecklas av Ryan Dahl (Ryan Dahl), skaparen av Node.js. Precis som i Node.js anvÀnder Deno JavaScript-motorn V8, som ocksÄ anvÀnds i Chromium-baserade webblÀsare. Deno Àr dock inte en avknoppning av Node.js utan ett helt nytt projekt skapat frÄn grunden. Koden för projektet sprids Àr licensierad under MIT. Byggen Àr förberedda för Linux, Windows och macOS.

Det betydande versionsnumret Ă€r kopplat till stabiliseringen av API:er i namnomrĂ„det Deno, som ansvarar för interaktionen mellan applikationer och operativsystemet. ProgramgrĂ€nssnitt som för nĂ€rvarande inte Ă€r stabiliserade, Ă€r som standard dolda och endast tillgĂ€ngliga nĂ€r de körs i "—unstable"-lĂ€ge. I takt med att nya versioner formas kommer sĂ„dana API:er gradvis att överföras till stabil status. API:erna i det globala namnomrĂ„det, som inkluderar allmĂ€nna funktioner som setTimeout() och fetch(), Ă€r sĂ„ nĂ€ra som möjligt relaterade till API:erna i vanliga webblĂ€sare och utvecklas i enlighet med webstandarder för webblĂ€sare. De Rust-baserade API:erna som anvĂ€nds direkt i plattformens kod, samt grĂ€nssnittet för att utveckla plugins till Deno-runtime, Ă€r Ă€nnu inte stabiliserade och fortsĂ€tter att utvecklas.

Huvudmotiven bakom skapandet av den nya JavaScript-plattformen var att ÄtgÀrda konceptuella fel som begicks i arkitekturen av Node.js, och att ge anvÀndarna en sÀkrare miljö. För att öka sÀkerheten Àr omslutningen runt V8-motorn skriven i Rust, vilket gör att mÄnga sÄrbarheter orsakade av lÄgnivÄminneshantering kan undvikas, sÄsom Ätkomst till minnesomrÄden efter frigörande, dereferering av nullpekare och övertrÀdelse av buffertgrÀnser. För att hantera förfrÄgningar i icke-blockerande lÀge 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:

  • SĂ€kerhetsinriktning i standardkonfigurationen. Åtkomst till filer, nĂ€tverksfunktioner och miljövariabler Ă€r som standard blockerad och krĂ€ver explicit aktivering. Standardapplikationer körs i isolerade sandbox-miljöer och kan inte fĂ„ Ă„tkomst till systemfunktioner utan att ge explicita behörigheter;
  • Inbyggt stöd för TypeScript utöver JavaScript. Den inbyggda TypeScript-kompilatorn anvĂ€nds för typkontroll och generering av JavaScript, vilket leder till prestandaförluster jĂ€mfört med Javascript-parsing i V8. I framtiden planeras en egen implementation av TypeScript-typkontrollsystemet som kommer att dramatiskt öka prestandan för TypeScript-hantering;
  • 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 en körbar fil, cirka 20 MB, utan externa beroenden och utan att krĂ€va nĂ„gon speciell installation i systemet. Den hĂ€r deno Ă€r dock ingen monolitisk applikation utan en samling crate-paket i Rust (deno_core, rusty_v8), som kan anvĂ€ndas separat;
  • 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;
  • NĂ€rvaron av en standarduppsĂ€ttning moduler, vars anvĂ€ndning inte krĂ€ver bindning till externa beroenden. Moduler frĂ„n standardkollektionen har genomgĂ„tt ytterligare granskning och testning för kompatibilitet;
  • 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»;
  • Integrationen omfattar ett system för inspektion av beroenden (kommandot «deno info») och ett verktyg för kodformatering (deno fmt);
  • 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-modulsystemet och stöder inte require();
  • Den inbyggda HTTP-servern Deno Ă€r skriven i TypeScript och fungerar ovanpĂ„ nativa TCP-socklar, medan HTTP-servern i Node.js Ă€r skriven i C och erbjuder bindningar för JavaScript. Utvecklarna av Deno har fokuserat pĂ„ att optimera hela laget av TCP-socklar och erbjuda ett mer generellt grĂ€nssnitt. Den HTTP-servern Deno kan hantera fĂ€rre begĂ€rningar, men garanterar förutsĂ€gbart lĂ„ga fördröjningar. Till exempel, i ett test kunde en enkel applikation baserad pĂ„ Deno HTTP-server hantera 25 000 begĂ€rningar per sekund med en maximal fördröjning pĂ„ 1,3 millisekunder. I Node.js hanterade en liknande applikation 34 000 begĂ€rningar per sekund, men fördröjningarna varierade mellan 2 och 300 millisekunder.
  • Deno Ă€r inte kompatibel med paket för Node.js (NPM), men utvecklas separat ett lager för kompatibilitet med Node.js standardbibliotek, vilket gör att Deno kan köra fler och fler applikationer skrivna för Node.js allteftersom det utvecklas.
  • 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