Rust會成為JavaScript未來的基礎設施嗎? – thenewstack

banq發表於2022-01-11

Rust最初由 Mozilla 建立,是一種快速、可靠、記憶體效率高且非常流行的程式語言,專為提高效能和安全性而設計。
如被廣泛使用的Facebook,蘋果,亞馬遜,微軟和谷歌用於系統基礎設施、加密和虛擬化。Rust 現在正在取代 JavaScript Web 生態系統的部分內容,例如縮小 (Terser)、轉譯 (Babel)、格式化 (Prettier)、捆綁 (webpack)、linting (ESLint) 等等。讓我們深入探討一下為什麼這種趨勢越來越受歡迎和被廣泛採用。
JavaScript 是使用最廣泛的程式語言,可在每個帶有網路瀏覽器的裝置上執行。在過去的 10 年裡,圍繞 JavaScript 構建了一個龐大的生態系統:
  • Webpack:開發人員希望將多個 JavaScript 檔案捆綁為一個。
  • Babel:開發人員希望在支援舊瀏覽器的同時編寫現代 JavaScript。
  • Terser:開發人員希望生成儘可能小的檔案大小。
  • Prettier:開發人員想要一個可以正常工作的固執己見的程式碼格式化程式。
  • ESLint:開發人員希望在部署之前發現他們的程式碼存在的問題。

已經編寫了數百萬行Rust程式碼,並且修復了更多錯誤,為當今的 Web 應用程式提供了基礎。所有這些工具都是用 JavaScript 或 TypeScript 編寫的。這工作得很好,但我們已經達到了 JS 的最佳最佳化。這激發了一類新的工具,這些工具旨在大幅提高 Web 構建的效能。
 

SWC

SWC建立於 2017 年,是一個基於 Rust 的可擴充套件平臺,適用於下一代快速開發工具。它被 Next.js、Parcel 和 Deno 等工具以及 Vercel、ByteDance、騰訊、Shopify 等公司使用。SWC 可用於編譯、縮小、捆綁等 - 並且旨在進行擴充套件。您可以呼叫它來執行程式碼轉換(內建或自定義)。透過 Next.js 等更高階別的工具執行這些轉換。
 

Deno

Deno建立於 2018 年,是一個簡單、現代且安全的 JavaScript 和 TypeScript 執行時,它使用V8並使用 Rust 構建。它試圖取代由 Node.js 的原始建立者編寫的 Node.js。雖然它是在 2018 年建立的,但直到 2020 年 5 月才釋出v1.0。Deno 的 linter、程式碼格式化程式和文件生成器是使用 SWC 構建的
 

esbuild

esbuild建立於 2020 年 1 月,是一個 JavaScript 捆綁器和壓縮器,比用 Go 編寫的現有工具快 10-100 倍。
在 esbuild 釋出之前,使用 Go 和 Rust 等系統程式語言構建 JavaScript 工具是相當小眾的。在我看來,esbuild 激發了人們更廣泛的興趣,試圖讓開發者工具變得更快。
 

Rome

Rome於 2020 年 8 月建立,是一個用於 JavaScript、TypeScript、HTML、JSON、Markdown 和 CSS 的 linter、編譯器、捆綁器、測試執行器等。他們的目標是替換和統一整個前端開發工具鏈。它是由Sebastian McKenzie建立的,他也建立了 Babel。
Rome 目前使用 TypeScript 編寫並在 Node.js 上執行。但是他們現在正在使用 RSLint 解析器和他們自己的訪問者系統來重寫 Rust以進行 AST 遍歷。
 

NAPI
Rust 與 Node.js 的整合優於其他低階語言。napi-rs允許您使用 Rust 構建預編譯的 Node.js 外掛。它提供了交叉編譯和釋出本地的二進位制檔案NPM一個徹頭徹尾的現成的解決方案,而無需node-gyp或postinstall指令碼。您可以構建一個可以直接從 Node.js 呼叫的 Rust 模組,而無需建立像 esbuild 這樣的子程式。
 

Rust + WebAssembly

WebAssembly (WASM) 是 Rust 可以編譯成的一種可移植的低階語言。它在瀏覽器中執行,可與 JavaScript 互操作,並在所有主要的現代瀏覽器中均受支援。
對於開發人員來說,這意味著您可以擁有 Rust(相對於 Go)的效能優勢,同時仍然為 Web 編譯(使用 WASM)。
 
在可預見的未來,Rust 的受歡迎程度將繼續增長,並對 JavaScript 生態系統產生重大影響。想象一下,Next.js 中使用的所有構建工具都是用 Rust 編寫的,從而為您提供最佳效能。然後可以將 Next.js 作為從 NPM 下載的靜態二進位制檔案分發。對我來說,那將是一個生活(和發展)的理想世界。 
 

相關文章