Avtor Node.js je predstavil zaščiteno JavaScript platformo Deno 1.0

Po dveh letih razvoja predstavljen prvi značajan izdanak Deno 1.0, platforme za izolirano izvršavanje aplikacija napisane u JavaScript i TypeScript, koja se može koristiti za izradu server-side handlera. Platformu razvija Ryan Dahl (Ryan Dahl), stvoritelj Node.js. Kao i u Node.js, Deno koristi JavaScript motor V8, koji se također koristi u Chromium-baziranim preglednicima. Međutim, Deno nije ogranak Node.js-a, već predstavlja potpuno novi projekt stvoren od nule. Kod projekta se distribuira pod MIT licencom. Izgradnje so pripravljene za Linux, Windows in macOS.

Značajan broj verzije odnosi se na stabilizaciju API-ja u imenskom prostoru Deno, koji odgovaraju za interakciju aplikacija s OS-om. Softverski interfejsi koji još uvijek nisu stabilizirani, po defaultu su skriveni i dostupni samo kada se pokreću u režimu "—unstable". Kako se formiraju nove verzije, slični API-ji će postupno prelaziti u stabilnu klasifikaciju. API u globalnom imenskom prostoru, koji uključuje funkcije kao što su setTimeout() i fetch(), približava se API-ju običnih web preglednika i razvija se u skladu s web standardima za preglednike. Dostupni Rust API je direktno korišten u kodu platforme, kao i sučelje za razvoj dodataka za Deno runtime, i dalje nije stabilizirano i nastavlja se razvijati.

Ključni motivi za stvaranje nove JavaScript platforme bili su želja da se isprave konceptualne greške koje su napravljene u arhitekturi Node.js, i pružiti korisnicima sigurnije okruženje. Radi povećanja sigurnosti, obavijest oko V8 motora napisana je na jeziku Rust, koja omogućava izbjegavanje mnogih ranjivosti koje proizlaze iz niskonivoa rada s memorijom, kao što su pristup memorijskom prostoru nakon njegovog oslobađanja, dereferenciranje null pokazivača i izlazak izvan granica bafera. Za obradu zahtjeva u neblokirajućem režimu koristi se platforma Tokio, koja je također napisana na jeziku Rust. Tokio omogućava izradu visoko performantnih aplikacija na temelju arhitekture orijentirane na događaje (Event-driven), koja podržava višenitnost i obradu mrežnih zahtjeva u asinkronom režimu.

Glavne značilnosti Deno:

  • Usmerjenost na varnost v privzeti konfiguraciji. Dostopi do datotek, mrežne možnosti in dostop do spremenljivk okolja so privzeto blokirani in zahtevajo izrecno omogočitev. Aplikacije se privzeto zaženejo v izoliranih sandbox okoljih in ne morejo dostopati do sistemskih možnosti brez izrecnega dovoljenja.
  • Vgrajena podpora za jezik TypeScript poleg JavaScripta. Za preverjanje tipov in generiranje JavaScripta se uporablja standardni TypeScript prevajalnik, kar povzroča upad uspešnosti v primerjavi z razvojem JavaScripta v V8. V prihodnosti je načrtovana priprava lastne implementacije sistema za preverjanje tipov TypeScript, ki bo omogočila znatno povečanje uspešnosti obdelave TypeScript;
  • Runtime se dobavlja v obliki enega samostojnega izvršilnega datoteka („deno“). Za zagon aplikacij s pomočjo Deno je dovolj, naložite da imate za svojo platformo en izvršilni datotek, velikosti približno 20 MB, brez zunanjih odvisnosti in brez potrebe po posebni namestitvi v sistem. Deno ni monolitna aplikacija, temveč predstavlja zbirko crate-paketov v Rustu (deno_core, rusty_v8), ki jih je mogoče uporabljati ločeno;
  • Pri zagonu programa in za nalaganje modulov je mogoče uporabiti naslovitev prek URL. Na primer, za zagon programa welcome.js lahko uporabite ukaz 'deno https://deno.land/std/examples/welcome.js'. Koda iz zunanjih virov se naloži in predpomni na lokalnem sistemu, nikoli pa se samodejno ne posodablja (za posodobitev je treba izrecno zagnati aplikacijo z zastavico '--reload').
  • Učinkovita obdelava omrežnih zahtevkov prek HTTP, platforma je zasnovana za ustvarjanje visoko zmogljivih omrežnih aplikacij.
  • Možnost ustvarjanja univerzalnih spletnih aplikacij, ki lahko delujejo tako v Deno kot v običajnem spletnih brskalnikih.
  • Postojanje standardnega nabora modulov, katerih uporaba ne zahteva vezave na zunanje odvisnosti. Moduli iz standardne zbirke so bili dodatno pregledani in preverjeni za združljivost;
  • Poleg runtime-a Deno platforma opravlja tudi vlogo upravljalnika paketov in omogoča dostop do modulov v kodi preko URL. Na primer, za prenos modula lahko v kodi navedete „import * as log from „https://deno.land/std/log/mod.ts“. Datoteke, prenesene z zunanjih strežnikov po URL, so predpomnjene. Vezava na različice modulov se določa s številkami različic v URL, na primer „https://unpkg.com/liltest@0.0.5/dist/liltest.js“;
  • Vključuje sistem za pregled odvisnosti (ukaz „deno info“) in orodje za oblikovanje kode (deno fmt);
  • Vsi skripti aplikacije so lahko združeni v eno datoteko JavaScript.

Razlike v primerjavi z Node.js:

  • Deno ne uporablja upravljalnika paketov npm
    in se ne veže na repozitorije, naslovi modulov so določeni preko URL ali po datotečni poti, moduli pa so lahko gostovani na katerikoli spletni strani;
  • V Deno se ne uporablja „package.json“ za opredelitev modulov;
  • Razlike v API-ju, vse asinhrone akcije v Deno vračajo promise;
  • Deno zahteva jasno opredelitev vseh potrebnih pooblastil za datoteke, omrežje in okoljske spremenljivke;
  • Vse napake brez obravnavalcev povzročijo prekinitev izvajanja aplikacije;
  • V Deno se uporablja sistem modulov ECMAScript, podporo za require() pa ni.
  • Vgrajeni HTTP strežnik Deno je napisan v TypeScriptu in deluje na vrhu nativnih TCP soketov, medtem ko je HTTP strežnik Node.js napisan v C-ju in ponuja vezave za JavaScript. Razvijalci Deno so se osredotočili na optimizacijo celotnega sloja TCP soketov in zagotavljanje bolj splošnega vmesnika. HTTP strežnik Deno zagotavlja manjšo propustnost, a zagotavlja predvidljive nizke zakasnitve. Na primer, v testu je enostavna aplikacija, ki temelji na Deno HTTP strežniku, uspela obdelati 25.000 zahtevkov na sekundo z maksimalno zakasnitvijo 1,3 milisekunde. V Node.js je podobna aplikacija obdelala 34.000 zahtevkov na sekundo, vendar so se zakasnitve gibale med 2 in 300 milisekundami.
  • Deno ni združljiv s paketi za Node.js (NPM), temveč se razvija ločeno. vmesnik za združljivost s standardno knjižnico Node.js, kar pomeni, da bodo z njenim razvojem v Deno lahko zagnali vedno več aplikacij, napisanih za Node.js.
  • Izvor: opennet.ru

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster