BigBand is a stack of Sinatra extensions, most of them developed as part of BigBand, but usable without, each of available as a separate gem. All BigBand extensions follow the same release cycle.


Simply replace Sinatra::Base with Sinatra::BigBand in your application.

A simple example would be:

require 'sinatra/big_band'
class MyApp < Sinatra::BigBand
  # ...

Maybe you want all extensions except Sinatra::Compass?

require 'sinatra/big_band'
class MyApp < Sinatra::BigBand :except => :Compass
  # ...

The BigBand Stack

Sinatra Extensions

Sinatra tool integration:

  • AsyncRack – Makes standard rack middleware play nice with async.callback
  • Haml::More – Adds more functionality to Haml and Sass
  • monkey-lib – Thin layer over ruby extension libraries (like ActiveSupport) to make those pluggable
  • Sinatra::TestHelper – Adds helper methods and better integration for various testing frameworks
  • Sinatra::Extension – Mixin to ease Sinatra extension development.
  • Yard::Sinatra – Displays Sinatra routes (including comments) in YARD output

Besides those extensions, there are others in the BigBand stack, that are external:

General Goals

  • No sub-project relies on BigBand
  • All sub-projects should work with MRI/REE >= 1.8.6 (including 1.9.x), JRuby >= 1.4.0 and Rubinius >= 1.0
  • Some sub-projects should work with MagLev and IronRuby (partial MacRuby support planned for later release)
  • Ease to modify the stack

Setup via gem


gem install big_band

Running the specs / Manual setup

Try something like this:

# dependencies, rather mainstream. just in case you don't have one of those.
gem install sinatra rspec rack-test rake

# get the source
git clone git://
rake setup:read_only

# run the specs
rake spec

# run with multiple ruby implementations using rvm
rvm specs ree,1.9.1,rbx,jruby