Deno 1.0 發佈有何功能?

導讀 Deno 1.0 發佈了。Deno 是作者 Ryan Dahl 在 Node 之後的又一大作,它是一個新的運行時,用於在 Web 瀏覽器之外執行 JavaScript 和 TypeScript,其採用 Rust 編寫而成(最初用的是 Golang)。

Deno 1.0 發佈有何功能?Deno 1.0 發佈有何功能?

Deno 試圖提供一個獨立的工具來快速編寫複雜功能的腳本,它將始終是單個可執行文件。就像 Web 瀏覽器一樣,它知道如何獲取外部代碼。在 Deno 中,單個文件可以定義任意複雜的行爲,而無需任何其它工具。

Ryan Dahl 認爲過去他在設計 Node 時犯了一些錯誤,包括安全性、構建系統、package.json、node_modules、index.js 等等,並表示 Node 存在的種種不足導致有許多嚴重 bug 問題且不可迴避,當前 JavaScript 和周圍的軟件基礎架構已經發生了巨大的變化,值得進行簡化,於是他重新設計了 Deno 這門腳本語言。

Rust API

今天正式發佈的 1.0 版本帶來了命令行界面 CLI 1.0。Deno 本身並不是一個單體的程序,而是設計爲 Rust crate 的集合,以允許在不同的層進行集成。Deno 中的 Rust crate deno_core 不依賴於 TypeScript 或 Tokio,它只是提供了操作和資源基礎架構。也就是說,它提供了一種將 Rust 特性綁定到 JavaScript promise 的有組織方式。CLI 則完全建立在 deno_core 之上。

rusty_v8 crate 提供高質量的 V8 C++ API 的 Rust 綁定。該 API 嘗試儘可能與原始 C++ API 匹配,它是零成本的綁定,因爲 Rust 中暴露的對象與在 C++ 中操作的對象完全相同。

HTTP 服務器性能

Deno 的 HTTP 服務器是採用 TypeScript 在原生 TCP socket 的頂層實現的,Node 的 HTTP 服務器使用 C 語言編寫,並作爲對 JavaScript 的高級綁定暴露。一直以來 Deno 拒絕將原生 HTTP 服務器綁定添加進來,因爲這還需要優化 TCP socket 層,更常見的是優化 op 接口。

Deno 是一個合適的異步服務器,每秒 25k 請求足以滿足大多數目的,此外,由於普遍使用 Promise,Deno 需要有更好的尾部延遲。目前 Deno HTTP 服務器每秒處理約 25 000 個請求,最大延遲爲 1.3 毫秒,與之相比,Node 程序每秒處理 34 000 個請求,最大延遲介於 2 到 300 毫秒之間。

這樣看來,作者認爲 Deno 的 HTTP 服務器還有更多的性能優勢,並表示希望在將來的版本中實現這一目標。

具體關於 HTTP 服務器性能,可以查看:

https://deno.land/benchmarks

插件/擴展

Deno 1.0 還帶來了一個新生的插件系統,用於通過自定義操作擴展 Deno 運行時。但是,此接口仍在開發中,並已標記爲不穩定。

此外,發佈公告中還提及 Deno 穩定性與兼容性等內容,還介紹了接下來將會把 TSC 移植到 Rust,最終加速類型檢查,提高從 TS 解析到 JS 性能的計劃,詳情查看:https://deno.land/v1    更多Linux資訊請查看:https://www.linuxprobe.com

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章