跳至內容

Deno

出自Taiwan Tongues 台語維基
於 2025年8月23日 (六) 07:48 由 TaiwanTonguesApiRobot留言 | 貢獻 所做的修訂 (從 JSON 檔案批量匯入)

(差異) ←上個修訂 | 已批准修訂 (差異) | 最新修訂 (差異) | 下個修訂→ (差異)

Deno是因為 V 八 ia̋n-jín 和 Rust 語言所建立的 JavaScript、TypeScript 執行環境,由 Node . js 的原始開發者瑞安 ・ 達爾創造。達爾佇二空一八年的演講「我是 Node . js 感覺講後悔的十件代誌」中宣布矣 Deno。Deno 佇單個會當執行檔中扮演執行環境佮套件管理系統的角色,毋免共伊分開嘛。

歷史

Deno 佇二空一八年瑞安 ・ 達到的演講「我是 Node . js 感覺講後悔的十件代誌」中宣佈。佇這場演講內底,達爾講著伊後悔 Node . js 的設計,譬如講無咧 API 中使用 JavaScript 的 Promise、GYP 建構系統、省略檔案的副檔名、node \ _ modules 佮 package . json、使用 index . js 進行模組解析、V 八的沙盒環境等等。伊佇演講的最後提出了 Deno 的原型,Deno 旨咧透過若 Protocol Buffers 啥物款的序列化工具傳遞訊息來實現縛定系統的呼叫,閣提供命令列介面來存取控制。

Deno 初級的版本是使用 Go 語言編寫,並使用 Protocol Buffers 來實作特權(Go)佮非特權(V 八)之間的序列化。毋過因為顧慮著雙重運行佮糞埽蒐集,Go 佇無偌久了後就去予 Rust 取代。

為著予 Deno 有誠仝步的事件觸發環境,Tokio 也予人引入來取代原本的 libuv。

Deno 原本是採用 Flatbuffers 以進行較緊的零複製序列化佮反序列化,佇咧二空一九年四月發佈序列化的標準了後,二空一九年八月予人徙掉。

二空一八年十一月建立一个以 Go 標準函式庫根底的標準函式庫,並且提供廣泛的工具,解決的部份 Node . js 的 dependency 問題。

Deno 佇二空二空年五月十三正式發佈。

概覽

Deno 目標是成做是對目前的工程師來講上有生產力的指令碼環境。Deno 強調事件觸起架構,嘛提供一套非常的窒起來 IO 佮窒起來 IO。

Deno 可以佇咧建立網頁侍服器、執行數學的運算等等。

佮 Node . js 的較

Deno 佮 Node . js 的仝款的所在:

一 . 攏運行佇咧 V 八上。 二 . 有仝款的事件循環。 三 . 提供 CLI 予使用者會當執行手稿語言。 四 . 遮爾大的實用程式。

Deno 佮 Node . js 的無仝的所在:

一 . 預設模組系統是使用 ES Module,毋是 CommonJS。 二 . 使用 URL 載入本地捀抑是遠端的 dependencies。 三 . 使用內建的套件管理器來掠資源,所以無需要 NPM。 四 . 使用具有快取機制的快照 TypeScript 編譯器,所以 Typescript 嘛會當開箱就用。 五 . 相容具足廣的啦 Web API 的瀏覽器。 六 . 允准控制檔案系統佮網路存取,以執行沙盒內底的程式碼。 七 . 重新利用 Promise、ES 六、Typescript 來設計 API。 八 . 上小化核心 API 的大細,同時提供濟濟的標準函式庫,所以無需要閣再使用外部的 dependencies。 九 . 使用訊息傳遞通道來呼叫特權系統 API。

範例

Hello World

佇這个 JavaScript 例當中,` Hello [name] ` 的資訊予人列印到控制台,代碼確保所提供的名是大寫的。

命令: ` deno run hello-world . js `

Unix cat 程式

佇這个程式當中,逐个命令列參數攏予人假做一个檔名,檔案予人拍開,並列印到 stdout(譬如講控制台)。

執行該程式:

HTTP 佇咧網路侍服器

webserver . ts:

然後用下跤式執行這:

參考資料

外部鏈結

官方網站