It’s an exciting time to be Ruby or Rails developer as there are so many new and exciting things going on – in fact, it’s a lot to keep tabs on. Let’s look at two issues: Ruby web frameworks and HTTP adapters.
So, web frameworks, some of these you’ve probably heard of:
- Ruby on Rails – You’ve probably heard of this one.
- Camping has been around for a while, and aims to be tiny and simple – great when you’re only building a few pages. Developed by the infamous why.
- Merb was created by Ezra, which now has many of the core Rails features, but less of the frills. It’s fast and, best of all, its thread-safe.
But, oh, there are so many more:
- Nitro – Been around a while now, but development stalled for a year or two.
- Ruby Waves, which claims to be highly flexible.
- Wuby, a tiny server+framework, which serves RHTML files, in a manner similar to PHP.
- Sinatra, a REST-centric framework which uses a DSL to make life simpler.
- Ramaze, which is also very flexible, supporting a variety of ORMs, template engines, HTTP adapters, etc.
- Mack is brand new, claiming to be highly modular and agile, as well as speedy. Their site is down but their documentation is up.
- Maveric
- Vintage
- Cerise – Not recently maintained (2006).
- IOWA – Not recently maintained (2004).
I’m sure I still missed some. Moving on the HTTP adapters – these are the likes of WEBrick and Mongrel. It’s good to keep up on these as they can often mean a boost in performance for your app, often regardless of your framework, thanks to the common interface provided by the Rack library.
- Ebb is the newest to the show, touting fantastic performance as most of it is written in C. It can be a little tough to set up. It has support for Rails; for other frameworks, you’ll have to roll your own interface.
- Thin is quickly becoming the defacto standard (at least until ebb is further along)
- Swiftiply and Evented Mongrel was the first to improve Mongrel’s performance.
- Mongrel started it all.
- Fuzed allows your Rails app to run with Yaws.
- Passenger is “mod_rails” for Apache, which could be a big news. They are also working on Ruby Enterprise Edition, which will be launched soon.
And you have already learned and adopted git, right? Can’t fall behind the times…




April 12th, 2008 at 06:23 PM The real question is: Which ones support Ruby 1.9, and how far along are the ones that don't. I'm about to start a large scale project and would like to support 1.9 from the start. Picking the right framework at this stage, that supports 1.9 is something I'd hoped to bring to the alpha stage of this app. Thought?
April 13th, 2008 at 01:11 PM @Justin: Ramaze supports 1.9. AFAIK, it's the first and only framework with 1.9 support. @jd: The Ruby Waves link points to the Maveric site.
April 14th, 2008 at 05:22 AM @meekish:Ruby Waves link points to mack, actually
April 16th, 2008 at 11:36 AM Thanks for the link report! :) @Justin: I would love to say that 1.9 support is something to look for and care about, but unfortunately I don't think 1.9 is really worth thinking about yet. I suppose if you have a project that is sufficiently long-term where it won't be going production for 6-12 months, this might be a stronger consideration, but given we have no roadmap for 1.9, it is a significant unknown. I am hoping to write up something on this in the near future.