On Jan 20, 2006, at 2:33 PM, Michael Schoen wrote:
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
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
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)?
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:
- Win32 IIS dudes beg me to get SCGI working under IIS.
- I like Win32 dudes, hell I love everybody the same (which is very
little, but it’s equal at least).
- I start working on an HTTP->SCGI proxy. I use Ragel to make a
clean, fast, and correct parser.
- madrobby schools me on my parser with his mountain of browsers
until I get it working better.
- I keep asking myself, “Why don’t I just take the parser and make
a Ruby web server?”
- 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.
- 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
Zed A. Shaw