Deno projekat razvija sigurnu JavaScript platformu sličnu Node.js

Dostupno izdanje projekta Daj mi 0.33, koji nudi platformu sličnu Node.js za samostalnu izvršavanje aplikacija u JavaScript-u i TypeScript-u koja se može koristiti za pokretanje aplikacija bez vezivanja za pretraživač, kao što je kreiranje rukovalaca koji se pokreću na serveru. Deno koristi JavaScript motor V8, koji se takođe koristi u Node.js i pretraživačima zasnovanim na Chromium projektu. Šifra projekta distribuira pod MIT licencom. Projekat razvija Ryan Dahl (Ryan Dahl), kreator Node.js JavaScript platforme.

Jedan od glavnih ciljeva kreiranja novog vremena izvođenja za JavaScript je obezbjeđivanje sigurnijeg okruženja. Da bi se poboljšala sigurnost, V8 motor je napisan na Rust-u, koji izbjegava mnoge ranjivosti koje proizlaze iz manipulacije memorijom na niskom nivou, kao što su pristup nakon slobodnog pristupa, dereferenciranje nulte pokazivača i prekoračenje bafera. Platforma se koristi za obradu zahtjeva u neblokirajućem načinu Tokio, također napisan na Rust. Tokio vam omogućava da kreirate aplikacije visokih performansi zasnovane na arhitekturi vođenoj događajima, podržavajući višenitnu obradu i obradu mrežnih zahteva u asinhronom režimu.

Glavni Značajke Deno:

  • Sigurnosno orijentirana zadana konfiguracija. Pristup datotekama, umrežavanje i pristup varijablama okruženja onemogućeni su po defaultu i moraju biti eksplicitno omogućeni;
  • Ugrađena podrška za jezik TypeScript uz JavaScript;
  • Runtime dolazi u obliku jedne samostalne izvršne datoteke (“deno”). Dovoljno je pokrenuti aplikacije koristeći Deno preuzimanje za svoju platformu jedan izvršni fajl, veličine oko 10 MB, koji nema eksterne zavisnosti i ne zahteva nikakvu posebnu instalaciju na sistemu;
  • Prilikom pokretanja programa, kao i za učitavanje modula, možete koristiti URL adresiranje. Na primjer, da biste pokrenuli program welcome.js, možete koristiti naredbu “deno https://deno.land/std/examples/welcome.js”. Kôd sa eksternih resursa se preuzima i kešira na lokalnom sistemu, ali se nikada ne ažurira automatski (ažuriranje zahteva eksplicitno pokretanje aplikacije sa zastavicom “--reload”);
  • Efikasna obrada mrežnih zahtjeva putem HTTP-a u aplikacijama, platforma je dizajnirana za kreiranje mrežnih aplikacija visokih performansi;
  • Mogućnost kreiranja univerzalnih web aplikacija koje se mogu izvršavati iu Deno-u iu običnom web pretraživaču;
  • Pored vremena izvođenja, Deno platforma djeluje i kao menadžer paketa i omogućava vam pristup modulima putem URL-a unutar koda. Na primjer, da biste učitali modul, možete navesti u kodu “import * as log from “https://deno.land/std/log/mod.ts”. Datoteke preuzete sa eksternih servera putem URL-a se keširaju. Vezanje za verzije modula određuje se navođenjem brojeva verzija unutar URL-a, na primjer, “https://unpkg.com/[email zaštićen]/dist/liltest.js";
  • Struktura uključuje integrisani sistem inspekcije zavisnosti (komanda „deno info”) i pomoćni program za formatiranje koda (deno fmt).
  • Za programere aplikacija predložio skup standardnih modula koji su prošli dodatnu reviziju i testiranje kompatibilnosti;
  • Sve aplikacijske skripte mogu se kombinovati u jednu JavaScript datoteku.

Razlike od Node.js:

  • Deno ne koristi npm menadžer paketa
    i nije vezan za spremišta, moduli se adresiraju preko URL-a ili putem putanje datoteke, a sami moduli se mogu postaviti na bilo koju web stranicu;

  • Deno ne koristi "package.json" za definiranje modula;
  • API razlika, sve asinhrone akcije u Deno vraćaju obećanje;
  • Deno zahtijeva eksplicitnu definiciju svih potrebnih dozvola za datoteke, mreže i varijable okruženja;
  • Sve greške koje nisu dostavljene rukovaocima dovode do gašenja aplikacije;
  • Deno koristi sistem modula ECMAScript i ne podržava require().

izvor: opennet.ru

Dodajte komentar