pelepasan proyek , yang menawarkan platform mirip Node.js untuk menjalankan aplikasi JavaScript dan TypeScript secara independen. Platform ini dapat digunakan untuk menjalankan aplikasi tanpa terikat pada peramban, misalnya dengan membuat pengendali sisi server. Deno menggunakan mesin JavaScript. , yang juga digunakan di Node.js dan peramban berbasis proyek Chromium. Kode proyek di bawah lisensi MIT. Proyek ini sedang dikembangkan oleh Ryan Dahl (), pencipta platform JavaScript Node.js.
Salah satu tujuan utama runtime JavaScript baru ini adalah menyediakan lingkungan yang lebih aman. Untuk meningkatkan keamanan, kerangka kerja mesin V8 ditulis dalam bahasa Rust, yang membantu mencegah berbagai kerentanan yang timbul dari manajemen memori tingkat rendah, seperti akses setelah bebas, dereferensi penunjuk null, dan buffer overrun. Platform Rust digunakan untuk memproses permintaan dalam mode non-pemblokiran. , juga ditulis dalam Rust. Tokio memungkinkan Anda membuat aplikasi berkinerja tinggi berdasarkan arsitektur berbasis peristiwa, mendukung multi-threading dan memproses permintaan jaringan dalam mode asinkron.
Utama Deno:
- Konfigurasi default yang berfokus pada keamanan. Akses berkas, jaringan, dan akses variabel lingkungan diblokir secara default dan memerlukan pengaktifan eksplisit;
- Dukungan bawaan untuk TypeScript selain JavaScript;
- Runtime hadir dalam bentuk satu file executable mandiri (“deno”). Untuk menjalankan aplikasi menggunakan Deno saja sudah cukup untuk platformnya, satu file yang dapat dieksekusi, berukuran sekitar 10 MB, tanpa ketergantungan eksternal dan tidak memerlukan instalasi khusus apa pun ke dalam sistem;
- Saat memulai program, serta untuk memuat modul, Anda dapat menggunakan pengalamatan URL. Misalnya untuk menjalankan program Welcome.js, Anda bisa menggunakan perintah “deno https://deno.land/std/examples/welcome.js”. Kode dari sumber daya eksternal diunduh dan disimpan dalam cache di sistem lokal, namun tidak pernah diperbarui secara otomatis (pembaruan mengharuskan aplikasi dijalankan secara eksplisit dengan tanda “--reload”);
- Pemrosesan permintaan jaringan yang efisien melalui HTTP dalam aplikasi; platform ini dirancang untuk membuat aplikasi jaringan berkinerja tinggi;
- Kemampuan untuk membuat aplikasi web universal yang dapat dijalankan baik di Deno maupun di browser web biasa;
- Selain runtime, platform Deno juga bertindak sebagai manajer paket dan memungkinkan Anda mengakses modul melalui URL dalam kode. Misalnya, untuk memuat modul, Anda dapat menentukan dalam kode “import * as log from “https://deno.land/std/log/mod.ts”. File yang diunduh dari server eksternal melalui URL di-cache. Penautan ke versi modul ditentukan dengan menentukan nomor versi di dalam URL, misalnya, "https://unpkg.com/liltest@0.0.5/dist/liltest.js";
- Paket ini mencakup sistem pemeriksaan ketergantungan terintegrasi (perintah "deno info") dan utilitas pemformatan kode (deno fmt).
- Untuk pengembang aplikasi seperangkat modul standar yang telah menjalani audit tambahan dan pengujian kompatibilitas;
- Semua skrip aplikasi dapat digabungkan menjadi satu file JavaScript.
Perbedaan dari Node.js:
- Deno tidak menggunakan manajer paket npm
dan tidak terikat dengan repositori, modul dialamatkan melalui URL atau jalur file, dan modul itu sendiri dapat ditempatkan di situs web mana pun; - Deno tidak menggunakan "package.json" untuk mendefinisikan modul;
- Perbedaan API, semua tindakan asinkron di Deno mengembalikan janji;
- Deno memerlukan definisi eksplisit dari semua izin yang diperlukan untuk file, jaringan, dan variabel lingkungan;
- Semua kesalahan yang tidak diberikan oleh penangan menyebabkan penghentian aplikasi;
- Deno menggunakan sistem modul ECMAScript dan tidak mendukung require().
Sumber: opennet.ru
