Rustifying Vite: Designing a Hybrid Toolchain for the Real World

This ad is not shown to multipass and full ticket holders
JSNation US
JSNation US 2026
November 16 - 19, 2026
New York, US & Online
Upcoming event
JSNation US 2026
JSNation US 2026
November 16 - 19, 2026. New York, US & Online
Bookmark
Rate this content
Sentry
Promoted
Code breaks, fix it faster

Crashes, slowdowns, regressions in prod. Seer by Sentry unifies traces, replays, errors, profiles to find root causes fast.

Get started

JavaScript tooling is fast until it isn't. As projects scale, even well-designed JS-based tools start to hit ceilings around cold starts, dealing with large dependency graphs, and CPU-heavy transforms. The obvious answer seems to be "rewrite it in Rust" except that reality is messier.

This talk is a deep dive into what actually happens when you introduce Rust into a JavaScript-first toolchain, with Vite as the core example. We'll explore how Vite’s architecture enables selective rustification, and what we learned from building hybrid pipelines that mix JavaScript and Rust without wrecking DX.

This talk has been presented at JSNation 2026, check out the latest edition of this JavaScript Conference.

Alexander Lichter
Alexander Lichter
6 min
11 Jun, 2026

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Options for pre-bundling, transformation, and minification. Rollup, bundling, and limited chunk control. SWC for React, but complexity with multiple bundlers causing issues for maintainers and developers. Limitations in bundlers, features V8 needs. Improving build times with Rust. Introducing Roldown with rollup's API, compatibility, speed, and advanced chunking. Features like module types, lazy barrel optimization, HMR, and built-in minifier for a performant bundle. Ensuring Rust-based bundler compatibility with JavaScript ecosystem. Introduction of Swangular for efficient plugin handling. Native Rust plugins support with module resolution, aliases, TypeScript JSX transform, dynamic imports. Integration with underlying minifier, transformer, linter, and formatter for tool chain V+.

1. Exploring Bundler Options and Challenges

Short description:

Options for pre-bundling, transformation, and minification. Rollup, bundling, and limited chunk control. SWC for React, but complexity with multiple bundlers causing issues for maintainers and developers.

So let's get started. So, we've got a lot of options here for pre-bundling, for transformation, for minification, rollup, bundling, the plug-in system, all of your favorite frameworks' plug-in are rollup plug-ins to some degree as well, and also very limited chunk control. And then for the React folks here, there was also SWC that you could use as an alternative for transforms, for React fast refresh, etc. But the problem is, well, these are three tools together in one bigger build tool. This already sounds like pain, right? So at some point we thought, why not unifying this whole layer, the underlying bundler layer? And that meant the following. We take this, we take it all away, switch the logo because that happened in V8 eventually, and then there is rolldown, one bundler through them all. So you're like, why is there another bundler? Why can't we use one of these that exists already, or like TurboPack or what Tobias talked about earlier, or Webpack, etc.? Well, it's complicated. Right? But first of all, multiple bundlers under the hood, of course, complexity. It's a big problem for the V8 maintainers, the contributors, but also the developers because it introduces inconsistencies between development and between production, which sucks.

2. Introducing Roldown and Rust Integration

Short description:

Limitations in bundlers, features V8 needs. Improving build times with Rust. Introducing Roldown with rollup's API, compatibility, speed, and advanced chunking. Features like module types, lazy barrel optimization, HMR, and built-in minifier for a performant bundle.

Then there's also limitations. Some bundlers say, oh, we don't implement A, B, C, so neither rollup nor A is built. Wanted to introduce certain features because they said, hey, it's out of scope. And it's fine, but these are features V8 and maybe all you need. And then of course, time. Right? We also know back in the days that Webpack times would take a long time. And now builds are faster, but they could be even faster now.

So of course, what do we do? We read everything at Rust. We are 10x developers. Let's go. Jokes aside, time to meet Roldown. And yes, that just rolled down on purpose. So Roldown itself is bored and just like, hey, let's take rollup and port it to Rust because it's not that easy. Instead, we decided to combine the best parts that we have of prior art. So rollup's API, all the plugins are still compatible. Right? Very important, so you don't really have to migrate things away and over. It would be like a huge churn for everybody.

Speed and also behavior for me is built. Right? Things like inject, define, et cetera. And also we inspired, we got inspired by Webpack to have some more advanced chunking. So you can make sure your JavaScript applications are as performant as possible. You can split it up in files as needed. And there's also more, of course. More features like module types, lazy barrel optimization, built-in HMR, input map generation, et cetera, et cetera, et cetera. There's a lot. And also, of course, there's built-in minifier and transformer. So you can have syntax lowering, or your TypeScript is being transferred over to JavaScript and your code is minified. So you have a very performant bundle in the end. So that's what rolldown can do. But also, yeah, it feels a bit strange, right? Wake up, there's another Rust rewrite.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Vite: Rethinking Frontend Tooling
JSNation Live 2021JSNation Live 2021
31 min
Vite: Rethinking Frontend Tooling
Top Content
Vite is a next-generation build tool that leverages native ES modules for improved performance. It eliminates the need for bundling and improves hot module replacement. Vite provides an opinionated default configuration while still allowing advanced customization through plugins. It is framework agnostic and can be used for React and other applications. Vite is being adopted by Next.js and Create React App, and integration with Nuxt 3 offers significant speed improvements.
Welcome to Nuxt 3
Vue.js London Live 2021Vue.js London Live 2021
29 min
Welcome to Nuxt 3
Top Content
Nux3 has made significant improvements in performance, output optimization, and serverless support. Nuxt Bridge brings the Nitro engine for enhanced performance and easier transition between Nuxt 2 and Nuxt Read. Nuxt 3 supports Webpack 5, Bytes, and Vue 3. NextLab has developed brand new websites using Docus technology. Nuxt.js is recommended for building apps faster and simpler, and Nuxt 2 should be used before migrating to Nuxt 3 for stability. DOCUS is a new project that combines Nuxt with additional features like content modules and an admin panel.
The Future of Performance Tooling
JSNation 2022JSNation 2022
21 min
The Future of Performance Tooling
Top Content
Today's Talk discusses the future of performance tooling, focusing on user-centric, actionable, and contextual approaches. The introduction highlights Adi Osmani's expertise in performance tools and his passion for DevTools features. The Talk explores the integration of user flows into DevTools and Lighthouse, enabling performance measurement and optimization. It also showcases the import/export feature for user flows and the collaboration potential with Lighthouse. The Talk further delves into the use of flows with other tools like web page test and Cypress, offering cross-browser testing capabilities. The actionable aspect emphasizes the importance of metrics like Interaction to Next Paint and Total Blocking Time, as well as the improvements in Lighthouse and performance debugging tools. Lastly, the Talk emphasizes the iterative nature of performance improvement and the user-centric, actionable, and contextual future of performance tooling.
Vite and the Future of JavaScript Tooling
JSNation 2025JSNation 2025
23 min
Vite and the Future of JavaScript Tooling
Top Content
Evan Yeo discusses Vite's growth, challenges with dependencies like ES Build and Rollup, and the creation of the bundler Rolldown. The JavaScript ecosystem faces fragmentation, but the company aims for a unified JavaScript stack. Rust is chosen for lower-level development, while JavaScript and TypeScript for high-level APIs. Roldown offers advanced bundling features, outperforming existing tools. Integration with Vite leads to tailored optimizations and significant speed improvements. Vite+ development focuses on creating a comprehensive toolkit. VitePlus integrates TS-down for library bundling, ViteTest for testing, and OX-Lint for linting. Future plans include monorepo awareness, build orchestration, and framework-like features.
No REST for Cap'n Web
Node Congress 2026Node Congress 2026
23 min
No REST for Cap'n Web
Top Content
Kenton Varda advocates for using CapnWeb, an RPC protocol, over REST for web APIs, emphasizing benefits for humans and AI agents. CapnWeb simplifies client-server communications by treating them as function calls. TypeScript type checking ensures method accuracy in CapnWeb across JavaScript runtimes. Stubs in CapnWeb allow method calls to execute on remote objects and simulate all possible method names for remote calls. Converting REST APIs to CapnWeb streamlines code and improves API calls. CapnWeb enhances API functionality with object-specific RPC sessions and promises pipelining for multilevel API optimization. AI agent security challenges are addressed with sandboxing and token protection in CapnWeb. CapnWeb capabilities for AI agents include passing restricted CapnWeb stubs and exploring capability-based security with CapnProto.
10 Years of Independent OSS: A Retrospective
JSNation 2024JSNation 2024
33 min
10 Years of Independent OSS: A Retrospective
Top Content
This talk is a ten-year retrospective into the growth of the Vue.js framework as an open-source project. It highlights the challenges faced by open-source developers, the importance of finding balance and managing scope, and the collaborative nature of the Vue community. The talk also discusses the development of Vite as a build tool and the vision for a unified JavaScript toolchain. It emphasizes the need for community alignment, contributions, and testing, while acknowledging the challenges of bad actors in the open-source community.

Workshops on related topic

Pragmatic 101 on Custom JS Tooling for Your Project
JSNation US 2025JSNation US 2025
122 min
Pragmatic 101 on Custom JS Tooling for Your Project
Featured Workshop
Will Klein
Will Klein
Let’s demystify the secrets of modern JavaScript tooling. In this workshop, you will learn how linters, compilers, and code transforms work. You will take your first steps building your own developer tools, writing an ESLint rule, a compiler plugin, and a code transformation. Learn these skills to help your team and deepen your understanding of computer languages.Workshop Plan:A preview of how ASTs can be usedA brief walkthrough of how compilers workAn intro to working with an ASTThe secret to making thousands of changes in secondsHow to apply this skill
Solve 100% Of Your Errors: How to Root Cause Issues Faster With Session Replay
JSNation 2023JSNation 2023
44 min
Solve 100% Of Your Errors: How to Root Cause Issues Faster With Session Replay
WorkshopFree
Ryan Albrecht
Ryan Albrecht
You know that annoying bug? The one that doesn’t show up locally? And no matter how many times you try to recreate the environment you can’t reproduce it? You’ve gone through the breadcrumbs, read through the stack trace, and are now playing detective to piece together support tickets to make sure it’s real.
Join Sentry developer Ryan Albrecht in this talk to learn how developers can use Session Replay - a tool that provides video-like reproductions of user interactions - to identify, reproduce, and resolve errors and performance issues faster (without rolling your head on your keyboard).