Skip to content

Ruby SDK

Install

Terminal window
gem install isorun

Authenticate

Terminal window
export ISORUN_API_KEY="isorun_live_<region>_<id>_<hmac>"
export ISORUN_API_URL="https://api.isorun.ai" # optional

Quickstart

require 'isorun'
Isorun::Sandbox.create("python") do |sb|
result = sb.exec("python3 -c 'print(42)'")
puts result.stdout.strip
end

Manual lifecycle

sb = Isorun::Sandbox.new("python", timeout: 60, sandbox_timeout: 900)
sb.create
result = sb.exec("python3 -c 'print(sum(range(1000)))'")
puts result.stdout
stats = sb.destroy
puts "cpu_ms=#{stats.cpu_ms} uptime_ms=#{stats.uptime_ms}"
sb.disconnect

Streaming output

result = sb.exec_stream(
"python3 train.py",
timeout: 600,
on_stdout: ->(chunk) { print chunk },
on_stderr: ->(chunk) { warn chunk },
)
puts "exit=#{result.exit_code}"

Production checklist

  • Prefer block form (Sandbox.create do ... end) for cleanup safety.
  • Set explicit command timeouts.
  • Restrict egress with allow/deny.
  • Log sandbox IDs per request.