本文要點
- Deno和Node.js都在基於C/C++的運行時上執行JavaScript代碼,以實現較高的性能。
- Deno是單一的二進制應用,不兼容NPM模塊,並且很難將原生模塊加入應用中。
- WebAssembly提供了一種在Deno應用中運行高性能代碼的途徑。
- 對於服務端應用程序來說,WebAssembly是安全、可移植和輕量級的容器。
- Rust編譯器工具鏈爲WebAssembly提供了強大的支持。
備受期待的Deno項目終於發佈了1.0版本!Deno是由Node.js的創始人Ryan Dahl創建的,旨在解決他所說的“我爲Node.js感到遺憾的十件事”。
Deno拋棄了NPM和臭名昭著的node_modules。它是單個二進制可執行文件,可運行以TypeScript和JavaScript編寫的應用程序。
但是,儘管TypeScript和JavaScript適合大多數Web應用程序,但它們可能難以滿足計算密集型任務的需求,如神經網絡訓練和推理、機器學習和加密應用等。實際上,Node.js就經常需要使用原生庫來執行這些任務(例如使用openssl執行加密任務)。
既然沒有類似NPM的系統來加入原生模塊的話,我們該怎樣在Deno上編寫需要原生性能的服務端應用程序呢?這就要輪到WebAssembly上場了!在這篇文章中,我們將在Rust中編寫一些高性能函數,並將它們編譯爲WebAssembly,然後在你的Deno應用程序中運行它們。
原文鏈接:【https://www.infoq.cn/article/bkXMMfMruVPC8MjAODIR】。未經作者許可,禁止轉載。