Deno JavaScript pallurinn er samhæfur við NPM einingar

Deno 1.28 hefur verið gefin út, rammi fyrir sandkassa JavaScript og TypeScript forrit sem hægt er að nota til að búa til meðhöndlara á miðlarahlið. Vettvangurinn er þróaður af Ryan Dahl, skapara Node.js. Eins og Node.js notar Deno V8 JavaScript vélina, sem einnig er notuð í Chromium vöfrum. Á sama tíma er Deno ekki gaffal af Node.js, heldur er nýtt verkefni búið til frá grunni. Verkefniskóðanum er dreift undir MIT leyfinu. Byggingar eru útbúnar fyrir Linux, Windows og macOS.

Deno verkefnið var búið til til að veita notendum öruggara umhverfi og útrýma hugmyndavillum í Node.js arkitektúrnum. Til að bæta öryggi er V8 vélin skrifuð í Rust, sem forðast marga af þeim veikleikum sem stafa af minnisstjórnun á lágu stigi. Til að vinna úr beiðnum í ólokandi ham er Tokio vettvangurinn, einnig skrifaður í Rust, notaður. Tokio gerir þér kleift að búa til afkastamikil forrit byggð á atburðadrifnum arkitektúr, sem styður fjölþráða og vinnslu netbeiðna í ósamstilltum ham.

Lykilbreyting í nýju útgáfunni er stöðugleiki á eindrægni við pakka sem hýstir eru í NPM geymslunni, sem gerir Deno kleift að nota meira en 1.3 milljónir eininga sem eru búnar til fyrir Node.js vettvanginn. Til dæmis geta Deno-undirstaða forrit nú notað viðvarandi gagnaaðgangseiningar eins og Prisma, Mongoose og MySQL, auk framenda ramma eins og React og Vue. Sumar NPM einingar eru enn ósamrýmanlegar Deno, til dæmis vegna bindinga við Node.js-sértæka umhverfisþætti eins og package.json skrána. Það er heldur ekki enn hægt að nota "deno compile" skipunina með NPM einingum. Framtíðarútgáfur ætla að taka á þessum ósamrýmanleika og takmörkunum.

Stuðningur við áður notaða ECMAScript einingakerfi Deno og vef API líkan er haldið á sama stigi og kunnuglegt vefslóðakerfi Deno er notað til að flytja inn NPM einingar. Til að fá aðgang að NPM einingar er sérstakt vefslóð forskeytið „npm:“ sem hægt er að nota á sama hátt og venjulegar Deno einingar. Til dæmis, til að flytja inn NPM einingu, geturðu tilgreint 'innflutning { krít } frá "npm:chalk@5";', og til að keyra NPM skriftu frá skipanalínunni - "deno run --allow-env --allow -lesið npm:create- vite-extra.

Notkun NPM pakka í Deno er mun auðveldari en í Node.js, þar sem engin þörf er á að setja upp einingar fyrirfram (einingar eru settar upp þegar forritið er fyrst opnað), það er engin package.json skrá og það er engin sjálfgefin node_modules möppu (einingar eru í skyndiminni í sameiginlegri skrá, en það er hægt að skila gömlu hegðuninni með því að nota "--node-modules-dir" valkostinn).

NPM-undirstaða forrit halda getu til að nota aðgangsstýringu, einangrun og öryggisviðkvæma háþróaða eiginleika Deno. Til að vinna gegn árásum með vafasömum ósjálfstæði, lokar Deno sjálfgefið fyrir allar tilraunir til að fá aðgang að kerfinu fyrir ósjálfstæði og sýnir viðvörun um vandamál sem uppgötvast. Til dæmis, þegar eining reynir að fá skrifaðgang að /usr/bin/, mun staðfestingarbeiðni fyrir þessa aðgerð birtast: deno run npm:install-malware ⚠️ ┌ Deno biður um skrifaðgang að /usr/bin/. ├ Beðið um af `install-malware` ├ Keyrðu aftur með --allow-write til að komast framhjá þessari kvaðningu. └ Leyfa? [y/n] (y = já, leyfa; n = nei, neita) >

Umbætur sem ekki eru NPM í nýju útgáfunni fela í sér að uppfæra V8 vélina til að gefa út 10.9, sjálfvirka greiningu á skrám með læsingum, stöðugleika á Deno.bench(), Deno.gid(), Deno.networkInterfaces(), Deno.systemMemoryInfo() og Deno API. .uid(), sem bætir við nýjum óstöðugum API Deno.Command() til að keyra skipanir (alhliða skipti fyrir Deno.spawn, Deno.spawnSync og Deno.spawnChild).

Helstu eiginleikar Deno:

  • Öryggismiðuð sjálfgefna stilling. Skráaaðgangur, netkerfi og aðgangur að umhverfisbreytum eru sjálfgefið óvirkt og verður að vera sérstaklega virkt. Forrit keyra sjálfgefið í einangruðu sandkassaumhverfi og geta ekki fengið aðgang að kerfisgetu án þess að veita skýrar heimildir;
  • Innbyggður stuðningur fyrir TypeScript umfram JavaScript. Fyrir tegundaskoðun og JavaScript kynslóð er staðall TypeScript þýðandinn notaður, sem leiðir til lækkunar á frammistöðu miðað við JavaScript þáttun í V8;
  • Runtime kemur í formi einnar sjálfstætt keyrsluskrár ("deno"). Til að keyra forrit með Deno þarftu bara að hlaða niður einni keyrsluskrá fyrir pallinn þinn, um 30 MB að stærð, sem hefur enga ytri ósjálfstæði og krefst ekki sérstakrar uppsetningar á kerfinu. Þar að auki er deno ekki einhæft forrit, heldur er safn Ryð rimlakassa (deno_core, rusty_v8), sem hægt er að nota sérstaklega;
  • Þegar forritið er ræst, sem og til að hlaða einingar, geturðu notað vefslóð. Til dæmis, til að keyra welcome.js forritið, geturðu notað skipunina „deno https://deno.land/std/examples/welcome.js“. Kóði frá utanaðkomandi auðlindum er hlaðið niður og í skyndiminni á staðbundnu kerfi, en er aldrei sjálfkrafa uppfærður (uppfærsla krefst þess að forritið sé keyrt með „--endurhlaða“ fánanum);
  • Skilvirk vinnsla netbeiðna í gegnum HTTP í forritum; vettvangurinn er hannaður til að búa til afkastamikil netforrit;
  • Hæfni til að búa til alhliða vefforrit sem hægt er að keyra bæði í Deno og í venjulegum vafra;
  • Tilvist staðlaðs setts eininga, notkun þeirra krefst ekki bindingar við ytri ósjálfstæði. Einingar úr staðalsafninu hafa gengist undir viðbótarúttekt og samhæfnipróf;
  • Til viðbótar við keyrslutíma virkar Deno pallurinn einnig sem pakkastjóri og gerir þér kleift að fá aðgang að einingum eftir slóð inni í kóðanum. Til dæmis, til að hlaða einingu, geturðu tilgreint í kóðanum „innflutningur * sem log frá „https://deno.land/std/log/mod.ts“. Skrár sem hlaðið er niður af ytri netþjónum í gegnum vefslóð eru í skyndiminni. Binding við útgáfur eininga er ákvörðuð með því að tilgreina útgáfunúmer inni í vefslóðinni, til dæmis „https://unpkg.com/[netvarið]/dist/liltest.js";
  • Uppbyggingin inniheldur samþætt skoðunarkerfi fyrir ósjálfstæði („deno info“ skipunin) og tól fyrir kóðasnið (deno fmt);
  • Hægt er að sameina öll forritaforskriftir í eina JavaScript skrá.

Heimild: opennet.ru

Bæta við athugasemd