What Container2wasm Does
Container2wasm became a CNCF sandbox project in January 2025. The c2w command converts a Linux container image into a Wasm blob. That blob runs on Wasm runtimes like Wasmtime, or directly inside a browser, using a Wasm-compiled CPU emulator. The project targets two distinct deployment targets: server-side Wasm runtimes for production workloads and browser-based execution for fully client-side environments where no server is involved.
JIT Compilation: Three Times Faster Emulation
The team added a QEMU-based JIT compilation backend for Wasm. Measured on gzip compression inside a container, the JIT backend finishes the task about three times faster than the interpreter-based backend. In the broader QEMU community, Wasm support is also advancing. QEMU 10.1 added support for compiling to Wasm with its interpreter backend, and discussion on JIT support for that path is ongoing.
LLM Agents Running Fully Inside the Browser
Tokunaga presented VS Code LMLet, an experimental extension for the browser-based VS Code for the Web. It runs LLMs on Wasm or WebGPU entirely inside the browser using llama.cpp. The model gets access to the VS Code workspace filesystem and a Linux terminal backed by a container2wasm container. It can write files, compile code with GCC, and run test commands without any manual user input and without executing anything on the host machine.
Demo: Model Writes and Tests a uname Clone In-Browser
The demo used Qwen 3.5 4B. The model was asked to create and test a minimal uname command that reads the kernel name from uname syscall and prints it. It created the source file autonomously via VS Code file system APIs, compiled it with GCC inside the container, then compared the output against the real uname binary installed in the Linux container. The entire build and test cycle ran inside a browser-based CPU emulator, with no host execution.
Notable Quotes
was QMU based JIT back end complete the tasks task about three times faster comparing to the interpreter based back end Kohei Tokunaga · ▶ 01:13
the entire testing is executed in the container running fully inside browser using a CPU emulator. So no command is executed on the host. Kohei Tokunaga · ▶ 04:02
Key Takeaways
- Container2wasm converts Linux containers to Wasm blobs runnable on runtimes or inside browsers.
- A QEMU JIT backend cuts emulation time by roughly 3x versus the interpreter backend.
- VS Code LMLet runs LLMs and Linux containers entirely in-browser with no host execution.
About the Speaker(s)
Kohei Tokunaga is a software engineer at NTT Inc., a reviewer of CNCF containerd, and a maintainer of BuildKit. He is a founding maintainer of container2wasm, the CNCF sandbox project demonstrated in this talk.