Dart Live, a compiler, VM, analyzer and hot reload on the web via Wasm

Lobsters Hottest Tools

Summary

Dart Live enables running the Dart compiler, VM, and analyzer entirely in the browser via WebAssembly, supporting stateful hot reload without a server.

<p>I managed to get the Dart VM to compile to WebAssembly so that I can compile Dart programs in the browser. Dart ships with a basic ARM interpreter and by using that, hot reload works directly in the browser.</p> <p>It's 7.6 MB gzipped and there's no server running behind it, so I was able to host it directly on github pages.</p> <p><a href="https://github.com/modulovalue/dart-live" rel="ugc">https://github.com/modulovalue/dart-live</a></p> <p><a href="https://lobste.rs/s/qwoixg/dart_live_compiler_vm_analyzer_hot_reload">Comments</a></p>
Original Article
View Cached Full Text

Cached at: 05/13/26, 10:14 AM

# Dart in WebAssembly Source: [https://modulovalue.com/dart-live/](https://modulovalue.com/dart-live/) ## DartVM in WebAssembly Edit Dart, run it\. CFE compiles in browser \(dart2wasm\); VM runs via ARM simulator \(emcc\); Dart analyzer also compiled to WebAssembly\.STATEFUL HOT RELOADon the web, compiled to WebAssembly\. Expert modeLoading… ## About this project The Dart VM is compiled to**WebAssembly**and runs entirely in your browser, no server involved\. The kernel front\-end \(`dart2wasm`\) compiles your source to kernel bytes in\-page, the VM \(`emcc`with an ARM simulator\) executes it, and the Dart analyzer \(also`dart2wasm`\) provides type checking and diagnostics live as you type\. The editor is**Monaco**\(the VS Code editor\), wired up with Dart syntax highlighting and the CodeLens API so each top\-level function gets clickable`▶ Invoke`/`▸ IL`buttons inline above its declaration\. **Hot reload**uses`IsolateGroup::ReloadKernel`internally and preserves program state across reloads, just like Flutter\.**Invoke**lets you call any zero\-argument top\-level function on the live isolate, bypassing entry\-point pragmas via`\-\-no\-verify\-entry\-points`\. `Future\.delayed`uses`emscripten\_sleep`via Asyncify, so awaits really wait wall\-clock time without blocking the page\.

Similar Articles

LaTeX.wasm: LaTeX Engines in Browsers

Hacker News Top

SwiftLaTeX enables LaTeX compilation directly in the browser using WebAssembly, allowing users to create and edit LaTeX documents without a server-side LaTeX installation.

Debugging WASM in Chrome DevTools

Eli Bendersky

A guide to using Chrome DevTools for debugging WebAssembly code, including setting breakpoints and catching exceptions.