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

Dostupno izdavanje projekta Deno 0.33, koji nudi platformu sličnu Node.js za izolirano izvršavanje aplikacija napisano u JavaScript i TypeScript-u, koja se može koristiti za pokretanje aplikacija bez oslanjanja na preglednik, na primjer, za izradu poslužitelja. U Deno-u se koristi JavaScript motor V8, koji se također koristi u Node.js-u i preglednicima temeljenim na projektu Chromium. Izvorni kod projekta distribuira se pod MIT licencom. Projekt razvija Ryan Dahl (Ryan Dahl), kreator JavaScript platforme Node.js.

Jedan od glavnih ciljeva stvaranja novog runtime-a za JavaScript je pružanje sigurnijeg okruženja. Radi povećanja sigurnosti, omotač oko V8 motora je napisan na jeziku Rust, što omogućava izbjegavanje mnogih ranjivosti koje se pojavljuju zbog niskonivojskog rada s memorijom, poput pristupanja memorijskom prostoru nakon što je oslobođen, dereferenciranja nultih pokazivača i prekoračenja granica bafera. Za obradu zahtjeva koristi se platforma Tokio, također napisana na jeziku Rust. Tokio omogućava izradu visoko performansnih aplikacija temeljenih na arhitekturi orijentiranoj na događaje (Event-driven), koje podržavaju višedretvenost i obradu mrežnih zahtjeva u asinkronom režimu.

Glavne karakteristike Deno:

  • Usmjerenost na sigurnost u zadanoj konfiguraciji. Pristupi datotekama, mrežne mogućnosti i pristup varijablama okruženja su prema zadanim postavkama blokirani i zahtijevaju eksplicitno omogućavanje;
  • Ugrađena podrška za TypeScript uz JavaScript;
  • Runtime dolazi u obliku jedne samodostatne izvršne datoteke ('deno'). Za pokretanje aplikacija koristeći Deno dovoljno je preuzeti za svoju platformu jedan izvršni datoteka, veličine oko 10 MB, bez vanjskih ovisnosti i ne zahtijeva posebnu instalaciju u sustav;
  • Prilikom pokretanja programa, kao i za učitavanje modula, mogu se koristiti adrese putem URL-a. Na primjer, za pokretanje programa welcome.js može se koristiti naredba 'deno https://deno.land/std/examples/welcome.js'. Kod s vanjskih resursa učitava se i kešira na lokalnom sustavu, ali se nikada automatski ne ažurira (za ažuriranje je potrebno izričito pokrenuti aplikaciju s zastavicom '--reload');
  • Učinkovita obrada mrešnih zahtjeva putem HTTP-a, platforma je osmišljena za stvaranje visoko performantnih mrežnih aplikacija;
  • Mogućnost izrade univerzalnih web aplikacija koje se mogu izvesti kako u Denu, tako i u običnom web pregledniku;
  • Osim runtime, Deno također djeluje kao upravitelj paketa i omogućava korištenje modula putem URL-a unutar koda. Na primjer, za učitavanje modula možete u kodu navesti „import * as log from «https://deno.land/std/log/mod.ts». Datoteke učitane s vanjskih poslužitelja putem URL-a se keširaju. Verzioniranje modula određuje se navođenjem brojeva verzija unutar URL-a, na primjer, «https://unpkg.com/liltest@0.0.5/dist/liltest.js»;
  • U integraciju je uključeni sustav inspekcije ovisnosti (naredba 'deno info') i alat za formatiranje koda (deno fmt).
  • Za programere aplikacija predložen set standardnih modula koji su prošli dodatnu reviziju i provjeru kompatibilnosti;
  • Sve skripte aplikacije mogu se spojiti u jednu JavaScript datoteku.

Razlike u odnosu na Node.js:

  • Deno ne koristi upravitelj paketa npm
    i ne oslanja se na repozitorije, adrese modula određuju se putem URL-a ili preko datotečnih putanja, a moduli se mogu nalaziti na bilo kojoj stranici;
  • U Denu se ne koristi „package.json” za definiranje modula;
  • Razlika u API-ju, sve asinkrone radnje u Denu vraćaju promise;
  • Deno zahtijeva eksplicitno definiranje svih potrebnih ovlasti za datoteke, mrežu i varijable okruženja;
  • Sve pogreške bez handlera dovode do prekida izvršavanja aplikacije;
  • U Deno-u se koristi sistem modula ECMAScript i ne podržava require().

Izvor: opennet.ru

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster