Futuremug

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

StatusMeaning
AcceptedThe program finished successfully, or passed every test case.
Wrong AnswerThe program ran, but its output did not match a test case.
Compilation ErrorThe code has a mistake that stopped it being compiled or parsed.
Runtime ErrorThe program crashed or exited with an error code.
Time Limit ExceededThe program ran longer than its language's time limit.
Memory Limit ExceededThe program used more memory than its language's limit.
Output Limit ExceededThe program printed more than 512 KB of output.
CancelledYou stopped the run.
Internal ErrorThe 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, .json and .html files.
  • Only react and react-dom can be imported. Other packages are not available.
  • The preview blocks network requests, so fetch and 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

KeysAction
Ctrl EnterRun your code
Ctrl SSave a snippet
Ctrl FFind in the editor
Ctrl HFind and replace in the editor
Ctrl MLet 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.

LanguageVersionTime limitMemory 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.

RequestPurpose
GET /api/languagesList the available languages
POST /api/submissionsQueue code to run
GET /api/submissions/{id}Get a submission's status and result
POST /api/submissions/{id}/cancelStop a run
GET /api/problemsList published problems
POST /api/problems/{id}/submitCheck code against a problem's test cases

Welcome back

New here?

Create your account

Already have an account?