Hi Everyone,
I'm happy to announce the 0.2.0 release of Mongrel -- the fastest HTTP 1.1 library Ruby has yet.
http://mongrel.rubyforge.org/ -- ruby docs lame page.
http://rubyforge.org/projects/mongrel/ -- project page.
Special thanks to Tom Copland for setting up my RubyForge goodness, and to Why for kicking in time to get the Camping examples up to snuff.
This release should strike a good balance between being fast and being stable on all platforms.
== Gems And Source
You can get this release of Mongrel via RubyGems in the usual way:
gem install mongrel
Please let me know if this don't install. You can also hit the project page and download a full .tgz source file if you hate RubyGems.
== Status
This release mostly just focuses on the core of Mongrel. I've done just about everything I know to make it the fastest thing possible short of sacrificing goats and small children (but there was this one dude on IRC). I'll leave it to others to compare for now but the main purpose of this release is to do any final fine tunings and really pound on it to make it stable.
The other major change is that the HttpResponse class is now fully functioning and should be easy for people to use. It does not support the CGI library yet but I've got devious evil plans to set my skills on the CGI library as well.
== Example
This example is from the examples/simpletest.rb file:
require 'mongrel'
class SimpleHandler < Mongrel::HttpHandler
def process(request, response)
response.start(200) do |head,out|
head["Content-Type"] = "text/plain"
out.write("hello!\n")
end
end
end
h = Mongrel::HttpServer.new("0.0.0.0", "3000")
h.register("/test", SimpleHandler.new)
h.run.join
Doesn't really do much but demonstrates the main meat of the system. Why has also written some Camping (http://rubyforge.org/projects/camping) samples which should work with the svn version of Camping.
== Next Steps
I'd love for people to break the hell out of it and post me some bug reports. I've tried to do everything I can, but I'm going to get ahold of some HTTP fuzzing stuff and see if I can't do any further damage.
I'm also looking for smart people who might have opinions on Mongrel, what it does, and specifically how you can see using it with your web application framework. Feel free to join the Mongrel mailing list at http://rubyforge.org/mailman/listinfo/mongrel-users and start tossing the ideas around.
Enjoy and let me know what you think.
Zed A. Shaw
http://www.zedshaw.com/