在线Ruby - IDE、编辑器、编译器、解释器

使用官方ruby.wasm构建在浏览器中运行Ruby 3.3,包含标准库。运行时只需下载一次并会被缓存。

Ruby 3.3 (ruby.wasm) · 在浏览器中运行,代码绝不会发送到我们的服务器。
main.rbRuby
输出

            
        
Ctrl/⌘ + Enter 运行

在线 Ruby 编译器的功能(IDE、编辑器 & 解释器)

免费在线编写、运行和测试 Ruby 代码。本页面集在线 Ruby IDE、代码编辑器、编译器和解释器于一体:输入代码,点击“运行”,立即查看输出。一切都在浏览器中运行,无需安装,也无需注册账号。

  • 即时运行代码: Ruby 3.3 (ruby.wasm),首次加载后一秒内即可输出结果。
  • 代码编辑器: 语法高亮、行号、括号匹配和自动补全括号。
  • 清晰的错误提示: 错误信息和警告会显示在输出面板中,与在您自己的电脑上一样。
  • 全屏: Ctrl/⌘ + Shift + F,可调节字号,支持并排或堆叠布局,面板大小可调。
  • 自动保存: 代码保存在您的浏览器中;可一键下载为 main.rb 或复制。
  • 放心尝试: 时间限制和“停止”按钮可终止无限循环。
  • 私密: Ruby 运行时在您的设备上运行,代码绝不会被上传。
  • 深色模式 以及键盘快捷键:Ctrl/⌘ + Enter 运行代码。
  • 免费: 无需注册,不限使用次数。

学习其他编程语言

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.

更新于

已复制到剪贴板