# RSP Web Framework, first public release

**URL:** <https://www.ruby-forum.com/t/rsp-web-framework-first-public-release/194759>\
**Category:** Ruby\
**Created:** [September 10, 2010, 12:06am UTC](https://www.ruby-forum.com/t/rsp-web-framework-first-public-release/194759 "2010-09-10T00:06:43Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Mike\_Owens](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/ee7513/32.png) [@Mike\_Owens](https://www.ruby-forum.com/u/Mike_Owens)\
**Post date:** [September 10, 2010, 12:06am UTC](https://www.ruby-forum.com/t/rsp-web-framework-first-public-release/194759/1 "2010-09-10T00:06:43Z")

</div>

# 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  
that  
help make life easier.

- History

RSP has been in development for about four years. It slowly evolved from  
a  
simple FCGI library plugged into the back of lighttpd, designed to be  
web  
server agnostic. When we started actually using it in production, we  
ended  
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  
on  
a dedicated Apache module. After version 1, my boss agreed to let me  
release  
the code, but I didn’t because things were still changing so much and  
there  
were a lot of warts I wanted to see disappear. Over a year or so version  
2  
took shape. It it has pretty much solidified.

- Features

If you like Apache then you should feel completely at home with RSP.  
It’s  
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  
(compiled  
into the Apache module), and a very lightweight MVC framework.

RSP is well documented (see doc link below). From the first line of  
code,  
documentation has proceeded lockstep with development. In addition to  
documentation, it includes a running example site where all major  
examples  
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  
includes  
an embedded instance of Apache and Ruby in-proc. You can either feed it  
raw  
HTTP requests or run it in interpreter mode whereby you can control  
everything with Ruby, wherein the environment acts as both browser and  
web  
server. You can thus programmatically feed multiple requests to the  
Apache  
instance and process the results. As a result you can create elaborate  
test  
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  
without  
the need of a browser or web server, just an editor and the command  
line.

Furthermore, the rsp utility is not limited to just running RSP code. It  
can  
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  
as  
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  
Ubuntu  
(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  
are  
not any native packages created as of yet. The build environment is  
CMake  
based, so if you have the requisite dependencies installed, it should be  
relatively easy to build on other systems. But on Ubuntu/Debian building  
is  
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  
write  
code that ranges from little more than a glorified CGI script to MVC.  
The  
entire Apache C API is wrapped (hand-coded) in Ruby C extensions and  
exposed  
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  
components  
you can add as you like.

This has been a long-running project that has gradually developed in  
fits  
and starts over the years. I think it has finally matured to a point  
where  
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

Website: [http://www.linterra.org/rsp/](http://www.linterra.org/rsp/)  
Documentation: [http://www.linterra.org/rsp/docs/](http://www.linterra.org/rsp/docs/)  
Code: [http://github.com/linterra/rsp](http://github.com/linterra/rsp)  
License: Apache 2.0
