Die Deno-projek ontwikkel 'n veilige JavaScript-platform soortgelyk aan Node.js

Beskikbaar projek vrystelling Gee my 0.33, wat 'n Node.js-agtige platform bied vir selfstandige toepassingsuitvoering in JavaScript en TypeScript wat gebruik kan word om toepassings te laat loop sonder om aan 'n blaaier gekoppel te wees, soos om hanteerders te skep wat op die bediener loop. Deno gebruik 'n JavaScript-enjin V8, wat ook in Node.js en blaaiers gebruik word gebaseer op die Chromium-projek. Projek kode versprei deur onder MIT-lisensie. Die projek word ontwikkel deur Ryan Dahl (Ryan Dahl), skepper van die Node.js JavaScript-platform.

Een van die hoofdoelwitte van die skep van 'n nuwe looptyd vir JavaScript is om 'n veiliger omgewing te bied. Om sekuriteit te verbeter, is die V8-enjin in Rust geskryf, wat baie van die kwesbaarhede vermy wat voortspruit uit laevlakgeheuemanipulasie, soos navrye toegang, nulwyserverwysings en bufferoorskryding. Die platform word gebruik om versoeke in nie-blokkerende modus te verwerk Tokyo, ook in Rust geskryf. Tokio laat jou toe om hoëprestasie-toepassings te skep gebaseer op gebeurtenisgedrewe argitektuur, wat multi-threading ondersteun en netwerkversoeke in asinchroniese modus verwerk.

Die belangrikste kenmerke Deno:

  • Sekuriteit-georiënteerde verstek konfigurasie. Lêertoegang, netwerkvorming en toegang tot omgewingsveranderlikes is by verstek gedeaktiveer en moet uitdruklik geaktiveer word;
  • Ingeboude ondersteuning vir die TypeScript-taal bykomend tot JavaScript;
  • Looptyd kom in die vorm van 'n enkele selfstandige uitvoerbare lêer ("deno"). Dit is genoeg om toepassings met Deno te laat loop Aflaai vir sy platform een ​​uitvoerbare lêer, ongeveer 10 MB groot, wat geen eksterne afhanklikhede het nie en geen spesiale installasie op die stelsel vereis nie;
  • Wanneer u die program begin, sowel as om modules te laai, kan u URL-adressering gebruik. Byvoorbeeld, om die welcome.js-program te laat loop, kan jy die opdrag "deno https://deno.land/std/examples/welcome.js" gebruik. Kode van eksterne bronne word afgelaai en op die plaaslike stelsel in die kas gestoor, maar word nooit outomaties opgedateer nie (opdatering vereis dat die toepassing uitdruklik met die "--herlaai"-vlag uitgevoer word);
  • Doeltreffende verwerking van netwerkversoeke via HTTP in toepassings; die platform is ontwerp vir die skep van hoëprestasie-netwerktoepassings;
  • Die vermoë om universele webtoepassings te skep wat beide in Deno en in 'n gewone webblaaier uitgevoer kan word;
  • Benewens runtime, dien die Deno-platform ook as 'n pakketbestuurder en laat u toegang tot modules deur URL binne die kode. Byvoorbeeld, om 'n module te laai, kan jy in die kode "import * as log from" https://deno.land/std/log/mod.ts spesifiseer. Lêers wat vanaf eksterne bedieners via URL afgelaai word, word gekas. Binding aan moduleweergawes word bepaal deur weergawenommers binne die URL te spesifiseer, byvoorbeeld "https://unpkg.com/[e-pos beskerm]/dist/liltest.js";
  • Die struktuur bevat 'n geïntegreerde afhanklikheidsinspeksiestelsel (die "deno info"-opdrag) en 'n nutsprogram vir kodeformatering (deno fmt).
  • Vir toepassingsontwikkelaars voorgestelde 'n stel standaardmodules wat bykomende oudit- en versoenbaarheidstoetse ondergaan het;
  • Alle toepassingsskrifte kan in een JavaScript-lêer gekombineer word.

Verskille van Node.js:

  • Deno gebruik nie npm-pakketbestuurder nie
    en is nie gekoppel aan bewaarplekke nie, modules word aangespreek via 'n URL of deur 'n lêerpad, en die modules self kan op enige webwerf geplaas word;

  • Deno gebruik nie "package.json" om modules te definieer nie;
  • API verskil, alle asynchrone aksies in Deno gee 'n belofte terug;
  • Deno vereis eksplisiete definisie van alle nodige toestemmings vir lêers, netwerk- en omgewingsveranderlikes;
  • Alle foute wat nie met hanteerders verskaf word nie, lei tot die beëindiging van die aansoek;
  • Deno gebruik die ECMAScript-modulestelsel en ondersteun nie require().

Bron: opennet.ru

Voeg 'n opmerking