Deno-projekti kehittää turvallista JavaScript-alustaa, joka on samanlainen kuin Node.js

Saatavilla projektin julkaisu Anna minulle 0.33, joka tarjoaa Node.js-tyyppisen alustan itsenäiseen sovellusten suorittamiseen JavaScriptissä ja TypeScriptissä, jota voidaan käyttää sovellusten suorittamiseen ilman, että se on sidottu selaimeen, kuten palvelimella toimivien käsittelijöiden luomiseen. Deno käyttää JavaScript-moottoria V8, jota käytetään myös Node.js:ssä ja Chromium-projektiin perustuvissa selaimissa. Projektin koodi jakelija MIT-lisenssillä. Hanketta kehittää Ryan Dahl (Ryan Dahl), Node.js JavaScript-alustan luoja.

Yksi JavaScriptin uuden suoritusajan luomisen päätavoitteista on tarjota turvallisempi ympäristö. Turvallisuuden parantamiseksi V8-moottori on kirjoitettu Rust-kielellä, mikä välttää monet haavoittuvuudet, jotka johtuvat matalan tason muistin käsittelystä, kuten after-free-käyttö, nollaosoittimen viittaukset ja puskurin ylitykset. Alustaa käytetään pyyntöjen käsittelemiseen estotilassa Tokio, kirjoitettu myös ruosteella. Tokio antaa sinun luoda korkean suorituskyvyn sovelluksia, jotka perustuvat tapahtumapohjaiseen arkkitehtuuriin, jotka tukevat monisäikeistä ja prosessoivia verkkopyyntöjä asynkronisessa tilassa.

Pääasiallinen ominaisuudet Deno:

  • Turvallisuussuuntautunut oletuskokoonpano. Tiedostojen käyttö, verkkoyhteys ja pääsy ympäristömuuttujiin on oletusarvoisesti poistettu käytöstä, ja ne on otettava erikseen käyttöön.
  • Sisäänrakennettu tuki TypeScript-kielelle JavaScriptin lisäksi;
  • Suoritusaika tulee yhden itsenäisen suoritettavan tiedoston ("deno") muodossa. Sovellusten suorittaminen Denon avulla riittää download alustaa varten yksi suoritettava tiedosto, kooltaan noin 10 Mt, jolla ei ole ulkoisia riippuvuuksia ja joka ei vaadi erityistä asennusta järjestelmään;
  • Ohjelmaa käynnistettäessä ja moduulien lataamisessa voidaan käyttää URL-osoitteita. Esimerkiksi welcome.js-ohjelman suorittamiseksi voit käyttää komentoa "deno https://deno.land/std/examples/welcome.js". Ulkoisista resursseista peräisin oleva koodi ladataan ja tallennetaan paikallisen järjestelmän välimuistiin, mutta sitä ei koskaan päivitetä automaattisesti (päivitys vaatii nimenomaisen sovelluksen suorittamisen "--reload"-lipulla);
  • Tehokas verkkopyyntöjen käsittely HTTP:n kautta sovelluksissa, alusta on suunniteltu luomaan korkean suorituskyvyn verkkosovelluksia;
  • Mahdollisuus luoda universaaleja verkkosovelluksia, jotka voidaan suorittaa sekä Denossa että tavallisessa verkkoselaimessa;
  • Ajonajan lisäksi Deno-alusta toimii myös paketinhallinnana ja mahdollistaa moduulien pääsyn koodin sisällä olevien URL-osoitteiden kautta. Voit esimerkiksi ladata moduulin määrittämällä koodiin "import * as log from "https://deno.land/std/log/mod.ts". Ulkoisilta palvelimilta URL-osoitteen kautta ladatut tiedostot tallennetaan välimuistiin. Sitoutuminen moduuliversioihin määritetään määrittämällä versionumerot URL-osoitteen sisällä, esimerkiksi "https://unpkg.com/[sähköposti suojattu]/dist/liltest.js";
  • Rakenne sisältää integroidun riippuvuuden tarkistusjärjestelmän ("deno info" -komento) ja apuohjelman koodin muotoiluun (deno fmt).
  • Sovelluskehittäjille ehdotettu joukko vakiomoduuleja, joille on tehty lisätarkastus ja yhteensopivuustestaus;
  • Kaikki sovellusskriptit voidaan yhdistää yhdeksi JavaScript-tiedostoksi.

Erot Node.js:stä:

  • Deno ei käytä npm-pakettienhallintaa
    ja se ei ole sidottu arkistoihin, moduuleja osoitetaan URL-osoitteen tai tiedostopolun kautta, ja itse moduulit voidaan sijoittaa mille tahansa verkkosivustolle;

  • Deno ei käytä "package.json"-tiedostoa moduulien määrittämiseen.
  • API ero, kaikki asynkroniset toiminnot Denossa palauttavat lupauksen;
  • Deno edellyttää kaikkien tarvittavien tiedostojen, verkko- ja ympäristömuuttujien käyttöoikeuksien nimenomaista määrittelyä;
  • Kaikki virheet, joita ei ole toimitettu käsittelijöille, johtavat sovelluksen lopettamiseen;
  • Deno käyttää ECMAScript-moduulijärjestelmää eikä tue request().

Lähde: opennet.ru

Lisää kommentti