Zed,
Cool stuff. Is the intent that this enables an even more straightforward approach for running apps (such as a RoR app) than scgi under lighttpd? Ie., rather than scgi under lighttpd, just use mod_proxy?
Yes, the intention is to produce the optimal deployment scenario for Ruby web applications. A secondary purpose is to prove my unofficial "Zed's STFU Performance Razor":
"All languages are as fast as the fastest language they can access so STFU."
I'm imagining that if I can get the various web frameworks to run well and fast under Mongrel, and sprinkle in a few sexy features, then it'd be the best way to deploy the applications. I'm thinking a primary concern is performance, followed by ease of deployment, then management, and finally API simplicity. What's nice with just plain HTTP is that there's already a mountain of support for production HTTP hosting and deployment technology.
Did you read this post, where Mark Mayo wonders why the newer frameworks haven't just been using an http interface (and instead have struggled with fcgi)?
http://www.vmunix.com/mark/blog/archives/2006/01/02/fastcgi-scgi-and-apache-background-and-future/
Yeah, I read that post literally as I was building the precursor to SCGI, and then decided to take the plunge and just do it. The story goes like this:
1) Win32 IIS dudes beg me to get SCGI working under IIS.
2) I like Win32 dudes, hell I love everybody the same (which is very little, but it's equal at least).
3) I start working on an HTTP->SCGI proxy. I use Ragel to make a clean, fast, and correct parser.
4) madrobby schools me on my parser with his mountain of browsers until I get it working better.
5) I keep asking myself, "Why don't I just take the parser and make a Ruby web server?"
6) I keep asking this but it doesn't sink in. I decide to toy with the idea. Someone shows me the articl Then I read the above article and just do it.
7) What you have is about 3-4 days later.
So, that's the semi-official story. What I also have though is a HTTP parser that I can break out and make into a library. This means that other languages could possibly pick it up and write their own similarly fast web servers with minimal effort. Keep your fingers crossed.
Zed A. Shaw
···
On Jan 20, 2006, at 2:33 PM, Michael Schoen wrote: