Mradi wa Deno unatengeneza jukwaa salama la JavaScript sawa na Node.js

Inapatikana kutolewa kwa mradi Nipe 0.33, ambayo hutoa jukwaa linalofanana na la Node.js la utekelezaji wa programu ya kusimama pekee katika JavaScript na TypeScript ambayo inaweza kutumika kuendesha programu bila kuunganishwa na kivinjari, kama vile kuunda vidhibiti vinavyotumika kwenye seva. Deno hutumia injini ya JavaScript V8, ambayo pia inatumika katika Node.js na vivinjari kulingana na mradi wa Chromium. Msimbo wa mradi kusambazwa na chini ya leseni ya MIT. Mradi huo unaendelezwa na Ryan Dahl (Ryan Dahl), muundaji wa jukwaa la JavaScript la Node.js.

Mojawapo ya malengo makuu ya kuunda wakati mpya wa kutekeleza JavaScript ni kutoa mazingira salama zaidi. Ili kuboresha usalama, injini ya V8 imeandikwa kwa Rust, ambayo huepuka udhaifu mwingi unaotokana na upotoshaji wa kumbukumbu wa kiwango cha chini, kama vile ufikiaji baada ya bila malipo, vielekezo visivyofaa vya vielekezi, na ziada ya bafa. Jukwaa linatumika kushughulikia maombi katika hali ya kutozuia Tokyo, pia imeandikwa katika Rust. Tokio hukuruhusu kuunda programu zenye utendakazi wa hali ya juu kulingana na usanifu unaoendeshwa na hafla, kusaidia utiririshaji na usindikaji maombi ya mtandao katika hali ya asynchronous.

kuu makala Deno:

  • Usanidi chaguo-msingi unaolenga usalama. Ufikiaji wa faili, mtandao, na ufikiaji wa anuwai za mazingira huzimwa kwa chaguo-msingi na lazima kuwezeshwa kwa uwazi;
  • Usaidizi uliojengewa ndani wa lugha ya TypeScript pamoja na JavaScript;
  • Runtime huja katika mfumo wa faili moja inayoweza kutekelezwa inayojitosheleza ("deno"). Kuendesha programu kwa kutumia Deno inatosha kupakua kwa jukwaa lake faili moja inayoweza kutekelezwa, kuhusu ukubwa wa MB 10, ambayo haina tegemezi za nje na hauhitaji ufungaji maalum kwenye mfumo;
  • Wakati wa kuanza programu, na pia kwa kupakia moduli, unaweza kutumia anwani ya URL. Kwa mfano, ili kuendesha programu ya welcome.js, unaweza kutumia amri "deno https://deno.land/std/examples/welcome.js". Msimbo kutoka kwa rasilimali za nje hupakuliwa na kuakibishwa kwenye mfumo wa ndani, lakini hausasishwi kiotomatiki (kusasisha kunahitaji kuendesha programu kwa uwazi na bendera ya "--reload");
  • Usindikaji bora wa maombi ya mtandao kupitia HTTP katika programu, jukwaa limeundwa kwa ajili ya kuunda programu za mtandao zenye utendaji wa juu;
  • Uwezo wa kuunda programu za wavuti za ulimwengu wote ambazo zinaweza kutekelezwa katika Deno na katika kivinjari cha kawaida cha wavuti;
  • Kando na wakati wa utekelezaji, jukwaa la Deno pia hufanya kazi kama kidhibiti kifurushi na hukuruhusu kufikia moduli kwa kutumia URL ndani ya msimbo. Kwa mfano, ili kupakia moduli, unaweza kubainisha katika msimbo "leta * kama kumbukumbu kutoka "https://deno.land/std/log/mod.ts". Faili zilizopakuliwa kutoka kwa seva za nje kupitia URL zimehifadhiwa. Kushurutishwa kwa matoleo ya sehemu hubainishwa kwa kubainisha nambari za matoleo ndani ya URL, kwa mfano, β€œhttps://unpkg.com/[barua pepe inalindwa]/dist/liltest.js";
  • Muundo unajumuisha mfumo jumuishi wa ukaguzi wa utegemezi (amri ya "deno info") na matumizi ya uundaji wa msimbo (deno fmt).
  • Kwa watengenezaji wa programu iliyopendekezwa seti ya moduli za kawaida ambazo zimepitia ukaguzi wa ziada na upimaji wa utangamano;
  • Hati zote za programu zinaweza kuunganishwa kuwa faili moja ya JavaScript.

Tofauti kutoka Node.js:

  • Deno haitumii msimamizi wa kifurushi cha npm
    na si amefungwa kwa hazina, modules ni kushughulikiwa kupitia URL au kwa njia ya faili, na modules wenyewe inaweza kuwekwa kwenye tovuti yoyote;

  • Deno haitumii "package.json" kufafanua moduli;
  • Tofauti ya API, vitendo vyote vya asynchronous katika Deno vinarudisha ahadi;
  • Deno inahitaji ufafanuzi wa wazi wa ruhusa zote muhimu kwa faili, mtandao na vigezo vya mazingira;
  • Makosa yote ambayo hayajatolewa na washughulikiaji husababisha kusitishwa kwa maombi;
  • Deno hutumia mfumo wa moduli ya ECMAScript na haiauni required().

Chanzo: opennet.ru

Kuongeza maoni