farm is a free, open source build & deployment project written in Rust and released under MIT. It has 5,588 GitHub stars, 190 forks and 211 open issues, and was last pushed 3 months ago. On this registry it ranks #25 of 59 tracked projects in Build & Deployment, with 5 head-to-head comparisons available.

What is farm?

What it is

Farm is a web build tool written in Rust and distributed under the MIT license. It lives in the JavaScript and TypeScript frontend tooling ecosystem, where it sits alongside bundlers such as webpack and Vite, and it is designed to be compatible with Vite so that existing plugins can be reused. The project is hosted on GitHub, has reached a 1.0 stable release that the README describes as production ready, and ships with documentation and an online playground at farmfe.org.

The concrete problem Farm addresses is the cost of building and rebuilding large frontend projects. The README argues that webpack is too slow, while Vite degrades on large projects because a page with hundreds or thousands of modules produces a huge number of requests during development, so a refresh can take seconds. It also points to inconsistency between development and production, where different strategies and tools are used in each, making online issues hard to debug, and to inflexible code splitting that makes bundle output hard to control. Farm targets these three points directly through its Rust implementation and its build strategy.

Key capabilities

  • Written in Rust, with the README claiming a React or Vue project starts in milliseconds and most HMR updates complete within 20ms.
  • Incremental building with a persistent disk cache enabled by default since v0.14, so a module is not compiled twice until it changes.
  • Fully pluggable architecture that supports Vite plugins out of the box since v0.13, plus Farm compilation plugins written in Rust or JavaScript, SWC plugins, runtime plugins, and server plugins.
  • Out-of-the-box compilation of JS, TS, JSX, TSX, CSS, CSS Modules, HTML, and static assets, with official plugins for React, Vue, Sass, Less, and PostCSS.
  • Lazy compilation, where dynamically imported resources are compiled only when requested.
  • Partial bundling, which groups a project into a few reasonable bundles to speed up resource loading without losing caching granularity.
  • Consistency between development and production output, plus support for both legacy ES5 and modern browsers, along with production optimization such as tree shaking and minification.

Who uses it and how

  • Teams building React or Vue applications who want a Vite-compatible toolchain while avoiding the large-request-count behavior of native ESM development servers.
  • Projects with hundreds or thousands of modules per page, where HMR latency and full-page refresh times matter during day-to-day development.
  • Engineering groups that need development and production builds to behave the same way, so that issues seen online can be reproduced locally.
  • Projects that need fine control over bundle output and want automatic grouping via partial bundling rather than hand-tuned configuration.
  • Existing Vite users who want to reuse their Vite plugins and migrate incrementally, as well as projects that must still ship ES5 output alongside modern builds.
  • Readers can try the tool without local setup through the CodeSandbox link in the README.

Getting started

Scaffold a new project with npm create farm@latest, yarn create farm@latest, or pnpm create farm@latest. Full guidance lives at the Farm documentation site, farmfe.org.

When to use it — and when not to

The facts provided list no paid product that Farm replaces, so no such comparison can be made here. A user adopting Farm is not operating a server-side stack such as a database, object storage, or SMTP; the tool runs as a build-time dependency on the developer's machine or in CI, which keeps operational burden low. The main caveats visible in the facts are that the performance claims come from the project's own benchmark repository, and that the repository carries 211 open issues at the time of writing, so teams should

project readme (upstream, from github) — read inline

Extremely fast, Vite-compatible web build tool written in Rust

English | 简体中文

discord chat npm package node compatibility downloads license Gurubase



Intro

Farm is an extremely fast, Vite-compatible web build tool written in Rust. Designed to be fast, powerful, and consistent, it delivers the best web development experience — the real next-generation build tool.

Online experience

Edit Farm

Why Farm?

See Why Farm for details.

In short, tools like webpack are too slow, but new tools like Vite are not perfect, Vite has a lot of drawbacks when comes to a large project:

  • A huge number of requests during development:when there are hundreds or thousands modules per page, loading performance severely degraded, it may takes seconds or more when refresh the page.
  • Inconsistency between development and production: Using different strategy and tools in development and production, it's really inconsistent and it's hard to debug online issues.
  • Inflexible Code Splitting: It's hard to control the output of your bundles.

Farm can solve these problems perfectly, and it's really fast cause it's written in Rust. Farm aims to be fast, consistent, flexible, which is the real next generation build tool.

Features

[!NOTE]

  • Extremely Fast: Written in Rust, start a React / Vue project in milliseconds and perform an HMR update within 20ms for most situations.
  • Incremental Building: Support persistent cache, module level cache enabled by default, any module won't be compiled twice until it's changed!
  • 🧰 Fully Pluggable and Vite Compatible: Everything inside Farm is powered by plugins, Support Vite Plugins out of box. Supports Farm compilation plugins(both Rust and JavaScript plugins, and SWC plugins), Farm runtime plugins and Farm server plugin.
  • ⚙️ Powerful: Compiles JS/TS/JSX/TSX, CSS, CSS Modules, HTML, and static assets out of the box. Official compilation plugins for React, Vue, Sass, Less, PostCSS, and more.
  • ⏱️ Lazy Compilation: Dynamically imported resources are compiled only when requested, speed up compilation for large scale project. Just write a dynamic import and the imported module won't be compiled when it is executed.
  • 📦 Partial Bundling: Bundle your project into a few reasonable bundles automatically, speeding up resource loading without losing caching granularity. Refer to RFC-003 Partial Bundling for details.
  • 🔒 Consistency: What you see in development will be the same as what you get in production.
  • 🌳 Compatibility: Supports both legacy (ES5) and modern browsers.

Farm has implemented all features of a web build tool, including production optimization like tree shake and minification. It's now 1.0 stable. We have already migrated enterprise projects to Farm, and it works great!

See RFC-001 Architecture for design motivation and architecture.


Getting Started

Create a new Farm project with your favorite package manager:

# with npm
npm create farm@latest
# with yarn
yarn create farm@latest
# with pnpm
pnpm create farm@latest

Visit Farm Documentation to learn more about Farm.

Benchmark

Farm is much faster than similar tool, 20x faster than webpack and 10x faster than Vite in the benchmark:

benchmark

See Benchmark for details.

Contribution

See Contributing Guide.

Chat With Us


  • QQ group


Contributors




Contributors of farm-fe/farm

  </td>
New trends of farm-fe
  </td>
</tr>

Contributors of farm-fe/farm

  </td>
</tr>

Credits

Thanks to https://github.com/tmm who donated the farm npm package to the Farm team.

Thanks to projects:

readme truncated — read the full docs on github

Frequently asked questions

Is farm free to use?

farm is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does farm do?

Extremely fast Vite-compatible web build tool written in Rust

What is farm written in?

farm is primarily written in Rust. Its source is publicly available at https://github.com/farm-fe/farm, and it has 5,588 GitHub stars.