Il-proġett Deno jiżviluppa pjattaforma JavaScript sigura simili għal Node.js

Disponibbli rilaxx tal-proġett Agħtini 0.33, li toffri pjattaforma simili għal Node.js għal eżekuzzjoni ta' applikazzjoni waħedha f'JavaScript u TypeScript li tista' tintuża biex tħaddem applikazzjonijiet mingħajr ma tkun marbuta ma' browser, bħalma huma l-ħolqien ta' handlers li jaħdmu fuq is-server. Deno juża magna JavaScript V8, li tintuża wkoll f'Node.js u browsers ibbażati fuq il-proġett Chromium. Kodiċi tal-proġett imqassma minn taħt liċenzja MIT. Il-proġett qed jiġi żviluppat minn Ryan Dahl (Ryan Dahl), kreatur tal-pjattaforma JavaScript Node.js.

Wieħed mill-għanijiet ewlenin tal-ħolqien ta 'runtime ġdid għal JavaScript huwa li jipprovdi ambjent aktar sigur. Biex tittejjeb is-sigurtà, il-magna V8 hija miktuba b'Rut, li tevita ħafna mill-vulnerabbiltajiet li jinqalgħu minn manipulazzjoni ta 'memorja ta' livell baxx, bħal aċċess bla ħlas wara, dereferences null pointer, u buffer overruns. Il-pjattaforma tintuża biex tipproċessa t-talbiet fil-mod li ma jimblokkax Tokyo, miktub ukoll bir-Rut. Tokio jippermettilek toħloq applikazzjonijiet ta 'prestazzjoni għolja bbażati fuq arkitettura mmexxija mill-avvenimenti, li tappoġġja talbiet ta' netwerk multi-threading u proċessar f'modalità asinkronika.

Il-prinċipali Karatteristiċi Deno:

  • Konfigurazzjoni default orjentata lejn is-sigurtà. L-aċċess għall-fajls, in-netwerking, u l-aċċess għall-varjabbli ambjentali huma diżattivati ​​b'mod awtomatiku u għandhom ikunu attivati ​​b'mod espliċitu;
  • Appoġġ integrat għal-lingwa TypeScript minbarra JavaScript;
  • Il-ħin tar-runtime jiġi fil-forma ta’ fajl eżekutibbli waħdu wieħed (“deno”). Biex tħaddem applikazzjonijiet bl-użu ta 'Deno huwa biżżejjed niżżel għall-pjattaforma tagħha fajl eżekutibbli wieħed, madwar 10 MB fid-daqs, li m'għandux dipendenzi esterni u ma jeħtieġ ebda installazzjoni speċjali fuq is-sistema;
  • Meta tibda l-programm, kif ukoll għat-tagħbija tal-moduli, tista 'tuża l-indirizzar tal-URL. Pereżempju, biex tmexxi l-programm welcome.js, tista 'tuża l-kmand "deno https://deno.land/std/examples/welcome.js". Il-kodiċi minn riżorsi esterni jitniżżlu u jinżammu fil-cache fis-sistema lokali, iżda qatt ma jiġi aġġornat awtomatikament (l-aġġornament jeħtieġ li l-applikazzjoni titħaddem b'mod espliċitu bil-marka "--reload");
  • Ipproċessar effiċjenti ta 'talbiet tan-netwerk permezz ta' HTTP fl-applikazzjonijiet; il-pjattaforma hija mfassla biex toħloq applikazzjonijiet ta 'netwerk ta' prestazzjoni għolja;
  • Il-ħila li toħloq applikazzjonijiet web universali li jistgħu jiġu eżegwiti kemm f'Deno kif ukoll f'web browser regolari;
  • Minbarra l-runtime, il-pjattaforma Deno taġixxi wkoll bħala maniġer tal-pakketti u tippermettilek taċċessa moduli permezz tal-URL ġewwa l-kodiċi. Per eżempju, biex tagħbija modulu, tista 'tispeċifika fil-kodiċi "importazzjoni * bħala log minn "https://deno.land/std/log/mod.ts". Fajls imniżżla minn servers esterni permezz tal-URL huma fil-cache. L-irbit mal-verżjonijiet tal-moduli huwa determinat billi jiġu speċifikati n-numri tal-verżjoni ġewwa l-URL, pereżempju, “https://unpkg.com/[protett bl-email]/dist/liltest.js";
  • L-istruttura tinkludi sistema integrata ta 'spezzjoni tad-dipendenza (il-kmand "deno info") u utilità għall-ifformattjar tal-kodiċi (deno fmt).
  • Għall-iżviluppaturi tal-applikazzjonijiet issuġġerit sett ta' moduli standard li għaddew minn verifika addizzjonali u ttestjar ta' kompatibilità;
  • L-iskripts tal-applikazzjoni kollha jistgħu jingħaqdu f'fajl wieħed JavaScript.

Differenzi minn Node.js:

  • Deno ma jużax npm package manager
    u mhux marbut ma' repożitorji, il-moduli huma indirizzati permezz ta' URL jew permezz ta' mogħdija tal-fajl, u l-moduli nfushom jistgħu jitqiegħdu fuq kwalunkwe websajt;

  • Deno ma jużax "package.json" biex jiddefinixxi l-moduli;
  • differenza API, l-azzjonijiet asinkroniċi kollha f'Deno jirritornaw wegħda;
  • Deno jeħtieġ definizzjoni espliċita tal-permessi kollha meħtieġa għall-fajls, netwerks u varjabbli ambjentali;
  • L-iżbalji kollha li mhumiex ipprovduti bi handlers iwasslu għat-terminazzjoni tal-applikazzjoni;
  • Deno juża s-sistema tal-modulu ECMAScript u ma jappoġġjax require().

Sors: opennet.ru

Żid kumment