RSP Web Framework, first public release

RSP Web Framework

This is the first public release of RSP.

  • What is RSP?

RSP is a modular platform built from the ground up for developing Ruby
applications on Apache Web Server. It consists of an Apache module which
embeds a Ruby VM, a simple MVC framework that is easy to understand and
extend, and an optional site library containing additional components
help make life easier.

  • History

RSP has been in development for about four years. It slowly evolved from
simple FCGI library plugged into the back of lighttpd, designed to be
server agnostic. When we started actually using it in production, we
up moving it to Apache because we had so much other stuff running on it.
Over time it became more and more Apache-centric, culminating in running
a dedicated Apache module. After version 1, my boss agreed to let me
the code, but I didn’t because things were still changing so much and
were a lot of warts I wanted to see disappear. Over a year or so version
took shape. It it has pretty much solidified.

  • Features

If you like Apache then you should feel completely at home with RSP.
more than an Apache module, but it’s still very light an modular. It
includes both a native RHTML parser which works exactly like eRuby
into the Apache module), and a very lightweight MVC framework.

RSP is well documented (see doc link below). From the first line of
documentation has proceeded lockstep with development. In addition to
documentation, it includes a running example site where all major
in the documentation can be run as you read through the documentation
(provided the example site is properly installed on your system).

RSP includes a command-line utility (called, not surprisingly, rsp) that
allows you to run your web code from the command line. Basically it
an embedded instance of Apache and Ruby in-proc. You can either feed it
HTTP requests or run it in interpreter mode whereby you can control
everything with Ruby, wherein the environment acts as both browser and
server. You can thus programmatically feed multiple requests to the
instance and process the results. As a result you can create elaborate
suites for your web apps that are runnable from within Ruby code or the
command line. This approach enables you to do a lot of development
the need of a browser or web server, just an editor and the command

Furthermore, the rsp utility is not limited to just running RSP code. It
run anything that runs in Apache. So you can run PHP, Django, mod_perl
pages, etc. from the command line (or interpreter mode) just as easily
RSP pages, and develop test suites that include them. All this is
covered in
the documentation.

  • Supported Platforms

Ubuntu/Debian are natively supported. There are binary packages for
(i386/amd64) – Hardy, Intrepid, Jaunty, Karmic, and Lucid. It will
build on
FreeBSD (I did actually do this once) and other Un*x systems, but there
not any native packages created as of yet. The build environment is
based, so if you have the requisite dependencies installed, it should be
relatively easy to build on other systems. But on Ubuntu/Debian building
a snap. And on Ubuntu, you can install through apt-get.

  • Summary

If you like Apache and Ruby then you might enjoy this. You can easily
code that ranges from little more than a glorified CGI script to MVC.
entire Apache C API is wrapped (hand-coded) in Ruby C extensions and
to the RHTML and MVC environments. There are no code generators or
application patterns (though there are optional library components).
This is
more of a stripped down, modular platform with various optional
you can add as you like.

This has been a long-running project that has gradually developed in
and starts over the years. I think it has finally matured to a point
it might be useful to others, so that’s why I am putting it out there.

Patches, ideas, suggestions are of course welcome.

  • Project Information

License: Apache 2.0