Penulis Node.js nampilake platform JavaScript sing aman Deno 1.0

Sawise rong taun pembangunan diwenehi release utama pisanan Menehi kula 1.0, platform kanggo eksekusi aplikasi mandiri ing JavaScript lan TypeScript, sing bisa digunakake kanggo nggawe pawang sing mlaku ing server. Platform kasebut dikembangake dening Ryan Dahl (Ryan Dahl), pangripta Node.js. Kaya Node.js, Deno nggunakake mesin JavaScript V8, sing uga digunakake ing browser basis Chromium. Ing wektu sing padha, Deno dudu garpu saka Node.js, nanging minangka proyek anyar sing digawe saka awal. Kode proyek disebarake dening ing lisensi MIT. Majelis disiapake kanggo Linux, Windows lan macOS.

Nomer versi sing signifikan digandhengake karo stabilisasi API ing ruang jeneng Deno, sing tanggung jawab kanggo interaksi aplikasi karo OS. Antarmuka lunak sing wis dadi adoh ora stabil, didhelikake minangka standar lan mung kasedhiya nalika mlaku ing mode "--unstable". Nalika versi anyar dibentuk, API kasebut mboko sithik dadi stabil. API ing namespace global, kang kalebu fungsi umum kayata setTimeout () lan njupuk (), sabisa kanggo API saka browser web conventional lan dikembangaké ing sesuai karo standar Web kanggo browser. API sing diwenehake dening Rust, sing digunakake langsung ing kode platform, uga antarmuka kanggo ngembangake plugin kanggo runtime Deno, durung stabil lan terus berkembang.

Motif utama kanggo nggawe platform JavaScript anyar yaiku kepinginan kanggo ngilangi kesalahan konsep, ngakoni ing arsitektur Node.js, lan menehi pangguna lingkungan luwih aman. Kanggo nambah keamanan, mesin V8 ditulis ing Rust, sing ngindhari akeh kerentanan sing muncul saka manipulasi memori tingkat rendah, kayata akses sawise-free, dereferensi null pointer, lan overruns buffer. Platform kasebut digunakake kanggo ngolah panjalukan ing mode non-blocking Tokio, uga ditulis ing Rust. Tokio ngidini sampeyan nggawe aplikasi kanthi kinerja dhuwur adhedhasar arsitektur sing didorong acara, ndhukung panjaluk jaringan multi-threading lan pangolahan ing mode asinkron.

Utama fitur Deno:

  • Konfigurasi gawan berorientasi keamanan. Akses file, jaringan, lan akses menyang variabel lingkungan dipateni kanthi standar lan kudu diaktifake kanthi jelas. Aplikasi kanthi standar mbukak ing lingkungan kothak wedhi sing terisolasi lan ora bisa ngakses kemampuan sistem tanpa menehi ijin sing jelas;
  • Dhukungan internal kanggo TypeScript ngluwihi JavaScript. Compiler TypeScript standar digunakake kanggo mriksa jinis lan ngasilake JavaScript, sing ndadékaké hit kinerja dibandhingake parsing JavaScript ing V8. Ing mangsa ngarep, kita arep nyiapake implementasine dhewe saka sistem pamriksa jinis TypeScript, sing bakal ningkatake kinerja pangolahan TypeScript kanthi urutan gedhene;
  • Runtime teka ing wangun file eksekusi tunggal ("deno"). Kanggo mbukak aplikasi nggunakake Deno iku cukup upload kanggo platform ana siji file eksekusi, ukurane udakara 20 MB, sing ora duwe dependensi eksternal lan ora mbutuhake instalasi khusus ing sistem kasebut. Kajaba iku, deno dudu aplikasi monolitik, nanging minangka koleksi paket peti ing Rust (deno_inti, teyeng_v8), sing bisa digunakake kanthi kapisah;
  • Nalika miwiti program, uga kanggo mbukak modul, sampeyan bisa nggunakake alamat URL. Contone, kanggo mbukak program welcome.js, sampeyan bisa nggunakake printah "deno https://deno.land/std/examples/welcome.js". Kode saka sumber daya eksternal diundhuh lan di-cache ing sistem lokal, nanging ora tau dianyari kanthi otomatis (nganyari mbutuhake kanthi jelas mbukak aplikasi kanthi bendera "--reload");
  • Proses efisien panjalukan jaringan liwat HTTP ing aplikasi, platform dirancang kanggo nggawe aplikasi jaringan kinerja dhuwur;
  • Kemampuan kanggo nggawe aplikasi web universal sing bisa dieksekusi ing Deno lan ing browser web biasa;
  • kasedhiyan set standar saka modul, panggunaan sing ora mbutuhake ikatan karo dependensi eksternal. Modul saka koleksi standar wis ngalami audit tambahan lan testing kompatibilitas;
  • Saliyane runtime, platform Deno uga tumindak minangka manajer paket lan ngidini sampeyan ngakses modul kanthi URL ing kode kasebut. Contone, kanggo mbukak modul, sampeyan bisa nemtokake ing kode "impor * minangka log saka "https://deno.land/std/log/mod.ts". File sing diundhuh saka server eksternal liwat URL di-cache. Ikatan karo versi modul ditemtokake kanthi nemtokake nomer versi ing URL, contone, "https://unpkg.com/[email dilindhungi]/dist/liltest.js";
  • Struktur kasebut kalebu sistem inspeksi dependensi terpadu (printah "deno info") lan sarana kanggo format kode (deno fmt);
  • Kabeh skrip aplikasi bisa digabung dadi siji file JavaScript.

Bedane saka Node.js:

  • Deno ora nggunakake manajer paket npm
    lan ora disambungake menyang repositori, modul ditangani liwat URL utawa path file, lan modul kasebut bisa diselehake ing situs web apa wae;
  • Deno ora nggunakake "package.json" kanggo nemtokake modul;
  • prabédan API, kabeh tumindak bedo ing Deno bali janji;
  • Deno mbutuhake definisi eksplisit kabeh ijin sing perlu kanggo file, jaringan lan variabel lingkungan;
  • Kabeh kesalahan sing ora diwenehake karo panangan nyebabake mandap aplikasi;
  • Deno nggunakake sistem modul ECMAScript lan ora ndhukung mbutuhake ();
  • Server HTTP sing dibangun Deno ditulis ing TypeScript lan mlaku ing ndhuwur soket TCP asli, dene server HTTP Node.js ditulis ing C lan nyedhiyakake binding kanggo JavaScript. Pangembang Deno wis fokus kanggo ngoptimalake kabeh lapisan soket TCP lan nyedhiyakake antarmuka sing luwih umum. Deno HTTP Server nyedhiyakake throughput sing luwih murah nanging njamin latency sing bisa diprediksi. Contone, ing tes, aplikasi prasaja adhedhasar server Deno HTTP bisa ngolah 25 ewu panjalukan per detik kanthi latensi maksimal 1.3 milidetik. Ing Node.js, aplikasi sing padha ngolah 34 ewu panjalukan per detik, nanging latensi antara 2 lan 300 milidetik.
  • Deno ora kompatibel karo paket kanggo Node.js (NPM), nanging lagi dikembangaké dhewe interlayer kanggo kompatibilitas karo perpustakaan Node.js standar, minangka develops, liyane lan liyane aplikasi ditulis kanggo Node.js bakal bisa mbukak ing Deno.
  • Source: opennet.ru

Add a comment