Deno 1.0, platform JavaScript selamat Node.js

Pembangun Node.js dilepaskan baru-baru ini pelancaran versi penting pertama dari Beri saya 1.0 yang muncul setelah dua tahun pembangunan. Ini adalah platform untuk pelaksanaan aplikasi JavaScript dan TypeScript secara berasingan, yang dapat digunakan untuk membuat pengawal yang berjalan di pelayan. Tidak Ia bukan cabang Node.js, melainkan merupakan projek baru yang dibuat dari awal.

Seperti Node.js, Deno menggunakan enjin JavaScript V8, yang juga digunakan dalam penyemak imbas berasaskan Chromium.  Motivasi utama untuk membuat platform JavaScript baru adalah keinginan untuk menghapus kesalahan konseptual yang dibuat dalam seni bina Node.js dan memberi pengguna persekitaran yang lebih selamat.

Untuk meningkatkan keselamatan, pautan di sekitar mesin V8 ditulis dalam bahasa Rust, Ini menghindari banyak kerentanan yang timbul akibat kerja tingkat rendah dengan memori, seperti mengakses kawasan memori setelah dibebaskan, merujuk petunjuk nol, dan keluar dari had penyangga.

Kod projek diedarkan di bawah lesen MIT dan mempunyai kompilasi yang disediakan untuk Linux, Windows dan macOS.

Apa yang baru di Deno 1.0

Versi platform baru ini, Penstabilan API di ruang nama Deno diserlahkan, iaitu bertanggungjawab untuk interaksi aplikasi dengan sistem operasi. Antaramuka perisian yang belum stabil disembunyikan secara lalai dan hanya tersedia apabila dimulakan dalam mod tidak stabil.

Apabila versi baru dibentuk, API seperti itu secara beransur-ansur akan stabil. API di ruang nama global, yang merangkumi fungsi umum seperti setTimeout () dan fetch (), sedekat mungkin dengan API penyemak imbas web biasa dan dikembangkan sesuai dengan standard web untuk penyemak imbas. API Rust yang digunakan secara langsung dalam kod platform, dan juga antara muka untuk mengembangkan plugin untuk runtime Deno, belum stabil dan terus berkembang.

Selain itu, menonjol dia bekerja pada orientasi keselamatan dalam tetapan lalai mengenai akses fail, keupayaan rangkaian dan akses ke pemboleh ubah persekitaran dikunci secara lalai dan memerlukan penyertaan eksplisit. Secara lalai, aplikasi dijalankan di persekitaran terpencil kotak pasir dan mereka tidak dapat mengakses keupayaan sistem tanpa hak istimewa.

Sebaliknya, disebutkan dalam pengumuman versi baru sokongan asli untuk TypeScript selain JavaScript. Untuk memeriksa jenis dan menghasilkan JavaScript, penyusun TypeScript standard digunakan, membawa kepada penurunan prestasi berbanding dengan menguraikan JavaScript di V8. Di masa depan, kami berencana untuk menyiapkan pelaksanaan sistem pemeriksaan jenis TypeScript kita sendiri, yang akan memungkinkan kita untuk meningkatkan prestasi pemprosesan TypeScript secara signifikan.

Masa berjalan datang dalam bentuk satu mandiri yang dapat dilaksanakan ("tidak"). Untuk menjalankan aplikasi menggunakan Deno, memadai memuat turun fail yang boleh dilaksanakan untuk platform anda, berukuran kira-kira 20 MB, tanpa pergantungan luaran dan yang tidak memerlukan pemasangan khas pada sistem. Pada masa yang sama, deno bukan aplikasi monolitik, tetapi koleksi paket kotak di Rust (deno_core, rusty_v8) yang dapat digunakan secara terpisah.

Sebagai tambahan kepada runtime, platform Deno juga bertindak sebagai pengurus pakej dan membenarkan akses ke modul melalui URL dalam kod. Fail yang dimuat turun dari pelayan luaran melalui URL disimpan dalam cache. Pautan ke versi modul ditentukan oleh arahan nombor versi dalam URL.

Daripada inovasi lain yang menonjol versi 1.0 ini:

  • Pemprosesan permintaan rangkaian HTTP yang berkesan dalam aplikasi, platform ini dirancang untuk membuat aplikasi rangkaian berprestasi tinggi.
  • Keupayaan untuk membuat aplikasi web sejagat yang dapat dijalankan di Deno dan di penyemak imbas web biasa.
  • Kehadiran sekumpulan modul standard, penggunaannya tidak memerlukan penghubung ke pergantungan luaran. Modul dalam koleksi standard juga telah diaudit dan diuji keserasiannya.
  • Kerangka kerja adalah sistem pemeriksaan ketergantungan bersepadu (perintah "info deno") dan utiliti untuk memformat kod (deno fmt)
  • Semua skrip aplikasi dapat digabungkan menjadi satu file JavaScript.

Fuente: https://deno.land