Yet another Ruby framework and HTTP adapter

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…