Raku++
The interpreter behind everything on this site. An independent implementation of Raku, written from scratch in C++17 and compiled to WebAssembly, so it runs in a browser tab with nothing behind it.
say "Raku++ is running this, in your browser.";
say (1..10).grep(*.is-prime).join(', ');
Why Raku++?
Raku++ is a full interpreter and compiler for Raku, written from scratch in C++17. It starts fast, has no runtime to install, and — because it compiles to WebAssembly — it will run anywhere there is a browser. That is what makes the playground, the tour and the drills possible at all: there is no server here, and no download for the reader.
It is its own implementation, not a port, so it does not match Rakudo in every corner — and this site does not pretend otherwise. Where the two disagree, the specification says so on the page for that feature, in as many words, and the conformance pages keep the running count.
Where to look
- The FAQ — the questions people actually ask, including where Raku++ and Rakudo differ.
- The specification — every feature, explained, with runnable examples verified against Raku++, Rakudo and the in-browser engine.
- Raku Rules — the exhaustive rulebook: every construct, every rule, every trap.
- Roast conformance — how it stands against the official test suite.
- Dashboard — the numbers, release over release.
- Embed it — put the same interpreter on your own site with one script tag.
Running it outside a browser
Raku++ is a native binary as well. The rakupp repository has the source and releases; this very site is generated by it.