fbpx

Serverless Platform for Ruby Developers

Develop and publish from simple functions to distributed web applications.
Faster than Lambda. As easy as Heroku.

The only FaaS platform built for Ruby

Unmatched native performance

Up to 20x faster than AWS Lambda

Built-in test automation

Choose to deploy only if tests pass

Schedule periodic runs

In plain English or Cron syntax

See it in action

Hosted at Digital Ocean
Run the examples below a few times so you get a sense of the average execution time.

Hello, World!

def handler(event)
  render text: 'Hello, World!'
end






Query Yahoo Weather API

require 'weather-api'
require 'oj'

def handler(event)
  body = Oj.load(event.body)
  weather = Weather.lookup_by_location(body['location'], Weather::Units::CELSIUS)
  response = { title: weather.title, temperature: "#{weather.condition.temp}C", conditions: weather.condition.text }
  render json: response
end

Try it

1. Install the gem:

$ gem install faastruby

2. Create a function

$ faastruby new hello-world
+ d ./hello-world
+ d ./hello-world/spec
+ d ./hello-world/spec/helpers
+ f ./hello-world/spec/helpers/faastruby.rb
+ f ./hello-world/spec/handler_spec.rb
+ f ./hello-world/spec/spec_helper.rb
+ f ./hello-world/Gemfile
+ f ./hello-world/handler.rb
+ f ./hello-world/faastruby.yml
◑ Installing gems... Done!

3. Deploy the function to a workspace. The workspace name must be unique (like a username).

$ cd hello-world
hello-world$ faastruby deploy-to prod-app
Could not find credentials for 'prod-app' in '/Users/DemoUser/.faastruby'
Attemping to create workspace 'prod-app'
◓ Requesting credentials... Done!
Writing credentials to /Users/DemoUser/.faastruby
~ f /Users/DemoUser/.faastruby
Workspace 'prod-app' created
◒ Waiting for the new workspace to be ready... Done!
[build] Verifying dependencies
The Gemfile's dependencies are satisfied
[test] Running tests
...

Finished in 0.00766 seconds (files took 0.24364 seconds to load)
3 examples, 0 failures

◐ Building package... Done!
◒ Deploying 'prod-app/hello-world' Done!
Endpoint: https://api.tor1.faastruby.io/prod-app/hello-world

4. Run it:

hello-world$ curl https://api.tor1.faastruby.io/prod-app/hello-world
Hello, World!
You can also generate a CURL command:
hello-world$ faastruby run prod-app --json '{"name":"Ruby"}' --header 'My-Header: value' --query 'foo=bar' --query 'baz=fox' --curl
curl -X POST -H 'Content-Type: application/json' -H 'My-Header: value' -d '{"name":"Ruby"}' 'https://api.tor1.faastruby.io/prod-app/hello-world?foo=bar&baz=fox'

FaaStRuby + HyperStack = full stack Ruby apps!

If you think JavaScript is your only option for the front-end, think again.

Hyperstack is a Ruby DSL, compiled by Opal, bundled by Webpack, powered by React.