capabilities
goblox runs go code in the browser using the yaegi interpreter compiled to WebAssembly. Not everything from the standard library works — here's what does and doesn't.
Works
+
Algorithms & data structuresAny pure Go code
+
Goroutines & channelsCooperatively scheduled, work fine
+
JSON / XML / CSV / base64 / hex / gobencoding/json, encoding/xml, encoding/csv, etc.
+
regexp / strings / bytes / strconvFull stdlib string and text processing
+
math / math/big / math/rand / crypto/*sha256, aes, rsa, ecdsa, md5, and more
+
text/template / html/templateTemplating engines
+
time / sort / slices / mapsUtility packages
+
container/heap / container/list / container/ringData structure implementations
+
In-memory file I/Oos.Open, os.Create on synthetic WASM file system
+
sync (Mutex, WaitGroup, Once, Map, Pool, Cond)Concurrency primitives
+
contextContext propagation and cancellation
+
reflectTypeOf, ValueOf, DeepEqual (limited)
Doesn't Work
-
net.Listen / TCP serversGo WASM can't bind sockets
-
os/execNo subprocesses in the browser
-
unsafe / syscall / CGoPlatform-specific / ffi not available
-
Persistent file storageWASM file system is ephemeral (lost on refresh)
-
net low-level socket opsnet/http client also not available — async fetch causes Go program to exit before response arrives
-
os.Signal / os.ProcessNo OS-level signals or process control
-
Interactive stdinfmt.Scan blocks; all input must be provided upfront in the Stdin panel before clicking Run
-
go test / testing frameworkNo test runner UI
-
go build / go installNo compiler toolchain