Documentation
How to write, run and share code on Futuremug.
Getting started
Open the Code Playground, choose a language, and press Run. Each language opens with a starter program, so you can run something straight away. You do not need an account to run code.
Create an account to keep a history of your submissions and to see your progress on problems.
The workspace
- Side panel: files, example programs, recent work and the language list.
- Editor: your code, with syntax highlighting, automatic indentation and find and replace.
- Input panel: standard input, a console of this session's runs, test results and a run timeline.
- Results panel: output, errors, compiler messages, run time and memory use.
Drag the line between two panels to resize them, or focus it and use the arrow keys. The buttons at the right of the toolbar show or hide each panel. On a phone, the tabs at the bottom switch between code, input, output and tests.
Understanding results
| Status | Meaning |
|---|---|
| Accepted | The program finished successfully, or passed every test case. |
| Wrong Answer | The program ran, but its output did not match a test case. |
| Compilation Error | The code has a mistake that stopped it being compiled or parsed. |
| Runtime Error | The program crashed or exited with an error code. |
| Time Limit Exceeded | The program ran longer than its language's time limit. |
| Memory Limit Exceeded | The program used more memory than its language's limit. |
| Output Limit Exceeded | The program printed more than 512 KB of output. |
| Cancelled | You stopped the run. |
| Internal Error | The platform could not run your code. This is not a fault in your program. |
Problems and practice
Choose a problem from Problems or Practice. The problem opens beside the editor. Run tries your code with your own input, and Submit checks it against the test cases. Some test cases are hidden.
React Playground
The React Playground builds a multi-file React project in your browser and shows a live preview. Your project does not leave your browser and is never run on the server.
- Projects can contain
.jsx,.js,.css,.jsonand.htmlfiles. - Only
reactandreact-domcan be imported. Other packages are not available. - The preview blocks network requests, so
fetchand external images do not work. - A preview stuck in an infinite loop is shut down automatically.
Saving and sharing
- Drafts: changes are kept automatically, one per language, in your browser.
- Snippets: the save button keeps a named copy, also in your browser.
- Share links: the share button creates a link that holds a copy of your code. The code is inside the link itself, so anyone with the link can read it. Opening a link never runs the code.
Drafts, snippets and React projects are stored only in the browser you used. They are not attached to your account, and clearing your browser data removes them.
Keyboard shortcuts
| Keys | Action |
|---|---|
| Ctrl Enter | Run your code |
| Ctrl S | Save a snippet |
| Ctrl F | Find in the editor |
| Ctrl H | Find and replace in the editor |
| Ctrl M | Let the Tab key move focus out of the editor |
Languages and limits
31 languages are available. The time limit applies to running your program, and compiling has its own separate limit.
While your program runs, its own folder is read-only. To write a file, use /tmp, which holds up to 64 MB, counts towards the memory limit, and is erased when the run ends. Programs in /tmp cannot be executed.
| Language | Version | Time limit | Memory limit |
|---|---|---|---|
| Python | 3.13 | 5 s | 256 MB |
| Java | 21 | 5 s | 512 MB |
| C# | 10.0 | 5 s | 512 MB |
| Kotlin | 2.2 | 5 s | 512 MB |
| JavaScript | 24 | 5 s | 256 MB |
| PHP | 8.4 | 5 s | 256 MB |
| TypeScript | 5.9 | 5 s | 256 MB |
| Dart | 3.10 | 5 s | 256 MB |
| C | 15 | 3 s | 128 MB |
| C++ | 15 | 3 s | 256 MB |
| Go | 1.26 | 5 s | 256 MB |
| Rust | 1.92 | 5 s | 256 MB |
| Swift | 6.2 | 5 s | 256 MB |
| Objective-C | 19.1 | 5 s | 256 MB |
| Assembly (NASM) | 2.16 | 3 s | 64 MB |
| Scala | 3.3 | 5 s | 512 MB |
| Haskell | 9.8 | 5 s | 256 MB |
| Elixir | 1.19 | 15 s | 256 MB |
| F# | 10.0 | 5 s | 512 MB |
| OCaml | 4.14 | 3 s | 256 MB |
| Clojure | 1.12 | 15 s | 512 MB |
| Ruby | 3.4 | 5 s | 256 MB |
| Bash | 5.3 | 5 s | 128 MB |
| Perl | 5.42 | 5 s | 256 MB |
| Lua | 5.4 | 5 s | 128 MB |
| PowerShell | 7.5 | 15 s | 512 MB |
| R | 4.5 | 5 s | 256 MB |
| Fortran | 15 | 3 s | 128 MB |
| Julia | 1.12 | 20 s | 512 MB |
| COBOL | 4.0-early-dev | 3 s | 128 MB |
| Groovy | 4.0 | 15 s | 512 MB |
API
The interface is built on a JSON API under /api. These are the main endpoints.
| Request | Purpose |
|---|---|
| GET /api/languages | List the available languages |
| POST /api/submissions | Queue code to run |
| GET /api/submissions/{id} | Get a submission's status and result |
| POST /api/submissions/{id}/cancel | Stop a run |
| GET /api/problems | List published problems |
| POST /api/problems/{id}/submit | Check code against a problem's test cases |