keluaran projek , yang menawarkan platform seperti Node.js untuk pelaksanaan aplikasi yang berdiri sendiri dalam JavaScript dan TypeScript yang boleh digunakan untuk menjalankan aplikasi tanpa terikat pada penyemak imbas, seperti mencipta pengendali yang dijalankan pada pelayan. Deno menggunakan enjin JavaScript , yang turut digunakan dalam Node.js dan penyemak imbas berdasarkan projek Chromium. Kod projek di bawah lesen MIT. Projek ini sedang dibangunkan oleh Ryan Dahl (), pencipta platform JavaScript Node.js.
Salah satu matlamat utama mencipta masa jalan baharu untuk JavaScript adalah untuk menyediakan persekitaran yang lebih selamat. Untuk meningkatkan keselamatan, enjin V8 ditulis dalam Rust, yang mengelakkan banyak kelemahan yang timbul daripada manipulasi memori peringkat rendah, seperti akses selepas bebas, penolakan penunjuk nol dan overrun penimbal. Platform ini digunakan untuk memproses permintaan dalam mod tidak menyekat , juga ditulis dalam Rust. Tokio membolehkan anda mencipta aplikasi berprestasi tinggi berdasarkan seni bina dipacu peristiwa, menyokong permintaan rangkaian berbilang benang dan pemprosesan dalam mod tak segerak.
Utama Deno:
- Konfigurasi lalai berorientasikan keselamatan. Akses fail, rangkaian dan akses kepada pembolehubah persekitaran dilumpuhkan secara lalai dan mesti didayakan secara eksplisit;
- Sokongan terbina dalam untuk bahasa TypeScript sebagai tambahan kepada JavaScript;
- Masa jalan datang dalam bentuk fail boleh laku serba lengkap (“deno”). Untuk menjalankan aplikasi menggunakan Deno sudah memadai untuk platformnya satu fail boleh laku, bersaiz kira-kira 10 MB, yang tidak mempunyai kebergantungan luaran dan tidak memerlukan sebarang pemasangan khas pada sistem;
- Apabila memulakan program, serta untuk memuatkan modul, anda boleh menggunakan pengalamatan URL. Contohnya, untuk menjalankan program welcome.js, anda boleh menggunakan arahan "deno https://deno.land/std/examples/welcome.js". Kod daripada sumber luaran dimuat turun dan dicache pada sistem setempat, tetapi tidak sekali-kali dikemas kini secara automatik (kemas kini memerlukan secara eksplisit menjalankan aplikasi dengan bendera "--reload");
- Pemprosesan permintaan rangkaian yang cekap melalui HTTP dalam aplikasi, platform direka untuk mencipta aplikasi rangkaian berprestasi tinggi;
- Keupayaan untuk mencipta aplikasi web universal yang boleh dilaksanakan dalam Deno dan dalam pelayar web biasa;
- Selain masa jalan, platform Deno juga bertindak sebagai pengurus pakej dan membenarkan mengakses modul melalui URL dalam kod. Sebagai contoh, untuk memuatkan modul, anda boleh menentukan dalam kod "import * sebagai log daripada "https://deno.land/std/log/mod.ts". Fail yang dimuatkan daripada pelayan luaran mengikut URL dicache. Pengikatan kepada versi modul ditentukan dengan menentukan nombor versi dalam URL, contohnya, "https://unpkg.com/liltest@0.0.5/dist";liltest.
- Struktur ini termasuk sistem pemeriksaan pergantungan bersepadu (arahan "deno info") dan utiliti untuk pemformatan kod (deno fmt).
- Untuk pembangun aplikasi satu set modul standard yang telah menjalani audit tambahan dan ujian keserasian;
- Semua skrip aplikasi boleh digabungkan menjadi satu fail JavaScript.
Perbezaan daripada Node.js:
- Deno tidak menggunakan pengurus pakej npm
dan tidak terikat dengan repositori, modul ditangani melalui URL atau laluan fail, dan modul itu sendiri boleh diletakkan di mana-mana tapak web; - Deno tidak menggunakan "package.json" untuk mentakrifkan modul;
- Perbezaan API, semua tindakan tak segerak dalam Deno mengembalikan janji;
- Deno memerlukan definisi eksplisit semua kebenaran yang diperlukan untuk fail, rangkaian dan pembolehubah persekitaran;
- Semua ralat yang tidak disediakan dengan pengendali membawa kepada penamatan permohonan;
- Deno menggunakan sistem modul ECMAScript dan tidak menyokong require().
Sumber: opennet.ru
