Skip to content
GigadriveDocs

Roda, Grape and Rack

How Gigadrive Network runs Roda, Grape and any other Rack application from its config.ru.

Any Ruby application with a config.ru runs on Gigadrive Network, whatever it is built with. Roda has its own preset, detected when your Gemfile.lock lists roda and a config.ru exists. Grape, plain Rack and every other Rack application are detected from a config.ru next to a Gemfile, after the framework presets have had their turn.

Defaults

SettingValue
RuntimeThe Ruby version your project names, ruby-34 when it names none
Memory256 MB
Max duration30 seconds
Entrypointconfig.ru
Route/* to the entrypoint
Assetspublic, when the directory exists

Both presets write RACK_ENV=production.

How requests are served

Your config.ru runs on Puma: the one in your Gemfile.lock when you added it, and otherwise a copy Gigadrive Network provides. Every request reaches your application unchanged, server-sent events (text/event-stream) reach the client as you write them, and a WebSocket upgrade is passed through to a Rack application that handles it. Runtimes describes the Ruby runtime in full.

The build

The build installs your gems with Bundler into vendor/bundle, leaving out the development and test groups, and runs a build script from package.json when there is one.