December 9, 2025
Go big, go wasm, or go home?
Epsilon: A WASM virtual machine written in Go
New Go-made WebAssembly engine drops; crowd asks 'why not wazero' and 'will it sandbox?'
TLDR: A new Go-based WebAssembly engine called Epsilon debuted with a simple, no-dependencies setup and a handy command-line tool. Commenters quickly asked why not use wazero, demanded safety features like timeouts to stop infinite loops, and debated iOS friendliness and future features—making this a small release with big questions.
Epsilon landed with a clean pitch: a new WebAssembly (a way to run code safely and fast across platforms) engine written in Go, implementing the latest 2.0 spec, no extra baggage, and a simple REPL to load modules and call functions. But the comments turned it into a reality show. Within seconds, the crowd demanded a comparison with the popular wazero and asked the classic forum question: “This could have been a Show HN?” The vibe was equal parts curious and skeptical—“nice work, but why another one?”
Then came the security drama: simonw pressed for timeouts and CPU limits to stop runaway code—think infinite loops chewing your laptop—because he wants WebAssembly as a sandbox for untrusted code. He even spun up experimental Python bindings with Claude, underscoring that people want guardrails from day one. A pro-interpreter voice cheered that an interpreter (no just-in-time “JIT” compiling) can play nicer with iOS rules, while a dev asked about the Component Model, a newer way to snap modules together like Lego blocks. And just when things got civil, a commenter lobbed a grenade: “Are these banal comments optimising for non-utility?” Cue the eye-rolls.
The memes? “WASM wars,” “Show HN police,” and “insert timeout to exit infinite loop.” In short: solid release, spicy threads, and a wishlist that’s already longer than the README.
Key Points
- •Epsilon is a WebAssembly VM written in Go and implements the WebAssembly 2.0 specification.
- •It provides a REPL with commands for loading modules, invoking functions, inspecting memory, and managing VM state.
- •Example usage shows loading modules from URLs, switching active modules, and invoking functions by name or table index.
- •Testing requires WABT tools (wat2wasm, wast2json); unit tests, official spec tests, and benchmarks are provided.
- •The project is open source under Apache 2.0 and includes a disclaimer that it is not an officially supported Google product.