Proyek Deno sedang mengembangkan platform JavaScript aman yang mirip dengan Node.js

Tersedia pelepasan proyek Deno 0.33 Memperbarui, yang menawarkan platform mirip Node.js untuk eksekusi aplikasi mandiri dalam JavaScript dan TypeScript yang dapat digunakan untuk menjalankan aplikasi tanpa terikat ke browser, seperti membuat penangan yang berjalan di server. Deno menggunakan mesin JavaScript V8, yang juga digunakan di Node.js dan browser berdasarkan proyek Chromium. Kode proyek didistribusikan oleh di bawah lisensi MIT. Proyek ini sedang dikembangkan oleh Ryan Dahl (Ryan Dahl), pencipta platform JavaScript Node.js.

Salah satu tujuan utama pembuatan runtime baru untuk JavaScript adalah untuk menyediakan lingkungan yang lebih aman. Untuk meningkatkan keamanan, mesin V8 ditulis dalam Rust, yang menghindari banyak kerentanan yang timbul dari manipulasi memori tingkat rendah, seperti akses setelah bebas, dereferensi penunjuk nol, dan buffer overruns. Platform ini digunakan untuk memproses permintaan dalam mode non-pemblokiran Tokyo, 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 fitur Deno:

  • Konfigurasi default berorientasi keamanan. Akses file, jaringan, dan akses ke variabel lingkungan dinonaktifkan secara default dan harus diaktifkan secara eksplisit;
  • Dukungan bawaan untuk bahasa TypeScript selain JavaScript;
  • Runtime hadir dalam bentuk satu file executable mandiri (“deno”). Untuk menjalankan aplikasi menggunakan Deno saja sudah cukup unduh untuk platformnya, satu file yang dapat dieksekusi, berukuran sekitar 10 MB, yang tidak memiliki ketergantungan eksternal dan tidak memerlukan instalasi khusus apa pun pada 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 pengelola paket dan memungkinkan Anda mengakses modul melalui URL di 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. Pengikatan ke versi modul ditentukan dengan menentukan nomor versi di dalam URL, misalnya, “https://unpkg.com/[email dilindungi]/dist/liltest.js";
  • Strukturnya mencakup sistem pemeriksaan ketergantungan terintegrasi (perintah “deno info”) dan utilitas untuk pemformatan kode (deno fmt).
  • Untuk pengembang aplikasi diajukan satu set 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

Tambah komentar