web-infra-dev/rspack
GitHub: web-infra-dev/rspack
基于 Rust 的高性能 JavaScript 打包工具,兼容 webpack 生态,解决大型前端项目构建慢的问题。
Stars: 12526 | Forks: 768
# Rspack
English | [简体中文](./README.zh-CN.md)
Rspack 是一个由 Rust 编写的高性能 JavaScript 打包工具。它提供了与 webpack 生态系统的强大兼容性,允许无缝替换 webpack,并提供了闪电般的构建速度。
## ✨ 特性
- 🚀 **极速启动**:基于 Rust,构建速度极快,为您带来极致的开发体验。
- ⚡ **闪电般 HMR**:内置增量编译机制,HMR 速度极快,完全能够应对大规模项目的开发。
- 📦 **Webpack 兼容**:兼容 webpack 生态系统中的插件和 loader,无缝整合社区构建的优秀库。
- 🎨 **Module Federation**:提供一流的 Module Federation 支持,以便利大规模 Web 应用的开发。
- 🛠️ **生产优化**:默认内置了各种优化策略,例如 tree shaking、代码压缩等。
- 🎯 **框架无关**:不绑定任何前端框架,确保足够的灵活性。
阅读[介绍](https://rspack.rs/guide/start/introduction)了解详情。
## 🦀 Rstack
Rstack 是一个以 Rspack 为中心的统一 JavaScript 工具链,具有高性能和一致的架构。
| 名称 | 描述 | 版本 |
| ----------------------------------------------------- | -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Rspack](https://github.com/web-infra-dev/rspack) | 打包工具 |

|
| [Rsbuild](https://github.com/web-infra-dev/rsbuild) | 构建工具 |

|
| [Rslib](https://github.com/web-infra-dev/rslib) | 库开发工具 |

|
| [Rspress](https://github.com/web-infra-dev/rspress) | 静态站点生成器 |

|
| [Rsdoctor](https://github.com/web-infra-dev/rsdoctor) | 构建分析器 |

|
| [Rstest](https://github.com/web-infra-dev/rstest) | 测试框架 |

|
| [Rslint](https://github.com/web-infra-dev/rslint) | Linter |

|
## 快速开始
参见[快速开始](https://rspack.rs/guide/start/quick-start)。
### 行为准则
本仓库采纳了字节跳动开源行为准则。请查看[行为准则](./CODE_OF_CONDUCT.md)了解更多详情。
## 链接
| 名称 | 描述 |
| ------------------------------------------------------------------------------ | ----------------------------------------------------------------------------- |
| [awesome-rstack](https://github.com/rstackjs/awesome-rstack) | Rstack 相关的精选资源列表 |
| [agent-skills](https://github.com/rstackjs/agent-skills) | Rstack Agent Skills 集合 |
| [Rspack 2.x 文档](https://v2.rspack.rs/) | Rspack 2.x 文档 (beta) |
| [Rspack 1.x 文档](https://rspack.rs/) | Rspack 1.x 文档 (latest) |
| [Rspack 0.x 文档](https://v0.rspack.rs/) | Rspack 0.x 版本文档 |
| [rspack-dev-server](https://github.com/web-infra-dev/rspack-dev-server) | Rspack 开发服务器 |
| [rstack-examples](https://github.com/rstackjs/rstack-examples) | Rstack 示例展示 |
| [rspack-sources](https://github.com/rstackjs/rspack-sources) | [webpack-sources](https://www.npmjs.com/package/webpack-sources) 的 Rust 移植版 |
| [rstack-design-resources](https://github.com/rstackjs/rstack-design-resources) | Rstack 设计资源 |
## 基准测试
参见[基准测试](https://ecosystem-benchmark.rspack.rs/)。
## 致谢
感谢:
- [webpack 团队和社区](https://webpack.js.org/) 创建了伟大的打包工具和生态系统,我们从中汲取了大量灵感。
- [@sokra](https://github.com/sokra) 在 [webpack](https://github.com/webpack/webpack) 项目上的杰出工作。
- [@ScriptedAlchemy](https://github.com/ScriptedAlchemy) 创建了 Module Federation 并帮助 Rspack 与社区建立联系。
- 由 [@kdy1](https://github.com/kdy1) 创建的 [SWC](https://github.com/swc-project/swc) 项目,它为 Rspack 的代码解析、转换和压缩提供支持。
- 由 [@evanw](https://github.com/evanw) 创建的 [esbuild](https://github.com/evanw/esbuild) 项目,它启发了 Rspack 的并发架构。
- 由 [@Brooooooklyn](https://github.com/Brooooooklyn) 创建的 [NAPI-RS](https://github.com/napi-rs/napi-rs) 项目,它为 Rspack 的 Node 绑定实现提供支持。
- 由 [@devongovett](https://github.com/devongovett) 创建的 [Parcel](https://github.com/parcel-bundler/parcel) 项目,它是 Rust 打包工具的先驱,并启发了 Rspack 的增量重建设计。
- 由 [Evan You](https://github.com/yyx990803) 创建的 [Vite](https://github.com/vitejs/vite) 项目,它启发了 Rspack 对 webpack 生态系统的兼容性设计。
- 由旧 Rolldown 团队创建的 `rolldown-legacy` 项目,它是 [rolldown](https://github.com/rolldown) 项目的前身,探索了在 Rust 中制作具有 Rollup 兼容 API 的高性能打包工具的可能性。它启发了 Rspack 的设计原则。
- 由 [@jantimon](https://github.com/jantimon) 创建的 [html-webpack-plugin](https://github.com/jantimon/html-webpack-plugin) 项目,`@rspack/html-plugin` 是 [html-webpack-plugin](https://github.com/jantimon/html-webpack-plugin) 的一个分支,旨在避免 Rspack 不支持某些 webpack API 的使用。
- [Turbopack](https://github.com/vercel/turbo) 项目,启发了 Rspack 的 AST 路径逻辑。
- 由 [@pmmmwh](https://github.com/pmmmwh) 创建的 [react-refresh-webpack-plugin](https://github.com/pmmmwh/react-refresh-webpack-plugin),启发了 [react refresh rspack plugin](https://github.com/rstackjs/rspack-plugin-react-refresh) 的实现。
- 由 [@Jovi De Croock](https://github.com/JoviDeCroock) 创建的 [prefresh](https://github.com/preactjs/prefresh),启发了 [preact refresh rspack plugin](https://github.com/rstackjs/rspack-plugin-preact-refresh) 的实现。
- 由 [@sokra](https://github.com/sokra) 创建的 [mini-css-extract-plugin](https://github.com/webpack/mini-css-extract-plugin) 项目,启发了 CSS 提取插件的实现。
- 由 [@kevlened](https://github.com/kevlened) 创建的 [copy-webpack-plugin](https://github.com/webpack/copy-webpack-plugin) 项目,启发了 copy rspack plugin 的实现。
- 由 [@jscheid](https://github.com/jscheid) 创建的 [webpack-subresource-integrity](https://github.com/waysact/webpack-subresource-integrity) 项目,启发了 subresource integrity rspack plugin 的实现。
- 由 [@aackerman](https://github.com/aackerman) 创建的 [circular-dependency-plugin](https://github.com/aackerman/circular-dependency-plugin) 项目,启发了 circular dependency rspack plugin 的实现。
- 由 [thoren-d](https://github.com/thoren-d) 创建的 [tracing-chrome](https://github.com/thoren-d/tracing-chrome) 项目,启发了 Rspack 追踪功能的实现。
## 许可证
Rspack 基于 [MIT 许可证](https://github.com/web-infra-dev/rspack/blob/main/LICENSE)授权。
标签:DNS解析, GNU通用公共许可证, HMR, JavaScript 打包器, MITM代理, Node.js, NPM 包, Rspack, Rust, SWC, Webpack 替代品, Web 开发, 前端工程化, 可视化界面, 增量编译, 开发效率, 开源项目, 数据可视化, 模块打包, 现代前端, 网络可观测性, 网络流量审计, 通知系统, 通知系统