Farm 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
Farm 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
Farm 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 MIT
操作系统 跨平台
软件类型 开源软件
所属分类 开发工具项目构建
开源组织
地区 国产
投 递 者
适用人群 未知
收录时间 2023-03-13

软件简介

Farm 是一个使用 Rust 编写的极速构建引擎。

特性

  • 超级快:所有编译均由 Rust 实现,多线程编译,毫秒级项目启动、2ms HMR。比业界同类工具 Webpack 快 10 倍,比 vite 快 5 倍。
  • 丰富的编译能力支持:默认支持 Html、Css、Js、Jsx、Ts、Tsx、静态资源(图片、字体等)等模块的编译能力,所有 web 资源均作为一等公民编译,所有编译能力开箱即用。
  • 懒编译:默认采用按需编译,除首屏需要的模块外,其他模块均在加载时编译!因首屏能展示的内容有限,理论上对任意规模的项目,Farm 都能支持秒启动!
  • 插件化:Farm 的所有能力均由插件实现,任意功能都可以通过插件定制、扩展。Farm 同时支持 Rust 插件以及 Js 插件。
  • 一致性:Farm 在开发环境和生产环境下的编译行为保持一致,开发时所见即最终所得。
  • 局部 Bundle:Farm 会自动识别模块依赖图,基于依赖关系,产物大小等因素,自动生成若干个小 Bundle,提升资源加载速度以及缓存命中率。

架构设计

Farm 整体的架构图如下:

 

Farm 主要分为两个部分,Js 侧以及 Rust 侧

  • Js侧:实现 Farm CLI、Dev Server 以及运行时能力,并通过 napi 与 Rust 构建核心交互。
  • Rust侧:负责核心的编译流程实现、编译上下文等,所有编译过程在线程池中以最大并发量执行。

整个编译流程分成 Build Stage 以及 Generate Stage(借鉴了 Rollup 中的概念,但是和 Rollup 的实现完全不同)。Build Stage 负责解析和编译所有模块,并生成模块图,Generate Stage 中基于模块依赖图进行局部 bundle、runtime 注入、压缩/treeshake(实现中)、产物生成等。

性能

官方数据显示,Farm 比 Webpack 快 10+ 倍,比 vite 快 5 倍。对于一个基础的 React 项目,性能对比数据如下:

  Webpack Vite Farm 对比
冷启动时间 853ms 276ms 67ms 比 webpack 快 12 倍,比 vite 快 4 倍
HMR 时间 43ms 23ms 2ms 比 webpack 快 20 倍, 比 vite 快 10倍
onload 时间 83ms 310ms 57ms 比 vite 快 5 倍,与 webpack 接近
项目可访问总时间 936ms 586ms 124ms 比 webpack 快 8 倍,比 vite 快 5 倍

性能对比的测试仓库地址:https://github.com/farm-fe/performance-compare

测试机器(Linux Mint 21.1 Cinnamon, 11th Gen Intel© Core™ i5-11400 @ 2.60GHz × 6, 15.5 GiB)

注:因为 Vite 对于源代码是请求时编译,所以此处加上了 “项目可访问时间”(即 “冷启动时间” + “页面加载时间”),作为另一个指标来综合对比性能。

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击加入讨论🔥(5) 发布并加入讨论🔥
暂无内容
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
暂无内容
5 评论
11 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部