10 月 23 - 25 日,QCon 上海站即将召开,现在购票,享9折优惠 了解详情
写点什么

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:0615491

评论

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

纳瓦尔宝典:财富与幸福指南

石云升

读书笔记 财务自由 幸福 8月月更

使用 Google Breakpad 来助力解决程序崩溃

HelloWorld杰少

ios 游戏开发 崩溃分析 google_breakpad 8月月更

《Effective Java》第16条:要在仅有类中使用访问方法而非公有域

okokabcd

Java

MobTech ShareSDK 使用简介

MobTech袤博科技

开发者 sdk MobTech袤博科技

为什么我们需要关注基于 EIP-3664 标准的可拆分,可组合的NFT?

股市老人

Java避坑指南:Java中 java.lang.String你真的以为是不可变的吗?java11和java17是相同的结果吗?

崔认知

王熙凤穿越到 2022 年,一定会采购的单点登录服务

Authing

鸿蒙设备开发之从0到1联网上云-概述篇

愚公搬代码

签约计划第三季

(WebFlux)002、如何打印日志与链路ID

编号94530

spring 日志 aop SpringWebflux Reactor3

RocketMQ顺序消息之消息消费

急需上岸的小谢

8月月更

每日一R「05」生命周期

Samson

学习笔记 8月月更 ​Rust

Redis 基础

武师叔

8月月更

开源一夏 | 腾讯云对象存储cos获取图片像素信息

六月的雨在InfoQ

腾讯云 开源 COS 8月月更

云原生(十五) | Kubernetes篇之深入了解Pod

Lansonli

云原生 k8s 8月月更

企业中的知识管理价值是怎样体现的

Baklib

GitLab 自动删除项目?仅需四步,丝滑迁移至极狐GitLab

极狐GitLab

git DevOps gitlab 敏捷开发 极狐GitLab

一篇文章让你重学HTTP!

Albert Edison

https 计算机网络 HTTP 8月月更

数据结构——队列

工程师日月

8月月更

MyBatis(一、快速入门)

开源 springmvc Mybati 8月月更

使用 JavaScript Promise 读取 Github 某用户的数据

汪子熙

JavaScript Promise 异步编程 Javascript框架 8月月更

Mysql命令大全

跳楼梯企鹅

MySQL #数据库

企业与团队怎样建立一个有效的、切实可行的知识管理系统

Baklib

《Effective Java》第9条:try-with-resources优先于try-finally

okokabcd

Java

离线渲染与实时渲染杂谈——从发布会上的产品展示说起

3DCAT实时渲染

企业为何要实行知识管理?

Baklib

架构师第一课,一文带你玩转ruoyi架构

小鲍侃java

框架 Java web 构架 spring-boot 签约计划第三季

SRv6在SFC中的应用

穿过生命散发芬芳

8月月更 SRv6

Spring Cloud Stream简介

阿泽🧸

spring cloud stream 8月月更

大数据技术生态,不懂你捶我

大数据指北

大数据 大数据开发

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