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 Web Engineering Summit 2026, check out the latest edition of this Tech Conference.

Alexander Lichter
Alexander Lichter
6 min
11 Jun, 2026

Comments

Sign in or register to post your comment.
Video Summary and Transcription
The Talk explores JavaScript, TypeScript, Vite, and the move towards rolldown as a unified bundler. Rolldown combines the best features from previous tools, addressing challenges of multiple bundlers and complexity. It offers advanced chunking and a built-in minifier for optimized bundles. Integration of Rust-based bundles with JavaScript ecosystem through Swangular, filter functions, native Rust plug-ins, module resolution, TypeScript JSX transform, and toolchain V+ is discussed.

1. Exploring JavaScript and TypeScript with Vite

Short description:

We'll discuss JavaScript, TypeScript, favorite frameworks like Vite, past tools in Vite, and the shift towards rolldown as a unified bundler. Challenges arise from multiple bundlers and complexity.

We're going to talk about how to write JavaScript and how to use TypeScript. We're going to talk about how to use TypeScript to improve the web. So let's get started. So what's your favorite framework? What's your favorite? Tell me in three, two, one. Scalabr. Yes, one of these, possibly. Yeah? Something not on the list, which we can talk later. It's fine.

But the thing is, what are they all in common? Well, they're all built with a certain technology, right? Vite, the one and only. You might know Vite by this logo, right? And Vite has changed a bit. Who here is not using Vite? Nobody. One, two, three. I don't believe you. No, no, no, no way. No way. But that's OK.

So yeah, in the past, Vite actually had a couple tools under the hood that were used to bundle your code, to pre-build it, to make the dev server happening. So we had ESBuild for pre-bundling, for transformation, for minification, rollup, right? Some might still know that. Bundling, right? The plugin system, all your favorite frameworks plug-in are rollup plugins 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, like as an alternative for transforms, for React fast refresh, et cetera. 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 Vita 8 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, what Tobias talked about earlier, or Webpack, et cetera. Well, it's complicated, right? First of all, multiple bundlers under the hood, of course, complexity.

2. Unifying Bundling with Rolldown

Short description:

Why use another bundler like rolldown? It integrates prior art's best parts, ensuring compatibility and enhanced features like advanced chunking and built-in minifier for performant bundles.

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, what Tobias talked about earlier, or Webpack, et cetera. Well, it's complicated, right? First of all, multiple bundlers under the hood, of course, complexity. It's a big problem for the Vite maintainers, the contributors, but also the developers, because it introduces inconsistencies between development and between production, which sucks. Then there's also limitations. Some bundlers say, oh, we don't know how to implement A, B, C. So neither rollup nor ASBuilt wanted to introduce certain features, because they said, hey, that's out of scope. And that's fine, but these are features, Vite and maybe all you need. And then of course, time. We also know back in the days, the Webpack times would take a long time. Now builds are faster, but they could be even faster now. So of course what we do, we rerun everything in Rust. We are 10x developers. Let's go. Jokes aside, time to meet rolldown.

And yes, that just rolled down on purpose. So rolldown itself is more than 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 plug-ins are still compatible, right, very important. You don't really have to migrate things away and over. That 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 them 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 transformers. 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.

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

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.
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.
Rome, a Modern Toolchain!
JSNation 2023JSNation 2023
31 min
Rome, a Modern Toolchain!
Top Content
Rome is a toolchain built in Rust that aims to replace multiple tools and provide high-quality diagnostics for code maintenance. It simplifies tool interactions by performing all operations once, generating a shared structure for all tools. Rome offers a customizable format experience with a stable formatter and a linter with over 150 rules. It integrates with VCS and VLSP, supports error-resilient parsing, and has exciting plans for the future, including the ability to create JavaScript plugins. Rome aims to be a top-notch toolchain and welcomes community input to improve its work.
Conquering Complexity: Refactoring JavaScript Projects
JSNation 2024JSNation 2024
21 min
Conquering Complexity: Refactoring JavaScript Projects
Top Content
Today's Talk explores the complexity in code and its impact. It discusses different methods of measuring complexity, such as cyclomatic complexity and cognitive complexity. The importance of understanding and conquering complexity is emphasized, with a demo showcasing complexity in a codebase. The Talk also delves into the need for change and the role of refactoring in dealing with complexity. Tips and techniques for refactoring are shared, including the use of language features and tools to simplify code. Overall, the Talk provides insights into managing and reducing complexity in software development.
Improving Developer Happiness with AI
React Summit 2023React Summit 2023
29 min
Improving Developer Happiness with AI
Top Content
GitHub Copilot is an auto-completion tool that provides suggestions based on context. Research has shown that developers using Copilot feel less frustrated, spend less time searching externally, and experience less mental effort on repetitive tasks. Copilot can generate code for various tasks, including adding modals, testing, and refactoring. It is a useful tool for improving productivity and saving time, especially for junior developers and those working in unfamiliar domains. Security concerns have been addressed with optional data sharing and different versions for individuals and businesses.
Automate the Browser With Workers Browser Rendering API
JSNation 2024JSNation 2024
20 min
Automate the Browser With Workers Browser Rendering API
The Talk discusses browser automation using the Worker's Browser Rendering API, which allows tasks like navigating websites, taking screenshots, and creating PDFs. Cloudflare integrated Puppeteer with their workers to automate browser tasks, and their browser rendering API combines remote browser isolation with Puppeteer. Use cases for the API include taking screenshots, generating PDFs, automating web applications, and gathering performance metrics. The Talk also covers extending sessions and performance metrics using Durable Objects. Thank you for attending!

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).