自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Rust 的風(fēng),終究還是吹到了前端

開發(fā) 前端
Rust 發(fā)揮了重要作用——我們已將框架中一些最昂貴且可并行的部分遷移到 Rust,同時將框架的核心保留在 TypeScript 中以實現(xiàn)可擴展性。

前幾天有一個叫做Rolldown的工具悄悄開源了,做前端開發(fā)的同學(xué)可能已經(jīng)了解到了。我寫這篇文章時是晚上,看到 star 數(shù)量是 4.6k,而在這一天的上午我打開這個倉庫的時候應(yīng)該是3.7k。開源作者正是前端大佬,Vue 創(chuàng)始人尤雨溪。

要說這個工具有什么特點嗎?那可能有這么幾個特點:

  1. 使用 Rust 語言編寫;
  2. 性能更好,當(dāng)然也得益于第1點;
  3. 主要開發(fā)者都是前端程序員,而且還有很多貢獻者也是前端開發(fā)者。當(dāng)然了,對于大佬們來說,語言只是實現(xiàn)功能的一個工具,用哪個都可以;

Rolldown 是什么

Rolldown 是一個用 Rust 編寫的 JavaScript bundler,旨在未來作為 Vite 中的 bundler 使用。

現(xiàn)在寫前端幾乎都是用框架了,最流程的就是 Vue、React 了?;旧隙疾捎媚K化開發(fā)了,很少有用原生js、JQuery 來開發(fā)的項目了。相比于后端而言,一個大的前端項目一點也不比后端的文件少,甚至更多。

而一個用模塊化方式編寫的項目,想要在瀏覽器上運行,還需要做一些額外的工作。其中一個非常重要的工作就是將多個JS或者 TS 文件合并到一個文件中,而這個文件,瀏覽器能直接支持。這個過程就是 bundler(捆綁器)所要做的工作。

當(dāng)然,現(xiàn)代瀏覽器對模塊化已經(jīng)支持的很好了,但是現(xiàn)在的打包服務(wù)還是會使用 bundler 打包成一個或幾個js文件來用作線上環(huán)境。因為這樣能最大限度的提高性能,尤其是減少網(wǎng)絡(luò)方面的開銷。

Rolldown 就是用來實現(xiàn)以上所說的功能的。

Rust 出手,要的就是快

現(xiàn)在主流的前端編譯工具有 Webpack 和 Vite。Webpack 是比較老牌的了,功能豐富。還有最近比較火的 Vite,Vite 也是 Vue 團隊開發(fā)的,功能對標(biāo) Webpack,只是性能要比 Webpack 高不少。

前端編譯工具所說的性能好主要體現(xiàn)在幾個方面:

  1. 打包速度快,如果一個項目巨大的話,性能差的打包工具可能要好幾分鐘;
  2. 開發(fā)調(diào)試響應(yīng)快,改完一個文件,馬上就能看到效果,而不是等上半天;

除了這兩個功能最豐富的工具外,還有功能簡單,專門用做 bundler 的 esbuild,用 Go 開發(fā),性能極好。下面是幾個常見工具打包一個簡易項目的時間。

圖片圖片

現(xiàn)在 Vite 中用的 bundler 就是倒數(shù)第二的這個 Rollup,所以這次尤雨溪大佬開發(fā) Rolldown 也就是為了將這一部分的性能提上來??疵忠埠苡幸馑?,一個 up,一個down。

前兩天尤雨溪發(fā)的博文中說到,Rolldown 比 esbuild 還要快1.4~2倍,而且功能更豐富。果然大佬不用選擇,既要性能好又要功能豐富,沒有的話,那就自己開發(fā)。就是這么任性。

圖片圖片

我看到 Hacker News 上,關(guān)于 Rolldown 有一個討論,有一條是這么說的。

圖片圖片

這是一個有趣的臨界質(zhì)量案例。幾年前,Rust 是一種不太適合啟動 JavaScript 工具(或 Python)的語言。然而,一些瘋狂的人并不在意,只是繼續(xù)這樣做。隨著時間的推移,對工具的基本投資水平突然意味著有很多可以利用的東西,它從一種晦澀的語言選擇變成了一種相當(dāng)合理的語言選擇。

Rust 的風(fēng)吹呀吹

不只是Rolldown,還有很多前端的工具正在被用 Rust 改寫。

比如 Tailwind CSS ,在最新的 4.0 版進展公告中,也有寫到關(guān)于 Rust 的一些應(yīng)用。

Rust where it counts — we’ve migrated some of the most expensive and parallelizable parts of the framework to Rust, while keeping the core of the framework in TypeScript for extensibility.

Rust 發(fā)揮了重要作用——我們已將框架中一些最昂貴且可并行的部分遷移到 Rust,同時將框架的核心保留在 TypeScript 中以實現(xiàn)可擴展性。

責(zé)任編輯:武曉燕 來源: 古時的風(fēng)箏
相關(guān)推薦

2013-07-03 13:37:37

Google

2024-01-12 17:06:50

字節(jié)面試題目

2024-09-02 14:13:15

2018-12-14 09:10:44

QLC SSD固態(tài)硬盤HDD

2023-03-29 09:00:00

2024-10-10 12:34:44

2024-07-31 09:28:56

2023-06-02 18:32:00

Rust項目開源

2019-05-14 14:07:48

分析數(shù)據(jù)NBA

2020-09-16 13:08:17

微信兒童版天眼查騰訊

2024-08-12 15:44:06

2022-06-16 08:24:44

IE瀏覽器IE瀏覽器

2024-02-28 08:38:07

Rust前端效率

2024-05-22 10:03:59

2022-09-16 07:40:17

CloudWeGo開源Rust

2022-01-14 08:45:36

編譯工具SWC前端

2024-10-18 11:48:00

2024-08-30 08:53:24

2024-12-05 10:29:13

Rust字符串類型

2018-01-27 21:19:06

前端Rust Service
點贊
收藏

51CTO技術(shù)棧公眾號