Online Ruby - IDE, Editor, Compiler, Interpreter

Run Ruby 3.3 in your browser with the official ruby.wasm build, including the standard library. The runtime downloads once and is cached.

Ruby 3.3 (ruby.wasm) · Runs in your browser, so your code never reaches our servers.
main.rbRuby
Output

            
        
Ctrl/⌘ + Enter to run

Features of the online Ruby compiler (IDE, editor & interpreter)

Write, run and test Ruby code online for free. This page works as an online Ruby IDE, code editor, compiler and interpreter in one: type your code, press Run and see the output straight away. Everything runs in your browser, with nothing to install and no account to create.

  • Run code instantly: Ruby 3.3 (ruby.wasm), with output in under a second after the first load.
  • Code editor: syntax highlighting, line numbers, bracket matching and auto-closing brackets.
  • Clear errors: error messages and warnings appear in the output panel, as they would on your own computer.
  • Full screen: Ctrl/⌘ + Shift + F, adjustable font size, side-by-side or stacked layout and resizable panes.
  • Autosave: your code is kept in your browser; download it as main.rb or copy it in one click.
  • Safe to experiment: a time limit and a Stop button end infinite loops.
  • Private: the Ruby runtime runs on your device, so your code is never uploaded.
  • Dark mode and keyboard shortcuts: Ctrl/⌘ + Enter runs the code.
  • Free: no sign-up, no usage limits.

Learn other programming languages

How to use the online Ruby compiler

  1. Write or paste Ruby code into the editor. Reset example brings back the starter program.
  2. Press Run or use Ctrl + Enter (⌘ + Enter on a Mac).
  3. Output from puts, print and p appears in the Output panel. Exceptions and messages written to $stderr are highlighted as errors.
  4. Choose a time limit of 5, 15 or 60 seconds. A run that takes longer is stopped automatically, and Stop ends it at once.

The first run downloads the Ruby runtime and its standard library, about 36 MB, so it can take a little while on a slow connection. Your browser caches it, and later visits start much faster. Use Copy or main.rb to save your program.

Ruby runs in a Web Worker in your own browser. Your code is never uploaded and is not stored on our servers. The editor remembers your last program in your browser's local storage, and in no other place.

What's supported

The compiler uses Ruby 3.3 through the official ruby.wasm build, the CRuby (MRI) interpreter compiled to WebAssembly.

  • The full Ruby 3.3 language: classes, modules, mixins, blocks, procs and lambdas, pattern matching with case/in, endless methods (def name = ...), keyword arguments and refinements.
  • Core classes such as String, Array, Hash, Range, Enumerable, Enumerator, Struct and Comparable.
  • The standard library: require "json", "set", "date", "time", "securerandom", "digest" and other bundled libraries load as usual.

Limitations:

  • No gem installation. Only libraries that ship with Ruby are available, and gem install and Bundler do not work.
  • No network access and no standard input. Hard-code the test data in your script instead of reading it with gets.
  • The interpreter is reused between runs. Classes and constants you defined earlier still exist on the next run. Press Stop to start again with a clean interpreter.

Ruby quick reference

require "json"

Book = Struct.new(:title, :year)

books = [
  Book.new("Eloquent Ruby", 2011),
  Book.new("Practical Object-Oriented Design", 2012),
]

recent = books.select { |b| b.year >= 2012 }.map(&:title)
puts "Recent: #{recent.join(', ')}"

result = { status: "ok", count: books.size }
case result
in { status: "ok", count: Integer => n }
  puts "Found #{n} books"
end

puts books.map(&:to_h).to_json
TaskSyntax
Print with a newlineputs "Hello"
Inspect a valuep [1, :a, nil]
String interpolation"Total: #{sum}"
Iterate with a blockitems.each { |x| puts x }
Hash with symbol keys{ name: "Ada", age: 36 }
Safe navigationuser&.email

Tips

  • Use p instead of puts while debugging. It shows the inspected form, so you can tell nil, "" and "nil" apart.
  • Chain Enumerable methods such as map, select, group_by, tally and each_slice to transform data without manual loops.
  • If you see warning: already initialized constant, the interpreter still remembers a previous run. Press Stop, then Run again.
  • Check generated JSON with the JSON formatter, and test regular expressions with the regex tester. Its JavaScript syntax covers most everyday Ruby patterns.
Tip: Keep this tab open while you experiment. Once Ruby has loaded, each further run starts almost instantly.

Frequently asked questions

Is this real Ruby?

Yes. ruby.wasm is the official WebAssembly port of CRuby, maintained as part of the Ruby project. The language and core classes behave the same as on your computer.

Why is the first load slow?

The interpreter and its standard library are about 36 MB. The download happens once and is then served from your browser cache.

Can I use gems like Rails or Nokogiri?

No. Only the standard library is included, and gems cannot be installed in the browser. This tool is best for learning Ruby, practising algorithms and testing snippets.

Which other languages can I run?

Try the online Python compiler, or the Lua, PHP, JavaScript, TypeScript and SQL compilers, all of which also run in your browser.

Copied to clipboard