Доступна платформа Deno 2.0, развиваемая автором Node.js

Versjonen av Deno 2.0 er utgitt, som er designet for isolert kjøring av serverapplikasjoner skrevet i JavaScript og TypeScript ved bruk av V8-motoren som brukes i Chromium-baserte nettlesere. Deno-prosjektet blir utviklet av Ryan Dahl, skaperen av Node.js, med mål om å tilby et sikrere miljø og rette opp konseptuelle feil gjort i Node.js-arkitekturen. For å øke sikkerheten er innpakningen rundt V8-motoren skrevet i Rust, og plattformen Tokio brukes for ikke-blokkerende forespørselshåndtering. Koden distribueres under MIT-lisensen. Byggene er forberedt for Linux, Windows og macOS.

Når den nye grenen ble forberedt, var hovedfokuset på kompatibilitet med den gamle JavaScript-infrastrukturen og utvidelse av støtten for JavaScript-prosjekter uten å gå på bekostning av sikkerheten. Blant endringene:

  • Tilbakekompatibilitet med Node.js og npm er implementert, noe som gjør det mulig å kjøre uendret applikasjoner laget for Node.js. Støtten for Node.js gir også mulighet til gradvis å overføre eksisterende prosjekter fra Node.js til bruk av Deno, eller koble NPM-avhengigheter til Deno-prosjekter ved å spesifisere «npm:»-spesifikatoren ved import av pakker i deno.json.
  • Innebygd støtte for package.json-filer og katalogen med node_modules-moduler som brukes i Node.js er lagt til.
  • Støtte for private NPM-repositorier definert gjennom «.npmrc»-filer er sikret.
  • Støtte for populære JavaScript-rammeverk som Next.js, Astro, Remix, Angular, SvelteKit og QwikCity er lagt til.
  • Støtte for npm-arbeidsområder (workspace) og monorepositorier (monorepo) med separat behandling av avhengigheter er lagt til.
  • Nye pakkeadministrasjonskommandoer er lagt til: «deno install» for å installere avhengigheter, «deno add» for å legge til pakker i package.json eller deno.json, «deno remove» for å fjerne pakker. Det påpekes at «deno install» er omtrent 15 ganger raskere enn npm når det ikke er pakker i cache, og 90 % raskere når pakken er i cache (både node_modules og egen global cache støttes).
  • Standardbiblioteket er stabilisert.
  • Langvarig støtte (LTS) er sikret.
  • JSR er introdusert — et repository med JavaScript- og TypeScript-biblioteker som kan brukes i forskjellige JavaScript-runtime.
  • I kommandolinjen «deno fmt» har det blitt mulig å formatere innhold i HTML-, CSS- og YAML-formater.
  • Kommandoen «deno lint» har fått støtte for Node.js-spesifikke regler og rettinger.
  • I kommandoen «deno test» er det nå mulig å kjøre tester laget med node:test.
  • I kommandoen «deno task» er det lagt til støtte for å kjøre skript via package.json.
  • I kommandoen «deno compile» er det nå mulig å signere koden med en digital signatur.
  • I kommandoen «deno serve» er det implementert parallellisering av HTTP-serveroperasjoner ved å bruke flere CPU-kjerner.
  • I kommandoen «deno coverage» er det lagt til støtte for lagring av rapporter i HTML-format.
  • Ytelsesoptimalisering er gjennomført.
    Доступна платформа Deno 2.0, развиваемая автором Node.js

Hovedfunksjoner ved Deno:

  • Sikkerhetsfokus i standardkonfigurasjonen. Filtilgang, nettverksmuligheter og tilgang til miljøvariabler er som standard blokkert og krever eksplisitt tillatelse. Applikasjoner kjøres som standard i isolerte sandkassemiljøer og kan ikke få tilgang til systemressurser uten å bli eksplisitt gitt tillatelser;
  • Innebygd støtte for TypeScript i tillegg til JavaScript. Typekontroll og generering av JavaScript skjer ved hjelp av den innebygde TypeScript-kompilatoren, noe som fører til en nedgang i ytelse sammenlignet med JavaScript-parsing i V8;
  • Kjøreprogrammet leveres som en enkel, selvstendig kjørbar fil («deno»). For å kjøre applikasjoner med Deno er det nok å laste ned én kjørbar fil for plattformen din, på cirka 40 MB, uten eksterne avhengigheter og uten behov for spesialinstallasjon i systemet. Deno er ikke et monolitisk program, men en samling crate-pakker på Rust (deno_core, rusty_v8) som kan brukes hver for seg.
  • Når programmet kjøres, samt for å laste moduler, kan adressene brukes gjennom URL. For eksempel kan kommandoen «deno https://deno.land/std/examples/welcome.js» brukes for å kjøre programmet welcome.js. Kode fra eksterne ressurser lastes ned og lagres i det lokale systemet, men oppdateres aldri automatisk (for oppdateringer kreves det at applikasjonen kjøres eksplisitt med flagget «—reload»);
  • Effektiv behandling av HTTP-nettverksforespørsel i applikasjoner, plattformen er designet for å lage høyytelses nettverksapplikasjoner;
  • Mulighet til å lage universelle webapplikasjoner, som kan kjøres både i Deno og i vanlige nettlesere;
  • Tilgjengeligheten av et standard sett med moduler som ikke krever binding til eksterne avhengigheter. Modulene i standardpakken har gjennomgått en ekstra revisjon og kompatibilitetstest;
  • I tillegg til runtime-funksjonen tilbyr Deno-plattformen også en pakkehåndterer som gjør det mulig å referere til moduler ved URL i koden. For eksempel, for å laste ned en modul kan man angi i koden «import * as log from «https://deno.land/std/log/mod.ts». Filer som er lastet ned fra eksterne servere via URL, blir cachet. Bindingen til versjoner av moduler bestemmes gjennom angivelse av versjonsnumre i URL-en, for eksempel «https://unpkg.com/liltest@0.0.5/dist/liltest.js»;
  • Fokus på bruk av webstandarder, støtte for Promise, fetch og ECMAScript-moduler.
  • Kompatibilitet med pakker som er plassert i NPM-repositoriet og laget for Node.js-plattformen.
  • Det er integrert et system for inspeksjon av avhengigheter (kommandoen «deno info») og et verktøy for kodingformattering (deno fmt);
  • Alle skriptene i applikasjonen kan slås sammen til én JavaScript-fil.

Kilde: opennet.ru

Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere 🔥 Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere | ProHoster