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

Dostupno izdanje projekta Daj mi 0.33, koji nudi platformu sličnu Node.js za samostalno izvršavanje aplikacija u JavaScriptu i TypeScriptu koje se mogu koristiti za pokretanje aplikacija bez vezivanja za preglednik, kao što je stvaranje rukovatelja koji se pokreću na poslužitelju. Deno koristi JavaScript mehanizam V8, koji se također koristi u Node.js i preglednicima koji se temelje na Chromium projektu. Šifra projekta distribuira pod licencom MIT-a. Projekt razvija Ryan Dahl (Ryan Dahl), tvorac Node.js JavaScript platforme.

Jedan od glavnih ciljeva stvaranja novog vremena izvođenja za JavaScript je osigurati sigurnije okruženje. Kako bi se poboljšala sigurnost, motor V8 napisan je u Rustu, koji izbjegava mnoge ranjivosti koje proizlaze iz manipulacije memorijom na niskoj razini, kao što je pristup nakon oslobađanja, dereferencije nultog pokazivača i prekoračenja međuspremnika. Platforma se koristi za obradu zahtjeva u neblokirajućem načinu rada Tokijo, također napisano u Rustu. Tokio vam omogućuje stvaranje visokoučinkovitih aplikacija temeljenih na arhitekturi vođenoj događajima, podržavajući multi-threading i obradu mrežnih zahtjeva u asinkronom načinu rada.

Glavni značajke Deno:

  • Zadana konfiguracija orijentirana na sigurnost. Pristup datotekama, umrežavanje i pristup varijablama okoline onemogućeni su prema zadanim postavkama i moraju biti izričito omogućeni;
  • Ugrađena podrška za jezik TypeScript uz JavaScript;
  • Runtime dolazi u obliku jedne samostalne izvršne datoteke ("deno"). Dovoljno je za pokretanje aplikacija koristeći Deno preuzimanje za svoju platformu jedna izvršna datoteka, veličine oko 10 MB, koja nema vanjskih ovisnosti i ne zahtijeva nikakvu posebnu instalaciju na sustav;
  • Prilikom pokretanja programa, kao i za učitavanje modula, možete koristiti URL adresiranje. Na primjer, za pokretanje programa welcome.js možete koristiti naredbu “deno https://deno.land/std/examples/welcome.js”. Kod iz vanjskih resursa se preuzima i pohranjuje u predmemoriju na lokalnom sustavu, ali se nikada ne ažurira automatski (ažuriranje zahtijeva eksplicitno pokretanje aplikacije s oznakom “--reload”);
  • Učinkovita obrada mrežnih zahtjeva putem HTTP-a u aplikacijama, platforma je dizajnirana za izradu mrežnih aplikacija visokih performansi;
  • Sposobnost stvaranja univerzalnih web aplikacija koje se mogu izvršavati i u Denou i u običnom web pregledniku;
  • Osim vremena izvođenja, platforma Deno također djeluje kao upravitelj paketa i omogućuje vam pristup modulima putem URL-a unutar koda. Na primjer, za učitavanje modula možete navesti u kodu “uvezi * kao dnevnik iz “https://deno.land/std/log/mod.ts”. Datoteke preuzete s vanjskih poslužitelja putem URL-a pohranjuju se u predmemoriju. Vezanje na verzije modula određuje se navođenjem brojeva verzija unutar URL-a, na primjer, “https://unpkg.com/[e-pošta zaštićena]/dist/liltest.js";
  • Struktura uključuje integrirani sustav inspekcije zavisnosti (naredba “deno info”) i uslužni program za formatiranje koda (deno fmt).
  • Za programere aplikacija zaprosio skup standardnih modula koji su prošli dodatnu reviziju i testiranje kompatibilnosti;
  • Sve skripte aplikacije mogu se kombinirati u jednu JavaScript datoteku.

Razlike od Node.js:

  • Deno ne koristi npm upravitelj paketa
    i nije vezan za repozitorije, modulima se pristupa putem URL-a ili putem datoteke, a sami moduli mogu se postaviti na bilo koje web mjesto;

  • Deno ne koristi "package.json" za definiranje modula;
  • API razlika, sve asinkrone radnje u Denu vraćaju obećanje;
  • Deno zahtijeva eksplicitnu definiciju svih potrebnih dozvola za datoteke, mrežne i varijable okruženja;
  • Sve pogreške koje nisu opremljene rukovateljima dovode do prekida aplikacije;
  • Deno koristi sustav modula ECMAScript i ne podržava require().

Izvor: opennet.ru

Dodajte komentar