Доступна платформа Deno 2.0, развиваемая автором Node.js

Välja on antud Deno 2.0 platvorm, mis on mõeldud eraldiseisvate serverirakenduste käitamiseks JavaScripti ja TypeScripti keeltes, kasutades Chromiumi põhiste brauserite V8 mootorit. Deno projekti arendab Ryan Dahl, Node.js looja, eesmärgiga pakkuda turvalisemat keskkonda ja kõrvaldada Node.js arhitektuuris tehtud kontseptuaalsed vead. Turvalisuse suurendamiseks on V8 mootori ümber kirjutatud Rust keeles ning taotluste töötlemiseks kasutatakse mittesünkrontset Tokio platvormi. Projekti kood on litsentseeritud MIT litsentsiga. Kogumikud on valmis Linuxile, Windowsile ja macOS-ile.

Uue haru ettevalmistamisel keskenduti peamiselt ühilduvusele vana JavaScripti infrastruktuuriga ja JavaScripti projektide toetamise ulatuse laiendamisele ilma turvalisuse tagamisele kahju tekitamata. Muudatused hõlmavad:

  • Tagatud on tagurpidi ühilduvus Node.js ja npm-iga, mis võimaldab käitada modifitseerimata rakendusi, mis on loodud Node.js-ile. Node.js-i tugi võimaldab samuti järk-järgult migreerida olemasolevaid projekte Node.js-ilt Deno kasutamisele või lisada Deno projektidesse NPM sõltuvusi, määrates pakettide importimisel „npm:” spetsifikaatori deno.json-is.
  • Sisseehitatud tugi package.json failile ja node_modules kataloogile, mida kasutatakse Node.js-is.
  • Toetatakse privaate NPM-reposiitide, mis on määratletud „.npmrc” failide kaudu.
  • Toetatakse populaarsed JavaScripti raamistikud, nagu Next.js, Astro, Remix, Angular, SvelteKit ja QwikCity.
  • Toetatakse npm tööruume (workspace) ja mono-reposiitide (monorepo) eraldi sõltuvuste töötlemist.
  • Uued pakettide halduskäsud: „deno install” sõltuvuste installimiseks, „deno add” pakettide lisamiseks package.json või deno.json, „deno remove” pakettide eemaldamiseks. Täheldatakse, et „deno install” töötab umbes 15% kiiremini kui npm, kui pakette ei ole vahemälus, ja 90% kiiremini, kui pakett on vahemälus (toetatakse nii node_modules kui ka oma globaalset vahemälu).
  • Standardne teek on stabiliseeritud.
  • Käimas on pikaajaline toetus (LTS).
  • Esitatud on JSR — JavaScripti ja TypeScripti raamatukogude reposiit, mida saab kasutada erinevates JavaScripti käituskeskkondades.
  • „deno fmt” käsus on nüüd võimalik vormindada sisu HTML, CSS ja YAML formaatides.
  • Käsku „deno lint“ on lisatud Node.js spetsiifiliste reeglite ja paranduste tugi.
  • Käsk „deno test“ toetab testide käitamist, mis on loodud kasutades node:test.
  • Käsk „deno task“ toetab skriptide käitamist package.json kaudu.
  • Käsk „deno compile“ võimaldab koodi allkirjastada digitaalsega.
  • Käsk „deno serve“ rakendab HTTP-serverite operatsioonide paralleelset töötlemist mitme CPU tuuma abil.
  • Käsk „deno coverage“ toetab aruanne salvestamist HTML formaadis.
  • Tegemist on jõudluse optimeerimisega.
    Доступна платформа Deno 2.0, развиваемая автором Node.js

Deno peamised omadused:

  • 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 tugi TypeScripti keelele väärib tähelepanu lisaks JavaScriptile. Tüüpide kontrollimiseks ja JavaScripti genereerimiseks kasutatakse sisemist TypeScripti kompilaatorit, mis võib mõnevõrra aeglustada jõudlust võrreldes JavaScripti tõlgendamisega V8-s.
  • Käituskeskkond on pakendatud ühte iseseissevasse käivitatavasse faili („deno“). Deno abil rakenduste käitamiseks piisab oma platvormile ühe käivitatava faili allalaadimisest, mille suurus on umbes 40 MB, millel pole väliseid sõltuvusi ning mis ei vaja spetsiaalset installimist süsteemi. Deno ei ole monoliitne rakendus, vaid kogu crate-pakettide 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 olemasolu, mille kasutamine ei nõua sõltumatute sõltuvuste sidumist. Standardkollektsiooni moodulid on läbinud täiendava auditi ja ühilduvuse kontrolli;
  • Lisaks runtime'ile täidab Deno platvorm ka paketihalduri rolli ja võimaldab koodis viidata moodulitele URL-i kaudu. Näiteks mooduli laadimiseks võib koodis kasutada "import * as log from 'https://deno.land/std/log/mod.ts'. Välisest serverid URL-ist alla laaditud failid vahetatakse mahukaustades. Moodulite versioonide sidumine määratakse URL-is versiooninumbrite näidete kaudu, näiteks 'https://unpkg.com/liltest@0.0.5/dist/liltest.js';
  • Suunitlus veebistandardite kasutamiseks, toetades Promise'i, fetch'i ja ECMAScript mooduleid.
  • Ühilduvus NPM hoidlas olevate ja Node.js platvormile loodud pakettidega.
  • Integreeritud on sõltuvuste kontrollimise süsteem (käsk 'deno info') ja koodi vormindamise utiliit (deno fmt);
  • Kõik rakenduse skriptid saavad olla kokku ühendatud ühte JavaScripti faili.

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