Rspack:字节跳动与Valor Software开源Rust编写的Web打包工具
字节跳动与Valor Software近期开源了Rspack,这是一款基于Rust编写的Web打包工具,旨在成为Webpack的快速替代品。早期基准测试显示,Rspack在冷启动时间上比Webpack快10倍。
开发背景
字节跳动开发Rspack的主要目的是缩短生产构建时间,一些项目的构建时间已增长到10分钟甚至半小时,冷启动时间也可能超过几分钟。为了降低迁移成本并保持Webpack配置机制的灵活性和生产优化,Rspack被设计为具有以下特性:
主要特性
- 快速启动:基于Rust,构建速度极快,提供极致的开发体验。
- 热模块替换(HMR):内置增量编译机制,HMR速度极快,适合大型项目开发。
- Webpack兼容:兼容Webpack的架构和生态系统,无需从零构建生态系统。
- 开箱即用:支持TypeScript、JSX、CSS、CSS Modules、Sass等。
- 生产优化:内置多种优化策略,如Tree Shaking、代码压缩等。
- 框架无关:不绑定任何前端框架,确保足够灵活性。
性能提升
性能提升取决于设备、项目结构和大小。字节跳动的基准测试使用了公开的Webpack基准测试工具和自定义代码库。测试结果显示,Rspack在开发冷启动时间上比Webpack(使用Babel)快10倍以上,增量构建时间快3倍。Nx在其代码库中也报告了类似的结果。
项目现状
尽管Rspack最近才开源,但其已开发一年。项目仍处于早期阶段,缺乏许多Webpack功能。Rspack团队计划进一步增加对Webpack生态系统的支持,特别是兼容Webpack的配置模式和加载器架构,并计划支持更复杂的加载器如vue-loader。
背景与趋势
Rspack由字节跳动内部平台开发团队启动。内部开发者平台和平台工程团队正越来越多地用于企业的DevOps实践中。Rust正越来越多地用于Web工具链以显著提高性能,如Parcel和Rome等项目也在使用Rust。
开源与反馈
Rspack是MIT许可证下的开源软件,欢迎反馈,应遵循贡献指南和行为准则。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。