Diagonal Accent Line
Back to Blog

Raising the Bar: A Rust-Systems Read on Web Tools Weekly #673

Decebal D.
June 11, 2026
8 min read
Rust & AI Crate RadarExplore

Web Tools Weekly is a well-run newsletter. Louis Lazaris has shipped it for years, and issue #673 is a representative slice: roughly two dozen JavaScript and TypeScript tools across utilities, build tooling, and React Native, each in a single sentence, interleaved with four advertisements — an "AI credit optimizer," two CORS proxies, and a "how the rich pick stocks" trading webinar.

That's the standard for tool curation in the JS world: broad, fast, ad-supported, one line per item, no verdict. It's useful for discovery. It is not built to help you decide. This is a Crate Radar special: the same issue, read the way an engineering leader reads it — what's actually worth adopting, and where the better answer now lives in Rust.

There's a delicious irony sitting right in the issue. The Build Tools section leads with Yuku, "a high-performance JavaScript and TypeScript compiler toolchain written in Zig." A compiler for JavaScript, written in a systems language, because JavaScript is too slow to build JavaScript. That's not a one-off — it's the whole story of the last two years, and Zig is the late entrant. Rust got there first and won.

The toolchain already flipped

If you only skim the JS tooling headlines, here's what you missed while reading one-line blurbs:

Vite 8 shipped stable on 12 March 2026 with Rolldown — a Rust bundler — replacing both esbuild and Rollup, and the Vite team clocking it at "10–30× faster than Rollup." Underneath it sits OXC, the Rust "Oxidation Compiler," doing parsing, transforms, and minification at over 30× Prettier's formatting speed. Biome replaced Prettier and ESLint at ~25× the speed. Vercel's Rust bundler Turbopack is the default engine in Next.js 16. Lightning CSS is Vite 8's default CSS minifier. And on 4 June 2026, Cloudflare acquired VoidZero — the team behind Vite, Rolldown, OXC, and Vitest — with the projects staying open source under a $1M community fund.

So the most important fact about "web tools" in 2026 isn't in the newsletter's twenty-five blurbs. It's that the substrate the entire JS ecosystem builds on is now written in Rust. A curation standard worth its salt would lead with that. Let's apply it.

Every tool in #673, mapped

Verdicts apply to the Rust alternative and use the Tech Radar vocabulary — Adopt (proven, default choice), Trial (real but non-critical use), Assess (prototype and watch), Hold (not yet). Where JavaScript genuinely remains the right tool, I say so plainly — a Rust-systems lens isn't a mandate to rewrite the browser.

JavaScript utilities

Tool (#673)What it doesRust alternativeVerdict
View Transitions ToolkitHelpers for the View Transitions APIBrowser API — handled inside Leptos/Dioxus view layersStay JS / Assess WASM
TypeScript XDKX (Twitter) API SDKtwitter-v2, egg-modeTrial
Render.jsPure-JS raytracer (RenderMan RIB)bevy, embree bindings, Rust raytracersAdopt
TSTycheType-level testing for TStrybuild + static_assertionsAdopt
TegakiFont → animated handwritingNiche; cosmic-text/ab_glyph for text, no direct portStay JS
devalueJSON.stringify for cyclic/rich dataserde + serde_json; rkyv, postcard, ronAdopt
CleverbrushSchema validation faster than Zodgarde, validator, schemarsAdopt
TemmlLaTeX → MathMLlatex2mathmlTrial

The pattern is already clear. Anything that is compute — raytracing, serialization, validation, type-level testing — Rust does better, because that's the home turf: predictable performance, no GC pauses, compile-time guarantees. devalue exists because JSON.stringify chokes on cyclic and rich data; serde simply doesn't have that problem, and rkyv gives you zero-copy deserialization the JS world can't express. Anything that is the browser itself — the View Transitions API — stays where it is, or moves into a WASM framework if you've already committed to one.

Build tools and bundlers

Tool (#673)What it doesRust alternativeVerdict
YukuJS/TS compiler toolchain in ZigOXC, SWCAdopt
pu.sh<50KB shell-based coding agentDifferent niche; rig for Rust agentsStay / Assess
unbarrelifyRemoves ESM barrel filesN/A — Rust's module system has no barrel-file problemNo equivalent needed
AddfoxBrowser-extension scaffolding (Rsbuild)WASM extensions possible but immatureStay JS
NitroProduction server toolkit for Vite appsAxum, Leptos SSR, LocoAdopt
npmxModern npm registry browserlib.rs, cargo info, crates.ioAdopt
Hono CLICLI for the Hono web frameworkAxum, Actix, Salvo, LocoAdopt
TsonicTS → C# native binariesJust write Rust — native binaries are the defaultAdopt

This section is the rout. Yuku is a compiler for JS written in Zig; OXC and SWC are compilers for JS written in Rust, and they already power the tools you use. Tsonic transpiles TypeScript to C# to get a native binary — a multi-stage workaround for a problem Rust doesn't have. unbarrelify is a tool to undo a footgun (barrel files breaking tree-shaking) that Rust's module system never introduced. Half of "build tooling" in JS is paying down the language's own structural debt; in Rust that tax mostly isn't levied.

React Native and mobile

Tool (#673)What it doesRust alternativeVerdict
React Native Vibe CodeAI builds RN/Expo appsDioxus (web/desktop/mobile, one codebase)Assess
@native-html/renderRenders HTML to native RN viewsDioxus native rendererStay JS / Assess
ArgentAI access to iOS/Android simulatorscargo-mobile2 tooling; no direct equivalentStay JS
React Native View RecorderCapture a View to video/imagePlatform-specific; no Rust portStay JS
RockBuild/DX toolkit for RN teamscargo-mobile2, Dioxus CLIAssess
React Native GrabTouch-to-grab UI context for agentsNiche RN toolingStay JS
react-native-keyboard-controllerKeyboard handling for RNNative in Slint/Dioxus UI layersStay JS

Here's where intellectual honesty matters: mobile UI is React Native's strongest ground, and Rust does not yet beat it for app front-ends. The mature, batteries-included path to a polished iOS/Android app is still RN (or native, or Flutter). What Rust offers mobile teams isn't a UI framework that out-polishes RN — it's a different architecture. Put your domain logic, sync engine, and crypto in a shared Rust core and bind it to native UIs with UniFFI or the Crux pattern; or, if you want one Rust codebase across web/desktop/mobile, Dioxus (Y Combinator-backed, used in production by Airbus and the ESA) is the credible bet. For most teams shipping a consumer app today, RN stays — and that's the right call.

What "raising the bar" actually means

The point isn't that Rust wins every row — it plainly doesn't, and a curation standard that pretended otherwise would be worth less, not more. The point is the standard itself. Web Tools Weekly optimizes for breadth and discovery; it tells you a tool exists. Four things would raise the bar, and they're the operating principles of this series:

A verdict on every item. "Here's a thing" is a starting point, not an answer. Adopt/Trial/Assess/Hold forces a position.

A systems lens. Most JS tooling churn is the ecosystem refactoring around the language's constraints — GC, single-threading, the module system, the build pipeline. Naming that turns twenty-five disconnected blurbs into one legible story: the foundation is being rewritten in Rust, and you should know which layer you're standing on.

Honesty about trade-offs, including where the incumbent wins. The mobile section above is more useful because it tells you to keep React Native.

Signal over sponsorship. An issue that carries a "how the rich pick stocks" ad between dev tools has made a choice about whose attention it's optimizing. A higher bar treats the reader's judgment as the product, not the inventory.


This is the kind of read the Rust Crate Radar exists to do — every week there's a JS tool whose better answer is a crate. Want a specific tool put under this lens? Get in touch.

Sources: Vite 8 / Rolldown performance · OXC · Cloudflare acquires VoidZero · Web Tools Weekly #673

Rust & AI Crate Radar

Every tool I feature, mapped by verdict· 22 tools

Decebal Dobrica

Let's Connect!

Have questions or want to discuss this further? I'd love to hear from you.