Go Developer Tools

Small, exact answers to the questions that cost a working Go developer an afternoon. Each one runs in your browser, in Go compiled to WebAssembly — the same packages, with the same tests, that would run on a server.

Nothing you paste is transmitted. There is no endpoint behind any of these pages, so there is nothing to send it to: the module is fetched once from this origin and everything after that happens in the tab. Disconnect the network once a page has loaded and it keeps working.

Every tool here is free and needs no account. None of them costs a credit, and none of them asks for one.

How these work

Every tool is a thin page in front of an ordinary Go package. The parsing, the arithmetic and the type checking are all done by that package, compiled once to WebAssembly; the page reads your input, hands it over, and draws what comes back. Nothing is reimplemented in JavaScript, which is the only way the answer a page gives can be the answer Go gives.

The section ships two modules rather than one per tool. The tools that read Go source need the compiler's own front end — go/ast and go/types — which is most of a Go toolchain by size, so they share one module and the rest share a much smaller one. A page loads only the module it needs, and only when you open it.

Where the answers come from

Where a tool describes runtime behavior, it derives the numbers from the Go toolchain installed at build time rather than from a blog post: size classes and the slice growth thresholds are read out of the standard library's own source, and every page that depends on them says which Go version they came from. Where a notation cannot express something, the tool names the gap instead of guessing at it — a converted format string that quietly prints the wrong field is worse than no answer at all.