国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

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

開發 前端
Rust 最初由 Mozilla 創建,是一種快速、可靠、內存效率高且非常流行的編程語言,專為提高性能和安全性而設計。

 

Rust 最初由 Mozilla 創建,是一種快速、可靠、內存效率高且非常流行的編程語言,專為提高性能和安全性而設計。它連續 6 年被 Stack Overflow 調查評為最喜愛的編程語言,并在超大規模的公司使用,如 Facebook,蘋果,亞馬遜,微軟和谷歌等用于系統基礎設施、加密和虛擬化。Rust 現在正在取代 JavaScript Web 生態系統的部分內容,例如壓縮 (Terser)、轉譯 (Babel)、格式化 (Prettier)、打包 (webpack)、linting (ESLint) 等等。讓我們深入探討一下為什么這種趨勢越來越受歡迎和被廣泛采用。

1、Rust 是什么?

Rust 幫助開發人員編寫內存高效的快速軟件。它是 C++ 或 C 等語言的現代替代品,專注于代碼安全和簡潔的語法。Rust 與 JavaScript 完全不同。JavaScript 嘗試查找未使用的變量或對象并自動從內存中清除它們。這稱為垃圾收集。該語言將開發人員從手動內存管理的思考中抽象出來。使用 Rust,開發人員可以更好地控制內存分配,而不會像 C++ 那樣痛苦。

“Rust 使用了一種相對獨特的內存管理方法,它結合了內存‘所有權’的概念。Rust 會跟蹤誰可以讀寫內存。它知道程序何時使用內存,并在不再需要時立即釋放內存。它在編譯時強制執行內存規則,幾乎不可能出現運行時內存錯誤。你不需要手動跟蹤內存。編譯器會處理它。” — Discord [1]

2、Rust 使用情況

除了上述公司之外,Rust 還被用于流行的開源庫,例如:

  • Firecracker [2] (AWS)

  • Bottlerocket [3] (AWS)

  • Quiche [4] (Cloudflare)

  • Neqo [5] (Mozilla)

“Rust 一直是我們團隊的力量倍增器,押注 Rust 是我們做出的最佳決定之一。不僅僅是性能,它的人體工程學和對正確性的關注幫助我們馴服了同步的復雜性。我們可以在類型系統中編碼關于我們系統的復雜不變量,并讓編譯器為我們檢查它們。” — Dropbox [6]

3、從 JavaScript 到 Rust

JavaScript 是使用最廣泛的編程語言,可在每個帶有網絡瀏覽器的設備上運行。在過去的 10 年里,圍繞 JavaScript 構建了一個龐大的生態系統:

  • Webpack:開發人員希望將多個 JavaScript 文件捆綁為一個。

  • Babel:開發人員希望在支持舊瀏覽器的同時編寫現代 JavaScript。

  • Terser:開發人員希望生成盡可能小的文件。

  • Prettier:開發人員想要一個可以正常工作的固執己見的代碼格式化程序。

  • ESLint:開發人員希望在部署之前發現他們的代碼存在的問題。

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

SWC

SWC [7] 創建于 2017 年,是一個基于 Rust 的可擴展平臺,適用于下一代快速開發工具。它被 Next.js、Parcel 和 Deno 等工具以及 Vercel、字節跳動、騰訊、Shopify 等公司使用。SWC 可用于編譯、縮小、打包等 - 并且旨在進行擴展。你可以調用它來執行代碼轉換(內置或自定義)。通過 Next.js 等更高級別的工具運行這些轉換。

Deno

Deno [8] 創建于 2018 年,是一個簡單、現代且安全的 JavaScript 和 TypeScript 運行時,它基于 V8 [9] 并使用 Rust 構建。它試圖取代由 Node.js 的原始創建者編寫的 Node.js。雖然它是在 2018 年創建的,但直到 2020 年 5 月才發布 v1.0 [10] 。Deno 的 linter、代碼格式化程序和文檔生成器是 使用 SWC 構建的 [11] 。

esbuild

esbuild [12] 創建于 2020 年 1 月,是一個 JavaScript 打包器和壓縮器,比用 Go 編寫的其他工具快 10-100 倍。

“我正在嘗試創建一個構建工具,它 a) 適用于給定的最佳用例(打包 JavaScript、TypeScript,也許還有 CSS),b) 重塑社區對 JavaScript 構建意味著工具要快。在我看來,我們目前的工具太慢了。” — Evan [13] ,esbuild 的創建者

在 esbuild 發布之前,使用 Go 和 Rust 等系統編程語言構建 JavaScript 工具是相當小眾的。在我看來,esbuild 激發了人們更廣泛的興趣,試圖讓開發者工具變得更快。Evan 選擇使用 Go:

“只要付出足夠的努力,Rust 版本能以相同的速度運行。但在高層次上,Go 的工作要愉快得多。這是一個附帶項目,對我來說工作起來一定很有趣。” — Evan,esbuild 的創建者

有人認為 Rust 可以表現得更好,但兩者都可以實現 Evan 影響社區的最初目標:

“即使只有基本的優化,Rust 也能勝過超級手動調整的 Go 版本。與我們必須使用 Go 進行的深入研究相比,這極大地證明了使用 Rust 編寫高效的程序是多么容易。” —Discord

Rome

Rome [14] 于 2020 年 8 月創建,是一個用于 JavaScript、TypeScript、HTML、JSON、Markdown 和 CSS 的 linter、編譯器、捆綁器、測試運行器等。他們的目標是替換和統一整個前端開發工具鏈。它是由 Sebastian McKenzie [15] 創建的,他之前還創建了 Babel。

那為什么要重寫一個呢?

“對 Babel 進行必要的修改以使其成為其他工具的可靠基礎將需要對所有內容進行更改。該架構與我在 2014 年學習解析器、AST 和編譯器時所做的初始設計選擇有關。” — Sebastian McKenzie [16]

Rome 目前使用 TypeScript 編寫并在 Node.js 上運行。但是他們現在正在使用 RSLint 解析器和他們自己的訪問者系統來 用 Rust 重寫 [17] 以進行 AST 遍歷。

NAPI

Rust 與 Node.js 的集成優于其他低級語言。 napi-rs [18] 允許你使用 Rust 構建預編譯的 Node.js 插件。它提供了交叉編譯和發布本地的二進制文件 NPM:一個徹頭徹尾的現成的解決方案,而無需 node-gyp 或 postinstall 腳本。你可以構建一個可以直接從 Node.js 調用的 Rust 模塊,而無需創建像 esbuild 這樣的子進程。

Rust + WebAssembly

WebAssembly [19] (WASM) 是 Rust 可以編譯成的一種可移植的低級語言。它在瀏覽器中運行,可與 JavaScript 互操作,并在所有主要的現代瀏覽器中均受支持。

“WASM 肯定比 JS 快很多,但不如原生速度。在我們的測試中,Parcel 編譯為 WASM 時的運行速度比使用原生二進制文件慢 10-20 倍。” — Devon Govett

雖然 WASM 還不是完美的解決方案,但它可以幫助開發人員創建極快的 Web 體驗。Rust 團隊 致力于 [20] 高質量和尖端的 WASM 實現。對于開發人員來說,這意味著你可以擁有 Rust(相對于 Go)的性能優勢,同時仍然為 Web 編譯(使用 WASM)。

該領域的一些早期庫和框架:

  • Yew [21]

  • Percy [22]

  • Seed [23]

  • Sycamore [24]

  • Stork [25]

這些編譯為 WASM 的基于 Rust 的 Web 框架并沒有試圖取代 JavaScript,而是與它一起工作。雖然我們還沒有到那一步,但有趣的是看到 Rust 在兩個方面都在 Web 之后出現:使現有的 JavaScript 工具更快,并為 編譯為 WASM 提供 [26] 未來的想法。從頭到尾都是 Rust。

4、Rust 有什么問題?

Rust 學習曲線陡峭,網友戲稱:Rust 入門很容易,我已經入門 4、5 次了。它的抽象級別比大多數 Web 開發人員習慣的要低。一旦你使用本機代碼(通過 Rust、Go、Zig 或其他低級語言),算法和數據結構比語言選擇 更重要 [27] 。這不是銀彈。

“Rust 讓你思考對系統編程非常重要的代碼維度。它讓你思考如何共享或復制內存。它使你考慮真實但不太可能的極端情況,并確保它們得到處理。它可以幫助你以各種可能的方式編寫極其高效的代碼。” — Tom MacWright [28]

此外,Rust 在網絡社區中的使用仍然是小眾的。它還沒有達到關鍵的使用量。盡管為 JavaScript 工具學習 Rust 將成為入門障礙,但有趣的是,開發人員更愿意擁有一個更快的工具,即使為其貢獻代碼挺難。

目前,很難為NIIT喜歡的服務(例如使用身份驗證、數據庫、支付等)找到一個 Rust 庫或框架。我認為一旦 Rust 和 WASM 獲得關鍵采用,這將自行解決。但目前還不成熟。我們需要現有的 JavaScript 工具來幫助我們彌合差距并逐步采用以改進性能。

5、JavaScript 工具的未來

我相信 Rust 是 JavaScript 工具的未來。 Next.js 12 [29] 開始了我們的過渡,用 SWC 和 Rust 完全替換 Babel(轉譯)和 Terser(壓縮)。為什么?

  • 可擴展性:SWC 可以用作 Next.js 中的 Crate,而無需 fork 庫或解決設計約束。

  • 性能:通過切換到 SWC,我們能夠在 Next.js 中實現約 3 倍的快速刷新和約 5 倍的構建速度,還有更多的優化空間仍在進行中。

  • WebAssembly:Rust 對 WASM 的支持對于支持所有可能的平臺和在任何地方進行 Next.js 開發至關重要。

  • 社區:Rust 社區和生態系統令人驚嘆,而且還在不斷增長。

不僅僅是 Next.js 采用了 SWC:

  • Deno [30] 的 linter、代碼格式化程序和文檔生成器是 使用 SWC 構建的 [31] 。

  • dprint [32] 建立在 SWC 之上,是 Prettier [33] 的 30 倍 [34] 代碼格式化替代品。

  • Parcel [35] 使用 SWC 將整體構建性能提高了 10 倍 [36] 。

“在我們使用 Babel 的解析器和用 JS 編寫的自定義轉換之前,Parcel 像庫一樣使用 SWC。現在,我們在 Rust 中使用 SWC 的解析器和 自定義轉換 [37] 。這包括完整范圍的提升實現、依賴項收集等。它的作用范圍類似于 Deno 在 SWC 之上構建的方式。” —Devon Govett

這是 Rust 的早期階段——一些重要的部分仍在研究中:

  • 插件:對于許多 JavaScript 開發人員來說,用 Rust 編寫插件并不容易。同時,在 JavaScript 中公開插件系統可能會抵消性能提升。最終的解決方案還沒有出現。理想情況下,未來會結合 JavaScript 和 Rust。如果你想使用 JavaScript 編寫插件,則可以權衡速度。需要更多性能?使用 Rust 插件 API。

  • 捆綁 :一個有趣的開發領域 swcpack 是 SWC 替代 webpack。它仍在開發中,但可能非常有前途。
  • WebAssembly:如上所述,編寫 Rust 并編譯為 WASM 的前景很誘人,但仍有工作要做。

6、結論

在可預見的未來,Rust 的受歡迎程度將繼續增長,并對 JavaScript 生態系統產生重大影響。想象一下,Next.js 中使用的所有構建工具都是用 Rust 編寫的,從而為你提供最佳性能。然后可以將 Next.js 作為從 NPM 下載的 靜態二進制文件 [38] 分發。對我來說,那將是一個生活(和發展)的理想世界。

責任編輯:張燕妮 來源: Rust編程指北
相關推薦

2013-04-23 11:15:02

基礎設施數據中心網絡融合

2019-04-01 17:39:05

混合云基礎設施

2023-03-09 14:20:04

2013-09-04 10:30:42

輕應用light app

2023-11-04 19:55:10

2018-01-31 12:18:04

2021-05-08 13:13:55

智能設施漏洞攻擊

2011-10-20 11:18:59

OpenFlowSDN

2017-03-08 07:50:28

IT基礎設施

2022-02-10 11:54:34

即時基礎設施基礎設施數字化轉型

2014-03-07 14:35:49

網絡基礎設施Open Fabric

2017-12-27 14:41:57

融合云計算服務器

2022-03-02 16:10:55

邊緣計算智慧城市物聯網

2021-08-10 11:26:02

網絡物聯網人工智能

2022-01-17 13:34:30

Commvault

2023-12-20 11:45:08

物聯網Wi-Fi智能家居

2023-05-31 11:39:07

智慧城市物聯網

2021-12-03 10:17:42

云計算云計算環境云應用

2025-07-23 09:21:03

2023-04-11 15:26:44

數據中心服務器
點贊
收藏

51CTO技術棧公眾號

欧美hdsex| 欧美福利在线观看| 中中文字幕av在线| 91精品国产综合久久精品图片 | 欧美亚男人的天堂| 久久精品a一级国产免视看成人| 激情成人中文字幕| eeuss影院在线观看| 欧美日韩国产精品成人| 美女黄色免费看| 91首页免费视频| 日本激情综合网| 亚洲在线观看免费视频| 天堂在线中文资源| 亚洲成人激情图| 99久久婷婷国产综合精品首页 | 成人av集中营| 91高清免费视频| 欧美 亚欧 日韩视频在线| 激情视频一区二区| 国产麻豆精品theporn| 天堂av在线网站| 亚洲综合一区二区| 午夜不卡视频| 欧美在线一区二区三区| 亚洲美女炮图| 久久久视频精品| 欧美区一区二| 欧美精品久久96人妻无码| 99久久免费精品高清特色大片| 性色a∨人人爽网站| 91精品国产91久久综合桃花| 日本综合视频| 日韩女优毛片在线| 亚洲一二三四区不卡| 一色桃子在线| 欧美精品丝袜久久久中文字幕| aaa在线播放视频| 欧美理论片在线观看| 97久久视频| 免费cad大片在线观看| 亚洲欧洲日韩av| 日本不卡不卡| 欧美丰满少妇xxxxx| 久久久久久久久久久久久久久久久久 | 草莓视频成人appios| 国产精品福利观看| 日本中文字幕一区| jizzzz日本| 91麻豆精品国产91久久久久久 | 欧美综合在线视频观看| 亚洲一区二区三区欧美| 国产精品久久久久桃色tv| av网站免费在线观看| 51ⅴ精品国产91久久久久久| 日韩在线卡一卡二| 国产真实伦在线观看| 亚洲精品国产欧美| 羞羞影院欧美| 亚洲欧美日韩精品久久| 久久久午夜电影| 嫩草国产精品入口| 美国一级片在线免费观看视频| 欧美日本在线视频| 美女精品网站| 九九九九免费视频| 另类色图亚洲色图| 大尺度一区二区| 自由的xxxx在线视频| 亚洲自拍另类欧美丝袜| 午夜欧美大尺度福利影院在线看| 国产精品丝袜在线播放| 1pon在线| 日韩免费观看高清完整版| 欧美日韩中字| 久激情内射婷内射蜜桃| 国产91精品在线播放| 欧美视频二区36p| 中文字幕av一区二区三区人| 国产精品裸体瑜伽视频| 精品国产一区二区三区四区在线观看 | 成人天堂噜噜噜| 国产午夜精品一区二区三区视频| 国产二区视频在线观看| 国产一区二区三区四区五区加勒比| 一本久久精品一区二区 | 色噜噜狠狠色综合网图区| 国产电影一区| 99热在线观看免费| 欧美成人精品高清在线播放| 国产视频一区免费看| 欧美综合社区国产| 国产成人生活片| 美女视频久久黄| 在线看国产日韩| 久久99在线观看| а√天堂资源地址在线下载| 鬼打鬼之黄金道士1992林正英| 亚洲天堂2014| 日韩欧美专区| 男人插曲女人视频免费| 日韩中文理论片| 激情婷婷久久| 一本大道香蕉8中文在线视频| 久久福利视频导航| 成人在线视频首页| 国产电影一区| 色爱综合网站| 69av在线视频| 亚洲香肠在线观看| 亚洲国产精品综合久久久| 未来日记在线观看| 国产精品久久九九| 日韩午夜电影在线观看| 麻豆成人免费电影| 成人全视频在线观看在线播放高清 | 免费的成人av| 91精品韩国| 国内自拍视频网| 国产精品入口日韩视频大尺度| 欧美午夜理伦三级在线观看| 男人的天堂亚洲| 樱桃视频成人在线观看| 日韩在线视频在线观看| 国产成人在线精品| 日本韩国欧美一区二区三区| 久久精品二区三区| 亚洲国产成人二区| 欧美亚洲另类色图| 2019中文在线观看| 欧美日韩中文精品| 蜜臀精品一区二区三区在线观看| 日本a人精品| 中文字幕在线第一页| 日产精品高清视频免费| 最近中文字幕2019免费| 亚洲精品美国一| 色8久久久久| 一色桃子在线| 亚洲激情一区二区三区| 亚洲人成啪啪网站| 一区二区三区四区五区视频在线观看| 亚洲精华国产欧美| 丰满少妇一区| 免费理论片在线观看播放老| 女人被男人躁得好爽免费视频 | 色哟哟免费在线观看| 欧美激情 国产精品| 91香蕉国产在线观看| 亚洲欧洲国产精品| 色婷婷综合久久| wwwwxxxxx欧美| 亚洲国产日韩在线| 美日韩黄色大片| 免费在线观看av| 亚洲一区二区蜜桃| 深夜福利成人| 国产精品精品一区二区三区午夜版 | 欧美日韩精品一区二区三区四区| 久久影视一区二区| 久久国产福利| 成人一级毛片| 日本一道高清亚洲日美韩| 三级毛片在线免费看| 日韩xxxx视频| 欧美日韩天天操| 国产成人精品电影| 色爱精品视频一区| 欧美精品久久99久久在免费线| 国产精品国产三级国产普通话三级 | 黄色一区二区在线| 成人精品在线视频观看| 在线看片成人| 欧美猛男同性videos| 樱桃视频成人在线观看| 在线观看免费黄视频| 99re免费99re在线视频手机版| 视色,视色影院,视色影库,视色网| 成人激情直播| 欧美一区二区三区免费观看| 亚洲香蕉成人av网站在线观看| 欧美精三区欧美精三区| 最好看的中文字幕久久| 91丨九色丨国产丨porny| 蜜臂av日日欢夜夜爽一区| 在线看片不卡| 亚洲最好看的视频| 成人搞黄视频| 国产精品麻豆| 久久亚洲国产精品尤物| 福利网站在线观看| 久久bbxx| 91福利在线视频| 欧美日韩影视| 最色在线观看| 激情视频网址| 波多野吉衣av| 免费的av电影| 久草免费在线播放| eeuss在线播放|