Dự án Deno đang phát triển nền tảng JavaScript an toàn tương tự như Node.js

Có sẵn phát hành dự án Cho tôi 0.33, cung cấp nền tảng giống Node.js để thực thi ứng dụng độc lập bằng JavaScript và TypeScript, nền tảng này có thể được sử dụng để chạy các ứng dụng mà không bị ràng buộc với trình duyệt, chẳng hạn như tạo trình xử lý chạy trên máy chủ. Deno sử dụng công cụ JavaScript V8, cũng được sử dụng trong Node.js và các trình duyệt dựa trên dự án Chrome. Mã số dự án phân phối bởi theo giấy phép MIT. Dự án đang được phát triển bởi Ryan Dahl (Ryan Dahl), người tạo ra nền tảng JavaScript Node.js.

Một trong những mục tiêu chính của việc tạo thời gian chạy mới cho JavaScript là cung cấp một môi trường an toàn hơn. Để cải thiện tính bảo mật, công cụ V8 được viết bằng Rust, giúp tránh được nhiều lỗ hổng phát sinh từ thao tác bộ nhớ cấp thấp, chẳng hạn như truy cập sau khi rảnh rỗi, hủy tham chiếu con trỏ null và lỗi tràn bộ đệm. Nền tảng được sử dụng để xử lý các yêu cầu ở chế độ không chặn Tokyo, cũng được viết bằng Rust. Tokio cho phép bạn tạo các ứng dụng hiệu suất cao dựa trên kiến ​​trúc hướng sự kiện, hỗ trợ đa luồng và xử lý các yêu cầu mạng ở chế độ không đồng bộ.

Chính tính năng Deno:

  • Cấu hình mặc định hướng đến bảo mật. Quyền truy cập tệp, kết nối mạng và quyền truy cập vào các biến môi trường bị tắt theo mặc định và phải được bật rõ ràng;
  • Hỗ trợ tích hợp cho ngôn ngữ TypeScript ngoài JavaScript;
  • Thời gian chạy có dạng một tệp thực thi độc lập (“deno”). Chạy ứng dụng bằng Deno là đủ Tải xuống đối với nền tảng của nó, một tệp thực thi có kích thước khoảng 10 MB, không có phụ thuộc bên ngoài và không yêu cầu bất kỳ cài đặt đặc biệt nào trên hệ thống;
  • Khi khởi động chương trình cũng như để tải các mô-đun, bạn có thể sử dụng địa chỉ URL. Ví dụ: để chạy chương trình Welcome.js, bạn có thể sử dụng lệnh “deno https://deno.land/std/examples/welcome.js”. Mã từ các tài nguyên bên ngoài được tải xuống và lưu vào bộ nhớ đệm trên hệ thống cục bộ, nhưng không bao giờ được cập nhật tự động (việc cập nhật yêu cầu chạy ứng dụng một cách rõ ràng với cờ “--reload”);
  • Xử lý hiệu quả các yêu cầu mạng thông qua HTTP trong các ứng dụng; nền tảng được thiết kế để tạo các ứng dụng mạng hiệu suất cao;
  • Khả năng tạo các ứng dụng web phổ quát có thể được thực thi cả trong Deno và trình duyệt web thông thường;
  • Ngoài thời gian chạy, nền tảng Deno còn hoạt động như một trình quản lý gói và cho phép bạn truy cập các mô-đun bằng URL bên trong mã. Ví dụ: để tải một mô-đun, bạn có thể chỉ định trong mã “nhập * dưới dạng nhật ký từ”https://deno.land/std/log/mod.ts”. Các tệp được tải xuống từ máy chủ bên ngoài qua URL sẽ được lưu vào bộ nhớ đệm. Việc liên kết với các phiên bản mô-đun được xác định bằng cách chỉ định số phiên bản bên trong URL, ví dụ: “https://unpkg.com/[email được bảo vệ]/dist/liltest.js";
  • Cấu trúc bao gồm một hệ thống kiểm tra phụ thuộc tích hợp (lệnh “deno info”) và một tiện ích để định dạng mã (deno fmt).
  • Dành cho nhà phát triển ứng dụng đề xuất một bộ mô-đun tiêu chuẩn đã trải qua quá trình kiểm tra bổ sung và kiểm tra tính tương thích;
  • Tất cả các tập lệnh ứng dụng có thể được kết hợp thành một tệp JavaScript.

Sự khác biệt so với Node.js:

  • Deno không sử dụng trình quản lý gói npm
    và không bị ràng buộc với các kho lưu trữ, các mô-đun được xử lý qua URL hoặc bằng đường dẫn tệp và bản thân các mô-đun có thể được đặt trên bất kỳ trang web nào;

  • Deno không sử dụng "package.json" để xác định mô-đun;
  • Sự khác biệt về API, tất cả các hành động không đồng bộ trong Deno đều trả về một lời hứa;
  • Deno yêu cầu định nghĩa rõ ràng về tất cả các quyền cần thiết đối với các biến tệp, mạng và môi trường;
  • Tất cả các lỗi không được cung cấp bởi trình xử lý đều dẫn đến việc chấm dứt ứng dụng;
  • Deno sử dụng hệ thống mô-đun ECMAScript và không hỗ trợ require().

Nguồn: opennet.ru

Thêm một lời nhận xét