1、Rust 与前端工程化与前端工程化Rust 在前端工程化领域内的发展以及字节跳动的实践目录目录1.Rust 在前端行业的发展2.字节跳动的实践3.Rust 中等复杂系统的设计ByteDance Web Infra Team为字节内 5000+前端研发提供基础设施工程化、研发框架、微前端解决方案、AI etc负责 Rspack/Rsbuild/Modern.js 等开源项目欢迎关注我们 https:/ Web Infra 前端负责人我们还招架构师,有兴趣可以联系我 zoolsher分享内容包含利益相关部分Rust 的发展的发展Rust 的发展的发展.在生产环境中有些应用经常需要在生产环境中有些应
2、用经常需要 20 30 分钟的构建时间分钟的构建时间.一个项目怎么可能构建 30 分钟?什么项目会有 5w 个模块?用 Rust 构建前端项目是不是空气炮打蚊子?把工程重构一下就行了,完全不用搞这么复杂的东西我从来没做过构建超过 10 分钟的项目?工程怎么做的这么差?微前端不能解决问题么?从来没见过这么大的项目Rust 的发展的发展499.9w 行 TS 代码;迭代 11 Years;构建超过 60mins;5w+TS 文件;Kibana 项目Discord 项目接入 Rspack 前 11 mins 构建时长社区项目.big legacy frontend monolith project.
3、almost 1 hour.Rust 的发展的发展前端生态逐渐成熟20122020ClassStatic blockasyncOptional chainTypeScriptPromiseESMArrowSymbolShadowRealmPrivateTLASpreadfor ofTemplate literalRust 的发展的发展稳定且标准的组件正在慢慢的原生化Bundler语言编译器SWCJSJSXTSTSXCSSTransformerSolidVueForgetSvelteFrameworkNext.jsRspackRolldownesbuildParcelIcePackngRemix
4、Modern.jsetcHTMLRust 的发展的发展Node.js?Rust!RustNode.js1.多线程2.语言性能3.GC1.工具链完善2.生态丰富3.无畏并发4.wasm 友好cargo 37 个命令Rust Analyzer包还算多JavaScript 1856 个FearlessBiome PlaygroundRust 的发展的发展字节跳动的实践字节跳动的实践esbuildRspackall in rust跨端插件少,定制性功能少Web 生态插件多,业务自定义插件多跨端场景不太需要 HMR 支持Web 场景内 HMR 有限,但 esbuild 支持不好跨端场景就一个 bundl
5、eWeb 场景小 chunk 引起性能劣化白色的图标是 Lynx,是一个类似 RN 的跨端框架字节跳动的实践字节跳动的实践esbuildRspackall in rust工具的使用者和工具的开发者应该使用同一门编程语言?JS 本身并不慢,工具的性能并不是由语言决定的,只要设计好合理的架构就能发挥出性能?Webpack 慢不是慢在 Webpack,而是慢在插件上,所以做 Rspack 没有意义?社区没有能解决我们问题的我们决定自己做一个一些质疑的声音:字节跳动的实践字节跳动的实践esbuildRspackall in rust跨端场景Monorepo微前端中后台移动端组件库小程序文档站把控力强的
6、场景 All Rust Tool字节跳动的收获字节跳动的收获性能收益Workflow 优化很多业务取得了 10 倍的性能收益CI CD 构建时间下降本地 Dev HMR 时间缩短基于 Rspack 的 CI 流程,将一切检查左移字节跳动遇到的挑战字节跳动遇到的挑战rsdoctor.dev for more源码分发变成了二进制产物分发,为了避免答疑黑洞,方便开发者理解系统,准备调试工具,将 Rust 内部架构白盒化Rust 工具使用者调试困难字节跳动遇到的挑战字节跳动遇到的挑战NAPIRPC源码集成WASM 集成业内