QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

Webpack 创始人推出比 Webpack“快 700 倍”的 Turbopack,基于 Rust 编写

  • 2022-10-26
    北京
  • 本文字数:1152 字

    阅读完需:约 4 分钟

Webpack 创始人推出比Webpack“快700倍”的Turbopack,基于Rust编写

10 月 26 日,Vercel 公司正式宣布推出新的打包工具 Turbopack。Webpack 创建者 Tobias Koppers 于 2021 年 4 月加入该公司,牵头了该项目。

 

Turbopack 是 Vercel 公司之前一些工作的延续。在此之前,他们用基于 Rust 的 SWC 替换基于 JavaScript 的转译器 Babel,速度提升了 17 倍。他们还替换了 Terser,压缩的速度提高了 6 倍,从而减少了加载时间和带宽的使用。

 

“Webpack 已被下载超过 30 亿次。它已成为 Web 构建不可或缺的一部分。但就像 Babel 和 Terser 一样,是时候全力以赴了。我加入了 Vercel,组建了一个团队来构建 Web 下一代的打包工具。”Tobias 说。

 

据 Vercel 首席执行官 Guillermo Rauch 介绍,与 Webpack 一样,Turbopack 也是开源的。

 


Vercel 声称 Turbopack 在大型应用中,展示出了 10 倍于 Vite 的速度,700 倍于 Webpack 的速度。在更大的应用中,差异更加巨大 —— 通常比 Vite 快 20 倍。而且启动速度飞快,在一个 3000 个模块的应用里,Turbopack 只花了 1.8 秒启动,Vite 花了 11.4 秒。

 

Rauch 说,性能改进不仅是因为基于 Rust ,还在于“基于增量计算思想的架构”。该团队借鉴了谷歌 Bazel 构建系统中的一些想法,该系统适用于大型项目。增量方法意味着避免做重复的工作,“如果你创建一个增量图,开发人员在其中进行更改,只有受影响的图部分会被重新计算。”

 

Turbopack——目前处于 alpha 预览阶段——是“一种更好的架构,我认为 Rust 和正确架构相结合意味着我们至少在 10 年内不需要改变,”Rauch 表示。

 

Turbopack 是怎么来的?“Next.js 早在 2016 年就开始使用 Webpack 作为组件,”他说。“我们可能是 Webpack 的最大用户。我们在开始时和 Webpack 创建者 Tobias 聊了很多,因为当时我们有像沃尔玛这样的客户,有超过 250 名工程师在 Next.js 代码库上工作,分享一些关于编译过程的反馈。我们意识到 JavaScript 和 TypeScript 代码的数量增长如此之快,以至于超出了基于 JavaScript 的工具和架构的能力。Tobias 也从未想过该工具会得到如此广泛的采用。”

 

Webpack 面向单页应用程序 (SPA) ,“但我们不是,因此我们改变了 Webpack 的默认设置。”当 Koppers 加入 Vercel 时,“他带来了 10 年的专业知识,见证了这件事情的发展,”Rauch 说。“他意识到架构和运行时的所有缺陷。因此,Tobias 成为了 Rust 专家。”Turbopack 一个有趣的特性是,多亏了 Rust,它可以编译成 WebAssembly 并在浏览器中运行。

 

“Turbopack 旨在成为 Webpack 的直接替代品,Next.js 是它的第一个客户,”Vercel 首席技术官 Malte Ubl 说,“随着时间的推移,我们计划针对所有开发者用例继续迭代和改进 Turbopack。”

 

延伸阅读:

https://vercel.com/blog/turbopack

https://devclass.com/2022/10/25/webpack-founder-debuts-rust-based-turbopack-that-is-700x-faster/

2022-10-26 19:0614387

评论

发布
暂无评论
发现更多内容

数据结构学习,栈篇(链式栈)

IC00

读书笔记 数据结构 算法 10月月更

Java 泛型

Yeats_Liao

后端 Java后端 Java core 10月月更

字符串拆分----split()关键字

魏铁锤

10月月更

践行ESG理念,缘何成为消费金融行业共识?

易观分析

金融 ESG

IDEA的Docker插件实战(Docker-compose篇)

程序员欣宸

Docker Docker-compose 10月月更

数据中台与业务中台的区别与联系

阿泽🧸

业务中台 10月月更

vivo互联网机器学习平台的建设与实践

vivo互联网技术

人工智能 机器学习 推荐系统

李宏毅《机器学习》P1-P2 学习笔记

Clarke

网络安全【漏洞安全】反序列化漏洞深入分析

网络安全学海

黑客 网络安全 信息安全 渗透测试 漏洞挖掘

Spring Boot「02」日志配置

Samson

Java spring 学习笔记 spring-boot 10月月更

研发效能领域的“百科全书”重磅来袭!

博文视点Broadview

requests的介绍

芯动大师

Python requests 10月月更

Spring之DI依赖注入

楠羽

笔记 spring】 10月月更

AndroidStudio最新版(2021.1.21)编译C++代码生成so文件

中国好公民st

c++ Android; 10月月更

LinkedList源码分析(四)

知识浅谈

linkedlist 10月月更

Qt | 深入了解Qt的委托类

YOLO.

qt 10月月更 C++

Qt | Qt的动画框架和类

YOLO.

qt 10月月更 C++

强大的爬虫框架 Scrapy

芯动大师

Scrapy scrapy框架 10月月更

Web前端 | HTML5学习

亮点

html web前端 10月月更

Spring JPA 如何进行无参数查询布尔类型

HoneyMoose

大数据ELK(二十一):Logstash简介和安装

Lansonli

Logstash 10月月更

Python进阶(十)Python 编程规范

No Silver Bullet

Python 编程规范 10月月更

两数之和

掘金安东尼

算法 10月月更

2022-10-10:以下go语言代码输出什么?A:[1 2 3 0 1 2];B:死循环;C:[1 2 3 1 2 3];D:[1 2 3]。 package main import “fmt“

福大大架构师每日一题

golang 福大大 选择题

Beautiful Soup库的介绍

芯动大师

Python BeautifulSoup 10月月更

谈谈前端性能优化-面试版

loveX001

JavaScript

SeaTunnel连接器V1到V2的架构演进与探究

Apache SeaTunnel

API 数据集成 连接器 Apache SeaTunnel 数据集成平台

一文搞懂CAN总线协议帧格式

不脱发的程序猿

汽车电子 CAN总线 CAN总线协议帧格式

数据库自动化运维实践

穿过生命散发芬芳

数据库运维 10月月更

cstdio的源码学习分析08-设置文件流buffer函数setbuf

桑榆

源码刨析 10月月更 C++

年底前端面试题总结(上)

loveX001

JavaScript

Webpack 创始人推出比Webpack“快700倍”的Turbopack,基于Rust编写_语言 & 开发_Tina_InfoQ精选文章