Node.js-i looja esitles turvalist JavaScript platvormi Deno 1.0

PÀrast kahe aasta arendust esitati esimene mÀrkimisvÀÀrne vÀljalase Deno 1.0, platvorm, mis on mÔeldud JavaScripti ja TypeScripti rakenduste isoleeritud kÀitamiseks ning mida saab kasutada serveripoolsete töötlejate loomiseks. Platvormi arendab Ryan Dahl (Ryan Dahl), Node.js-i looja. Nagu Node.js-is, kasutab Deno JavaScripti mootorit V8, mida kasutatakse ka Chromiumil pÔhinevates brauserites. Sellegipoolest ei ole Deno Node.js-i haru, vaid esindab nullist loodud uut projekti. Projekti kood levitatakse on MIT litsentsi all. Kompilatsioonid valmistatud Linuxile, Windowsile ja macOS-ile.

MĂ€rkimisvÀÀrne versiooninumber on seotud Deno nimede ruumi API stabiliseerimisega, mis vastutavad rakenduste suhtlemise eest kasutajaoperatsioonisĂŒsteemiga. Programmiliidesed, mis pole veel stabiliseeritud, on vaikimisi peidetud ja kĂ€ttesaadavad ainult '—unstable' reĆŸiimis töötades. Uute versioonide vĂ€ljatöötamise kĂ€igus viiakse sarnased API-d jĂ€rk-jĂ€rgult stabiilseteks. Globaalne API, mis sisaldab selliseid tavalisi funktsioone nagu setTimeout() ja fetch(), on vĂ”imalusel lĂ€hedane tavaliste veebibrauserite API-dele ja areneb vastavalt veebistandarditele. Rust API-d, mida rakenduses otseselt kasutatakse, ja Deno runtime'i pistikprogrammide arendamise liides pole veel stabiliseeritud ja arenevad jĂ€tkuvalt.

Uue JavaScripti platvormi loomise peamised motiivid olid soov kĂ”rvaldada kontseptuaalsed vead, mille on teinud Node.js-i arhitektuuris, ja pakkuda kasutajatele turvalisemat keskkonda. Turvalisuse suurendamiseks on V8 mootori ĂŒmber kirjutatud Rust keeles, mis vĂ”imaldab vĂ€ltida paljusid haavatavusi, mis tekivad madala taseme mĂ€luhalduse tĂ”ttu, nĂ€iteks juurdepÀÀs vabastatud mĂ€lupiirkondadele, nullnĂ€idikute tĂŒhistamine ja mĂ€lupiiri ĂŒletamine. Ootamatute pĂ€ringute töötlemiseks kasutatakse platvormi Tokio, mis on samuti kirjutatud Rust keeles. Tokio vĂ”imaldab luua kĂ”rge jĂ”udlusega sĂŒndmustepĂ”hiseid rakendusi, mis toetavad multitegumtöötlust ja asynchronous vĂ”rgupĂ€ringute töötlemist.

Peamised omadused Deno:

  • Vaikeseadistuses on keskendutud turvalisusele. Failidele juurdepÀÀs, vĂ”rgufunktsioonid ja keskkonnamuutujate ligipÀÀs on vaikimisi blokeeritud ja nĂ”uavad selget lubamist. Rakendused kĂ€ivitatakse vaikimisi isoleeritud liivakasti keskkondades, ilma et neil oleks juurdepÀÀs sĂŒsteemiressurssidele ilma selgete Ă”iguste andmiseta.
  • Sisseehitatud TypeScripti keele tugi JavaScripti kĂ”rval. TĂŒĂŒpide kontrollimiseks ja JavaScripti genereerimiseks kasutatakse sisseehitatud TypeScripti kompiraatorit, mis toob kaasa jĂ”udluse languse vĂ”rreldes JavaScripti sĂ”nastamisega V8-s. Tulevikus on plaanis luua oma tĂŒĂŒpide kontrollimise sĂŒsteem TypeScriptile, mis tĂ”stab jĂ”udlust oluliselt.
  • KĂ€ivitusaja keskkond on saadaval ĂŒhes iseseisvas tĂ€itmisfailis („deno“). Rakenduste kĂ€itamiseks Deno abil piisab, kui laadida oma platvormile ĂŒks tĂ€itmisfail, mille suurus on umbes 20 MB, millel pole vĂ€liseid sĂ”ltuvusi ja mis ei nĂ”ua erilist installimist sĂŒsteemis. Samuti ei ole deno monoliitne rakendus, vaid see on kogu crate-paketite kogum Rustis (deno_core, rusty_v8), mida saab kasutada eraldi;
  • Programmi kĂ€itamisel ja moodulite laadimisel saab kasutada URL-aadressimist. NĂ€iteks, kĂ€ivitamiseks programmi welcome.js vĂ”ib kasutada kĂ€sku „deno https://deno.land/std/examples/welcome.js“. Kood vĂ€listelt allikatelt laaditakse ja salvestatakse lokaalses sĂŒsteemis, kuid kunagi ei uuendata automaatselt (uuendamiseks peab rakendust selgelt kĂ€ivitama lipuga „—reload“).
  • Efektiivne HTTP-vĂ”rgupĂ€ringute töötlemine, platvorm on loodud kĂ”rge jĂ”udlusega vĂ”rgurakenduste loomiseks.
  • VĂ”imalus luua universaalseid veebi rakendusi, mis saavad töötada nii Deno-s kui ka tavapĂ€rases veebi brauseris.
  • Standardsete moodulite komplekti olemasolu , mille kasutamiseks ei ole vaja vĂ€listele sĂ”ltuvustele tugineda. Standardkogumi mooduleid on tĂ€iendavalt auditeeritud ja kontrollitud ĂŒhilduvuse osas;Lisaks kĂ€itusaegadele tĂ€idab Deno platvorm ka pakihalduri rolli ja vĂ”imaldab koodis viidata moodulitele URL-i kaudu. NĂ€iteks saab mooduli laadimiseks koodis mĂ€rkida: „import * as log from "https://deno.land/std/log/mod.ts". VĂ€liste serverite kaudu laaditud failid URL-ist vahemĂ€lustatud. Moodulite versioonide sidumine toimub versiooninumbrite mĂ€rkimise teel URL-is, nĂ€iteks "https://unpkg.com/liltest@0.0.5/dist/liltest.js";
  • Kogu rakenduse skriptid saab ĂŒhendada ĂŒheks JavaScripti failiks.
  • Integreeritud on sĂ”ltuvuste kontrollimise sĂŒsteem (kĂ€sk 'deno info') ja koodi vormindamise utiliit (deno fmt);
  • Erinevused Node.js-st:

Deno ei kasuta paketihaldurit npm

  • ja see ei ole seotud hoidlate, samuti toimub moodulite aadressimine URL-i vĂ”i failitee kaudu ning neid mooduleid saab majutada mis tahes veebisaidil;
    Deno-s ei kasutata „package.json“-i moodulite mÀÀratlemiseks;
  • API erinevused, kĂ”ik asĂŒnkroonsed tegevused Deno-s tagastavad promise;
  • Deno nĂ”uab, et kĂ”ik vajalikud Ă”igused failide, vĂ”rgu ja keskkonnamuutujite jaoks oleksid selgelt mÀÀratletud;
  • KĂ”ik vead, millele ei ole mÀÀratud kĂ€sitlejat, viivad rakenduse tĂ€itmise lĂ”petamiseni;
  • Deno-s rakendatakse ECMAScripti moodulisĂŒsteemi ja ei toetata require();
  • Deno kasutab ECMAScripti moodulite sĂŒsteemi ning ei toeta require();
  • Deno sisseehitatud HTTP-server on kirjutatud TypeScriptis ja töötab kohalike TCP-sokkide peal, samas kui Node.js HTTP-server on kirjutatud C keeles ja pakub JavaScripti sidemeid. Deno arendajad keskendusid kogu TCP-sokkide kihi optimeerimisele ja ĂŒldisema liidese pakkumisele. Deno HTTP-server tagab madalama lĂ€bilaskevĂ”ime, kuid garanteerib etteennustatavad madalad latentsused. NĂ€iteks suutis Deno HTTP-serveriga ĂŒles ehitatud lihtne rakendus töödelda 25 000 pĂ€ringut sekundis maksimaalse latentsusega 1,3 millisekundit. Node.js puhul töötles sarnane rakendus 34 000 pĂ€ringut sekundis, kuid latentsus varieerus 2 ja 300 millisekundi vahel.
  • Deno ei ole ĂŒhtegi Node.js (NPM) paketti ĂŒhilduv, kuid areneb eraldi. kihiks Node.js standardteegiga ĂŒhilduvuse tagamiseks, vĂ”imaldades Deno-l kĂ€itada jĂ€rjest rohkem Node.js jaoks kirjutatud rakendusi.
  • Allikas: opennet.ru

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster