Deno-prosjektet utvikler en sikker JavaScript-plattform som ligner på Node.js

Tilgjengelig prosjektutgivelse Gi meg 0.33, som tilbyr en Node.js-lignende plattform for frittstående applikasjonskjøring i JavaScript og TypeScript som kan brukes til å kjøre applikasjoner uten å være knyttet til en nettleser, for eksempel å lage behandlere som kjører på serveren. Deno bruker en JavaScript-motor V8, som også brukes i Node.js og nettlesere basert på Chromium-prosjektet. Prosjektkode distribuert av under MIT-lisens. Prosjektet utvikles av Ryan Dahl (Ryan Dahl), skaper av Node.js JavaScript-plattformen.

Et av hovedmålene med å lage en ny kjøretid for JavaScript er å gi et sikrere miljø. For å forbedre sikkerheten er V8-motoren skrevet i Rust, som unngår mange av sårbarhetene som oppstår ved minnemanipulering på lavt nivå, som etterfri tilgang, null-peker-dereferanser og bufferoverskridelser. Plattformen brukes til å behandle forespørsler i ikke-blokkerende modus Tokyo, også skrevet i Rust. Tokio lar deg lage applikasjoner med høy ytelse basert på hendelsesdrevet arkitektur, som støtter multi-threading og behandler nettverksforespørsler i asynkron modus.

Den viktigste Spesifikasjoner Deno:

  • Sikkerhetsorientert standardkonfigurasjon. Filtilgang, nettverk og tilgang til miljøvariabler er deaktivert som standard og må være eksplisitt aktivert;
  • Innebygd støtte for TypeScript-språket i tillegg til JavaScript;
  • Runtime kommer i form av en enkelt selvstendig kjørbar fil ("deno"). For å kjøre applikasjoner med Deno er det nok nedlasting for sin plattform én kjørbar fil, omtrent 10 MB i størrelse, som ikke har noen eksterne avhengigheter og ikke krever noen spesiell installasjon på systemet;
  • Når du starter programmet, samt for å laste inn moduler, kan du bruke URL-adressering. For å kjøre programmet welcome.js kan du for eksempel bruke kommandoen "deno https://deno.land/std/examples/welcome.js". Kode fra eksterne ressurser lastes ned og bufres på det lokale systemet, men oppdateres aldri automatisk (oppdatering krever eksplisitt kjøring av applikasjonen med "--reload"-flagget);
  • Effektiv behandling av nettverksforespørsler via HTTP i applikasjoner; plattformen er designet for å lage nettverksapplikasjoner med høy ytelse;
  • Muligheten til å lage universelle nettapplikasjoner som kan kjøres både i Deno og i en vanlig nettleser;
  • I tillegg til kjøretid, fungerer Deno-plattformen også som en pakkebehandler og lar deg få tilgang til moduler etter URL inne i koden. For eksempel, for å laste en modul, kan du spesifisere i koden "import * som logg fra "https://deno.land/std/log/mod.ts". Filer som lastes ned fra eksterne servere via URL, bufres. Binding til modulversjoner bestemmes ved å spesifisere versjonsnumre i URL-en, for eksempel "https://unpkg.com/[e-postbeskyttet]/dist/liltest.js";
  • Strukturen inkluderer et integrert avhengighetsinspeksjonssystem («deno info»-kommandoen) og et verktøy for kodeformatering (deno fmt).
  • For applikasjonsutviklere foreslått et sett med standardmoduler som har gjennomgått ytterligere revisjon og kompatibilitetstesting;
  • Alle applikasjonsskript kan kombineres til én JavaScript-fil.

Forskjeller fra Node.js:

  • Deno bruker ikke npm-pakkebehandling
    og er ikke knyttet til depoter, moduler adresseres via en URL eller av en filbane, og selve modulene kan plasseres på et hvilket som helst nettsted;

  • Deno bruker ikke "package.json" for å definere moduler;
  • API-forskjell, alle asynkrone handlinger i Deno gir et løfte;
  • Deno krever eksplisitt definisjon av alle nødvendige tillatelser for filer, nettverk og miljøvariabler;
  • Alle feil som ikke er gitt med behandlere fører til avslutning av søknaden;
  • Deno bruker ECMAScript-modulsystemet og støtter ikke require().

Kilde: opennet.ru

Legg til en kommentar