Mae prosiect Deno yn datblygu platfform JavaScript diogel tebyg i Node.js

Ar gael rhyddhau prosiect Rhowch 0.33 i mi, sy'n cynnig platfform tebyg i Node.js ar gyfer gweithredu cymwysiadau annibynnol yn JavaScript a TypeScript y gellir eu defnyddio i redeg cymwysiadau heb fod ynghlwm wrth borwr, megis creu trinwyr sy'n rhedeg ar y gweinydd. Mae Deno yn defnyddio injan JavaScript V8, a ddefnyddir hefyd yn Node.js a phorwyr yn seiliedig ar y prosiect Chromium. Cod prosiect dosbarthu gan dan drwydded MIT. Mae'r prosiect yn cael ei ddatblygu gan Ryan Dahl (Ryan Dahl), crëwr y llwyfan JavaScript Node.js.

Un o brif nodau creu amser rhedeg newydd ar gyfer JavaScript yw darparu amgylchedd mwy diogel. Er mwyn gwella diogelwch, mae'r injan V8 wedi'i hysgrifennu yn Rust, sy'n osgoi llawer o'r gwendidau sy'n deillio o drin cof lefel isel, megis mynediad heb ddim ar ôl, cyfeiriadau pwyntydd null, a gor-redeg byffer. Defnyddir y platfform i brosesu ceisiadau yn y modd di-flocio Tokio, a ysgrifennwyd hefyd yn Rust. Mae Tokio yn caniatáu ichi greu cymwysiadau perfformiad uchel yn seiliedig ar bensaernïaeth sy'n cael ei gyrru gan ddigwyddiadau, gan gefnogi ceisiadau rhwydwaith aml-edafu a phrosesu mewn modd asyncronig.

Y prif Nodweddion Deno:

  • Cyfluniad rhagosodedig sy'n canolbwyntio ar ddiogelwch. Mae mynediad i ffeil, rhwydweithio, a mynediad at newidynnau amgylchedd wedi'u hanalluogi yn ddiofyn a rhaid eu galluogi'n benodol;
  • Cefnogaeth fewnol i'r iaith TypeScript yn ogystal â JavaScript;
  • Daw amser rhedeg ar ffurf un ffeil weithredadwy hunangynhwysol (“deno”). I redeg cymwysiadau gan ddefnyddio Deno mae'n ddigon llwytho i fyny ar gyfer ei lwyfan un ffeil gweithredadwy, tua 10 MB o faint, nad oes ganddi unrhyw ddibyniaethau allanol ac nad oes angen unrhyw osodiad arbennig ar y system;
  • Wrth gychwyn y rhaglen, yn ogystal ag ar gyfer llwytho modiwlau, gallwch ddefnyddio cyfeiriadau URL. Er enghraifft, i redeg y rhaglen welcome.js, gallwch ddefnyddio'r gorchymyn “deno https://deno.land/std/examples/welcome.js”. Mae cod o adnoddau allanol yn cael ei lawrlwytho a'i storio ar y system leol, ond nid yw byth yn cael ei ddiweddaru'n awtomatig (mae diweddaru yn gofyn am redeg y rhaglen yn benodol gyda'r faner "--reload");
  • Prosesu ceisiadau rhwydwaith yn effeithlon trwy HTTP mewn cymwysiadau; mae'r platfform wedi'i gynllunio ar gyfer creu cymwysiadau rhwydwaith perfformiad uchel;
  • Y gallu i greu cymwysiadau gwe cyffredinol y gellir eu gweithredu yn Deno ac mewn porwr gwe rheolaidd;
  • Yn ogystal ag amser rhedeg, mae platfform Deno hefyd yn gweithredu fel rheolwr pecyn ac yn caniatáu ichi gyrchu modiwlau trwy URL y tu mewn i'r cod. Er enghraifft, i lwytho modiwl, gallwch nodi yn y cod “mewnforio * fel log o “https://deno.land/std/log/mod.ts”. Mae ffeiliau sy'n cael eu lawrlwytho o weinyddion allanol trwy URL yn cael eu storio. Pennir rhwymo i fersiynau modiwl trwy nodi rhifau fersiwn y tu mewn i'r URL, er enghraifft, “ https://unpkg.com/[e-bost wedi'i warchod]/dist/liltest.js";
  • Mae'r strwythur yn cynnwys system arolygu dibyniaeth integredig (y gorchymyn “deno info”) a chyfleustodau ar gyfer fformatio cod (deno fmt).
  • Ar gyfer datblygwyr ceisiadau arfaethedig set o fodiwlau safonol sydd wedi cael archwiliad ychwanegol a phrofion cydnawsedd;
  • Gellir cyfuno holl sgriptiau cais yn un ffeil JavaScript.

Gwahaniaethau o Node.js:

  • Nid yw Deno yn defnyddio rheolwr pecyn npm
    ac nad yw'n gysylltiedig ag ystorfeydd, rhoddir sylw i fodiwlau trwy URL neu lwybr ffeil, a gellir gosod y modiwlau eu hunain ar unrhyw wefan;

  • Nid yw Deno yn defnyddio "package.json" i ddiffinio modiwlau;
  • Gwahaniaeth API, mae pob gweithred asyncronig yn Deno yn dychwelyd addewid;
  • Mae Deno yn gofyn am ddiffiniad clir o'r holl ganiatadau angenrheidiol ar gyfer ffeiliau, rhwydwaith ac amgylchedd newidynnau;
  • Mae pob gwall na ddarperir gyda thrinwyr yn arwain at derfynu'r cais;
  • Mae Deno yn defnyddio system modiwlau ECMAScript ac nid yw'n cefnogi gofyniad ().

Ffynhonnell: opennet.ru

Ychwanegu sylw