Language

Run Ruby scripts online, with no server to keep

Write def main and Waiso runs it on Ruby’s own interpreter in an isolated sandbox. Each run keeps its inputs, output and logs, and the same method runs on a schedule, over HTTP or in a flow.

Defaults type the inputs

Inputs are matched by name to main’s parameters and typed by their defaults; keyword arguments work too. The hash main returns is the JSON result, and puts goes to the logs.

Learn more →
initials.rb
def main(full_name = "Ada Lovelace", upcase: true)
  initials = full_name.split.map { |part| part[0] }.join
  initials = initials.upcase if upcase
  puts "initials for #{full_name}"
  { name: full_name, initials: initials }
end

The standard library, no gems to install

Ruby scripts install no gems: they use Ruby’s standard library. The Waiso library is loaded for you, with Waiso.run, Waiso.flow and Waiso.state_get.

Learn more →

A step in a bigger workflow

Publish the script and use it as a flow step between SQL queries, HTTP requests and e-mails, put it on a schedule, or turn on its HTTP endpoint.

Learn more →

Questions

Can I add gems from RubyGems?

No. Ruby scripts run with the standard library and the Waiso library only.

Can I choose the Ruby version?

No. Ruby scripts run on the one version the worker carries and do not record a version.

Can a Ruby script keep data between runs?

Yes. Waiso.state_get reads the script’s state, a set of keys kept between runs, so a scheduled run can pick up where the last one stopped.

Related

Get started today

Ready to ship some scripts?

Create an account in seconds — no installers, nothing to set up.
Start building, testing and running your scripts right away.

  • Free to start
  • Self-host or cloud
  • Production ready