Historically, WebAssembly (WASM) was strictly reserved for languages with manual memory management, like C++ and Rust. If you wanted to compile a "managed" language like Kotlin, Java, or Dart to WASM, you had to compile the language's entire Garbage Collector (GC) into the binary. This resulted in massive 15MB+ payloads that took forever to download and initialize over the network.
NitroIDE embraces the bleeding-edge WasmGC (WebAssembly Garbage Collection) specification. This allows WebAssembly modules to tap directly into the V8 engine's highly optimized, native JavaScript Garbage Collector, completely eliminating the need to ship custom memory management code.
With WasmGC enabled in modern browsers, compiling enterprise-grade Language Servers (written in Kotlin or Java) down to WASM becomes viable. The binaries shrink from 15MB to under 2MB. More importantly, because the WASM module uses the browser's GC, passing complex objects between JavaScript and WebAssembly requires zero serialization.
Seamless Object References: WasmGC introduces the externref type. This allows a WASM module to hold a direct reference to a JavaScript DOM node or Monaco Editor instance. When the JS object goes out of scope, the V8 Garbage Collector cleans it up automatically, preventing memory leaks across the boundary.
By leveraging WasmGC, NitroIDE can run the official, unmodified backend compilers for languages like Dart and Kotlin directly in the browser's background threads, providing absolute 1:1 parity with Android Studio and IntelliJ without requiring a remote Docker container.
Launch our WasmGC-powered workspace and write managed code natively on the web.
Launch WasmGC Sandbox