Lanseringen av JavaScript-plattformen Deno 1.16 har Àgt rum, vilket Àr avsett för isolerad körning (utan anvÀndning av webblÀsare) av applikationer skrivna i JavaScript och TypeScript. Projektet utvecklas av Node.js-skaparen Ryan Dahl. Plattformens kod Àr skriven i programmeringssprÄket Rust och distribueras under MIT-licensen. FÀrdiga byggen har förberetts för Linux, Windows och macOS.
Projektet liknar Node.js-plattformen och, precis som den, anvÀnder JavaScript-motorn V8, men enligt Node.js-skaparen ÄtgÀrdar det ett antal arkitektoniska brister hos sin föregÄngare och skiljer sig dÀrmed med följande punkter:
- AnvÀndning av Rust som huvudsprÄk, vilket enligt utvecklarna minskar risken för sÄrbarheter kopplade till lÄgnivÄhantering av minnet (buffer overflow, use-after-free, osv.);
- Deno anvĂ€nder inte paketförvaltaren npm och package.json, utan erbjuder anvĂ€ndaren att installera moduler genom att ange URL eller sökvĂ€g till modulen för installation. ĂndĂ„ tillhandahĂ„ller projektet flera verktyg för att förenkla arbete med externa moduler;
- Applikationer körs isolerat i sandlÄdor och har inte tillgÄng till nÀtverket, miljövariabler och filsystemet utan uttryckligen beviljade behörigheter;
- Arkitekturen möjliggör skapandet av universella webbapplikationer som kan köras bÄde i Deno-systemet och i en vanlig webblÀsare;
- AnvÀndning av 'ES Modules' och ingen stöd för require();
- Eventuella ohandledda programmeringsfel i webbapplikationen leder till deras tvingade avslutande;
- Stöd för TypeScript utöver JavaScript;
- Den totala storleken pĂ„ den fĂ€rdiga plattformen Ă€r 84 MB (i zip-arkiv â 31 MB) i form av en enda körbar fil;
- En system för hantering av beroenden och kodformatering ingÄr;
- Sikta pÄ högpresterande applikationer.
Deno hanterar förfrÄgningar i icke-blockerande lÀge med hjÀlp av plattformen Tokio, som Àr avsedd för att skapa högpresterande applikationer baserade pÄ en hÀndelsestyrd arkitektur. Det Àr ocksÄ intressant att den inbyggda HTTP-servern i Deno Àr implementerad i TypeScript ovanpÄ inbyggda TCP-sockets, vilket har en positiv inverkan pÄ nÀtverksoperationers prestanda.
Den nya versionen markerar:
- Prestandaoptimering (4 patchar);
- Korrigering av mer Àn 15 fel, sÀrskilt nu stödjer TLS-klienten HTTP/2, kodningssystemet stödjer ytterligare kodningsmÀrken, med mera.
- Mer Àn tvÄ dussin nyheter, bland vilka stabilisering av tidigare testade subsystem som Deno.startTls och Deno.TestDefinition.permissions, uppdatering av JS-motorn V8 till version 9.7 och stöd för transformationer av React 17 JSX kan nÀmnas.
KĂ€lla: opennet.ru
