It Deno-projekt ûntwikkelet in feilich JavaSkript-platfoarm fergelykber mei Node.js

Beskikber projekt release Jou my 0.33, dy't in Node.js-like platfoarm biedt foar selsstannige útfiering fan applikaasjes yn JavaSkript en TypeScript dat kin brûkt wurde om applikaasjes út te fieren sûnder te wêzen bûn oan in browser, lykas it meitsjen fan handlers dy't op de tsjinner rinne. Deno brûkt in JavaScript-motor V8, dy't ek brûkt wurdt yn Node.js en browsers basearre op it Chromium-projekt. Projektkoade ferspraat troch ûnder MIT lisinsje. It projekt wurdt ûntwikkele troch Ryan Dahl (Ryan Dahl), makker fan it Node.js JavaScript-platfoarm.

Ien fan 'e haaddoelen fan it meitsjen fan in nije runtime foar JavaScript is om in feiliger omjouwing te leverjen. Om de feiligens te ferbetterjen, is de V8-motor skreaun yn Rust, dy't in protte fan 'e kwetsberens foarkomt dy't ûntsteane út manipulaasje fan leech-nivo ûnthâld, lykas nei-frije tagong, nul-oanwizer dereferences, en buffer-oerrin. It platfoarm wurdt brûkt om fersiken te ferwurkjen yn net-blokkearjende modus Tokio, ek skreaun yn Rust. Tokio lit jo applikaasjes mei hege prestaasjes meitsje op basis fan evenemint-oandreaune arsjitektuer, stipet multi-threading en ferwurkjen fan netwurkoanfragen yn asynchrone modus.

haad Eigenskippen Deno:

  • Feiligens-rjochte standert konfiguraasje. Triemtagong, netwurking en tagong ta omjouwingsfariabelen binne standert útskeakele en moatte eksplisyt ynskeakele wurde;
  • Ynboude stipe foar de TypeScript-taal neist JavaScript;
  • Runtime komt yn 'e foarm fan in inkeld selsstannich útfierber bestân ("deno"). Om applikaasjes út te fieren mei Deno is it genôch opladen foar har platfoarm ien útfierbere triem, sawat 10 MB yn grutte, dy't gjin eksterne ôfhinklikens hat en gjin spesjale ynstallaasje op it systeem fereasket;
  • By it starten fan it programma, lykas by it laden fan modules, kinne jo URL-adressering brûke. Om bygelyks it programma welcome.js út te fieren, kinne jo it kommando brûke "deno https://deno.land/std/examples/welcome.js". Koade fan eksterne boarnen wurdt ynladen en cache op it lokale systeem, mar wurdt nea automatysk bywurke (bywurkjen fereasket eksplisyt it útfieren fan de applikaasje mei de "--reload" flagge);
  • Effisjinte ferwurking fan netwurkoanfragen fia HTTP yn applikaasjes; it platfoarm is ûntworpen foar it meitsjen fan hege prestaasjes netwurkapplikaasjes;
  • De mooglikheid om universele webapplikaasjes te meitsjen dy't sawol yn Deno as yn in gewoane webblêder kinne wurde útfierd;
  • Neist runtime fungearret it Deno-platfoarm ek as pakketbehearder en lit jo tagong krije ta modules troch URL binnen de koade. Bygelyks, om in module te laden, kinne jo yn 'e koade "ymportearje * as log fan" https://deno.land/std/log/mod.ts oantsjutte. Triemmen ynladen fan eksterne tsjinners fia URL binne yn it cache. Bining oan moduleferzjes wurdt bepaald troch it opjaan fan ferzjenûmers binnen de URL, bygelyks "https://unpkg.com/[e-post beskerme]/dist/liltest.js";
  • De struktuer omfettet in yntegreare ôfhinklikheidsynspeksjesysteem (it kommando "deno info") en in nut foar koade opmaak (deno fmt).
  • Foar applikaasjeûntwikkelders foarsteld in set fan standert modules dy't hawwe ûndergien ekstra kontrôle en komptabiliteit testen;
  • Alle tapassingsskripts kinne wurde kombinearre yn ien JavaScript-bestân.

Ferskillen fan Node.js:

  • Deno brûkt gjin npm-pakketbehearder
    en is net bûn oan repositories, modules wurde oanpakt fia in URL of troch in triem paad, en de modules sels kinne wurde pleatst op eltse webside;

  • Deno brûkt gjin "package.json" om modules te definiearjen;
  • API ferskil, alle asynchrone aksjes yn Deno jout in belofte;
  • Deno fereasket eksplisite definysje fan alle nedige tagongsrjochten foar bestannen, netwurk- en omjouwingsfariabelen;
  • Alle flaters dy't net foarsjoen fan handlers liede ta it beëinigjen fan de applikaasje;
  • Deno brûkt de ECMAScript module systeem en net stypje require ().

Boarne: opennet.ru

Add a comment