Deno 專案正在開發一個類似 Node.js 的安全 JavaScript 平台

可用的 項目發布 迪諾0.33,它提供了一個類似 Node.js 的平台,用於在 JavaScript 和 TypeScript 中獨立執行應用程序,可用於運行應用程式而無需綁定到瀏覽器,例如創建在伺服器上運行的處理程序。 Deno 使用 JavaScript 引擎 V8,它也用於 Node.js 和基於 Chromium 專案的瀏覽器。 專案程式碼 分發者 根據麻省理工學院的許可。 該項目由 Ryan Dahl 開發(瑞安·達爾(Ryan Dahl)),Node.js JavaScript 平台的創建者。

建立新的 JavaScript 執行階段的主要目標之一是提供更安全的環境。 為了提高安全性,V8 引擎是用 Rust 編寫的,這避免了許多由低階記憶體操作引起的漏洞,例如釋放後存取、空指標取消引用和緩衝區溢位。 平台用於以非阻塞方式處理請求 東京,也是用 Rust 寫的。 Tokio 可讓您建立基於事件驅動架構的高效能應用程序,支援多執行緒並以非同步方式處理網路請求。

主要的 產品特點 德諾:

  • 面向安全的預設配置。 預設情況下禁用文件訪問、網路和環境變數訪問,必須明確啟用;
  • 除了 JavaScript 之外,還內建 TypeScript 語言的支援;
  • 運行時以單一獨立可執行檔(“deno”)的形式出現。 要使用 Deno 運行應用程式就足夠了 上載 為其平台一可執行文件,大小約10 MB,無外部依賴,不需要在系統上進行任何特殊安裝;
  • 啟動程式以及載入模組時,可以使用 URL 尋址。 例如,要執行welcome.js程序,您可以使用指令「deno https://deno.land/std/examples/welcome.js」。 來自外部資源的程式碼被下載並快取在本機系統上,但永遠不會自動更新(更新需要使用“--reload”標誌明確運行應用程式);
  • 在應用程式中透過HTTP高效處理網路請求;該平台專為創建高效能網路應用程式而設計;
  • 能夠建立可以在 Deno 和常規 Web 瀏覽器中執行的通用 Web 應用程式;
  • 除了執行時間之外,Deno 平台還充當套件管理器,可讓您透過程式碼內的 URL 存取模組。 例如,要載入模組,您可以在程式碼中指定“import * as log from “https://deno.land/std/log/mod.ts”。 透過 URL 從外部伺服器下載的檔案會被快取。 綁定到模組版本是透過在 URL 中指定版本號來確定的,例如,「https://unpkg.com/[電子郵件保護]/dist/liltest.js";
  • 該結構包括一個整合的依賴性檢查系統(“deno info”命令)和一個程式碼格式化實用程式(deno fmt)。
  • 對於應用程式開發人員 建議 一組經過額外審核和相容性測試的標準模組;
  • 所有應用程式腳本都可以合併到一個 JavaScript 檔案。

與 Node.js 的差別:

  • Deno 不使用 npm 套件管理器
    並且不依賴儲存庫,模組透過 URL 或檔案路徑進行尋址,模組本身可以放置在任何網站上;

  • Deno 不使用「package.json」來定義模組;
  • API 差異,Deno 中的所有非同步操作都會傳回一個 Promise;
  • Deno 要求明確定義檔案、網路和環境變數的所有必要權限;
  • 處理程序未提供的所有錯誤都會導致應用程式終止;
  • Deno 使用 ECMAScript 模組系統,不支援 require()。

來源: opennet.ru

添加評論