10 Alternative Ruby Web Frameworks

Do you want to write web applications but don’t want to use Ruby on Rails?

We all know Ruby on Rails is the most popular web framework for Ruby on the planet. Rails is the reason Ruby is so popular today, Rails is Ruby’s killer application. I am very much in favor of using Rails but there may be times when a smaller or different framework is desired or just for the sake of choices.

We also know once something becomes popular, it is duplicated, imitated or downright recreated. I started thinking about this recently from a series of posts on the Ruby Talk group on Google. Someone on the list wanted to create a web site utilizing Ruby but didn’t want to use Rails. It is a fair question and I knew of a couple but wanted to dig deeper to see how many frameworks were springing up.

I am not claiming any expertise with these frameworks, I have used some to try to understand how they work and possible applications for smaller projects. Some I was not aware of until making this list. I am doing this as a reference for fellow Ruby developers who are looking for alternative web application frameworks.

Merb

This is probably the most popular of the alternative frameworks, primarily because it has been around for a while and gets good coverage in the forums and was started by popular Rubyist, Ezra Zygmuntowicz. I have started playing with this framework for a couple applications I am creating. The documentation is very good but there doesn’t seem to be any good tutorials yet. I can expect the lack of tutorials being a new framework.

There is a nice overview of Merb for the site I write for, InfoQ, called High Performance Ruby MVC: Merb

From the Merb web site:

Like Ruby on Rails, Merb is an MVC framework. Unlike Rails, Merb is ORM-agnostic, JavaScript library agnostic, and template language agnostic, preferring plugins that add in support for a particular feature rather than trying to produce a monolithic library with everything in the core. In fact, this is a guiding principle of the project, which has led to third-party support for the ActiveRecord, DataMapper, and Sequel ORMs.

More information about Merb can be found at http://merbivore.com/.

Camping

Camping is a microframework which is less than 4K and has its own HTML markup-type language implemented in Ruby. An except from the CampingShortSample from the Camping web site:

require 'camping'  

 Camping.goes :HomePage  

 module HomePage::Controllers  

   # The root slash shows the `index' view. 
   class Index < R '/' 
     def get 
       render :index 
     end 
   end  

   # Any other page name gets sent to the view 
   # of the same name. 
   # 
   #   /index -> Views#index 
   #   /sample -> Views#sample 
   # 
   class Page < R '/(\w+)' 
     def get(page_name) 
       render page_name 
     end 
   end  

 end

More information about Camping can be found at http://code.whytheluckystiff.net/camping/.

Ramaze

I wasn’t aware of this framework until recently. It is an MVC framework with all the elements to create complete Ruby web applications. The typical “Hello World” application below is very simple.

require 'rubygems' 
require 'ramaze'  

class MainController < Ramaze::Controller 
  def index 
    'Hello, World!' 
  end 
end  

# Run using mongrel on http://localhost:7000/ 
Ramaze.start :adapter => :mongrel, :port => 7000

The Ramaze web site describes Ramaze as:

Ramaze is a simple, light, and modular open-source web-framework written in Ruby, similar in spirit to Rails, Camping and merb.

I think this framework holds a lot of promise if the developers keep it simple and light. I see Ruby web frameworks getting better and better as developers create and evolve new frameworks such is happening with Ramaze. The developers know about Rails, Camping and merb and want the best of what they know. Evolution in action.

I found a nice article putting Ramaze to work at Zen and the Art of Ruby Programming.

I plan to spend some time with this one and some others.

More information about Ramaze can be found at http://ramaze.net/.

Vintage

Vintage was released very recently but appears to be well-thought-out and is very small. The Vintage web site claims:

The super slim, microwebframework of doom!

Vintage is a very small web framework written in Ruby based on the original idea of Merb: Mongrel serving up ERb (Embedded Ruby) templates. The idea has been expanded and now Vintage helps you serve up ERb, HAML, Textile, Markdown, and Markaby templates.

More information about Vintage can be found at http://vintage.devjavu.com/.

Halcyon

This appears to also be new, details from the Halcyon RubyForge page:

Halcyon is a JSON Web App Server Framework built on Rack for speed and light weight.

Halcyon has several aims and goals, including:

  • Be fast — easy with Rack and Mongrel
  • Be small — also not a problem with Rack and Mongrel
  • Talk small — communications are fast and flexible with JSON transport layer
  • Be flexible — since it’s an HTTP server, it’s very flexible and has lots of room to grow
  • Be easy to implement — also easy since we’re developing in Ruby here

More information about Halcyon can be found at http://halcyon.rubyforge.org/.

Nitro/Og

This framework has been in development for a while but seems to be lacking for a long time. It does has a nice website but missing information in many areas. I have seen a bunch of references to this framework on the web.

Documentation for the API looks to be complete and detailed. I know very little about this framework. I wish the web site had some tutorials

More information about Nitro can be found at http://www.nitroproject.org/.

Wuby

This is new, lightweight framework that when I say it, I feel like I am talking like Elmer Fudd. Come one, doesn’t it sound like it a little.

Wuby comes from Chris Matthieu, the voice of the Rubyology podcast.

The Wuby web site describes Wuby as:

Wuby is a Ruby Web Server designed for light-weight Ruby web applications and a framework for storing and accessing data without deploying a database engine. No third-party applications or Gems are required to run Wuby and host a Ruby-based web site.

Remember the days of IIS and ASP code where you could mix HTML and ASP scripts inside of <% %> symbols? Wuby allows you to accomplish the same task but using the Ruby language instead of ASP!

Wuby consists of the following components:

  • Lightweight & fast web server
  • Supports only GET and POST methods currently
  • CGI params and environmental variables
  • Optional directory browsing
  • Persistent hashed data access layer
  • MySQL, SQLite, and Postgres support

More information about Wuby can be found at http://wuby.org/

Sinatra

I have never heard of this one before but their web site says Sinatra is:

Classy web-development dressed in a DSL

More information about Sinatra can be found at http://sinatra.rubyforge.org/.

Ruby WAF

This one looks to be not maintained but may be worth a look if you wanted to create your own framework or if you are looking for an open source project to get involved in.

More information about Ruby WAF can be found at http://sourceforge.net/projects/ruby-waf/

webby

The webby web site describes webby as:

Webby is a super fantastic little website management system. It would be called a content management system if it were a bigger kid. But, it’s just a runt with a special knack for transforming text. And that’s really all it does – manages the legwork of turning text into something else, an ASCII Alchemist if you will.

More information about webby can be found at http://webby.rubyforge.org/.

I plan to publish future lists as new frameworks as I find out about new frameworks and have a chance to check them out.   As you can see there are a large number of frameworks for writing Ruby web applications instead of using Rails.  I think Rails is a great framework but it’s always good to have other tools at our disposal, maybe a smaller job or certain features of any of these frameworks would be better suited to the task.

I am sure I am missing some frameworks, please let me know any I missed in the comments and I will incorporate into future posts.

Technorati Tags: Ruby,Web Frameworks,Ruby on Rails

24 responses to “10 Alternative Ruby Web Frameworks

  1. Hi,

    The Majority success of PHP goes to DreamWeaver.

    With DreamWeaver, you simply place the PHP codes in between and get the site up and running with Fantastic HTML and CSS suppport.

    It is not easily possible with ERB or Erubis as a solution.

    Ruby badly needs such a solution to make it up and running like PHP.

    To use Rails and other frameworks is a different question.

    It would be great, if you can write such a tutorial for getting Ruby up and running with Erb or Erubis, without any framework.

    Thanks

    SoftMind

  2. @SoftMind Thank you for the comment. I am planning a tutorial on Erb or Erubis to run Ruby apps without any framework. I was going to mention it in this post but it wasn’t really on topic.

  3. Don’t count IOWA down and out. I’ve started hitting getting a new site with much improved, updated documentation done.

    IOWA has been around in production use now for _almost_ 6 years. I have many, many sites and apps running on it (the oldest of which is nearing 5 years of continuous uptime).

    http://iowa.swiftcore.org

    As of right now, 5:31 pm Monday, January 14th, I have the slides of a presentation about it online there, but more content and a brand new snapshot based on my current production codebase is forthcoming.

  4. @Kirk Sorry, I wasn’t aware IOWA. I would like to see some docs and sample apps so I can get a feel for it. I have the PDF and will look that over.

    I appreciate the heads up and not sure why IOWA didn’t turn up already in my searching.

  5. This post is very hot, it is high ranked at our site (daily weblog, weblog post ranking site). See http://blogrank.info/indirect-page-to-blog-report/ for more infomation

  6. Pingback: A Fresh Cup » Blog Archive » Double Shot #124

  7. Pingback: Ruby on… 10 things other than rails! « CodeHappy

  8. Pingback: links for 2008-01-16 | Lazycoder

  9. @rob, no problem. I’m busy porting a lot of old docs and expanding them, so the new site will start filling out with more material soon, including a lot of sample apps based off of actual production code I have running with customers.

  10. @Kirk Great, I am looking forward to it. Let me know when you have something up, if you would.

  11. With regard to SoftMind’s comment above: “The Majority success of PHP goes to DreamWeaver. With DreamWeaver, you simply place the PHP codes in between and get the site up and running with Fantastic HTML and CSS suppport. It is not easily possible with ERB or Erubis as a solution.”

    This is something that we are addressing in a product currently under development and due for release in the very near future. It’s called the Visual Rails Workbench and it will form a part of the next major release of the Ruby In Steel IDE. This will let you do full page design of Rails web pages with drag+drop controls, resizing, setting properties in a panel (etc.) – you will also have the option to export/import to and from other web design apps such as Dreamweaver. We haven’t yet any visual design support for other Ruby frameworks but if any of them achieves enough of a popular following that is certainly something we would consider.

    I’ll be demoing the Visual Rails Workbench on the Blog quite soon (next week or the week after).

    best wishes
    Huw

    SapphireSteel Software
    Ruby and Rails In Visual Studio
    http://www.sapphiresteel.com

  12. Pingback: ProDevTips - dev related notes and tutorials » Blog Archive » Speedlinking 19 Jan 2008

  13. @Huw This sounds like a great product. I am Ruby in Steel customer and love the environment. You guys have done a ton of good things for Rails on Windows. I am looking forward to the next version.

    I am also looking forward to using Ruby in Steel with IronRuby and Rails down the road.

  14. Thanks for the comments, Rob. Glad you like Ruby In Steel. I’ve just put a first screenshot of our new Rails visual development environment online. You may be interested to take a look: http://www.sapphiresteel.com/Visual-Rails-Workbench-Preview

    I’ll be putting more details and more pictures online next week and we’ll be releasing the software quite soon.

    And yes I too am looking forward to using RiS with IronRuby. I hope we’ll have a few more IronRuby things we can demo in the very near future.

    best wishes
    Huw

    SapphireSteel Software
    Ruby and Rails In Visual Studio
    http://www.sapphiresteel.com

  15. @Huw Thanks for the comment and keep me up-to-date on the development on the workbench and RiS with IronRuby.

  16. Just wanted to let people know about a new kid on the block: Waves.

    You can find out more at RubyWaves.com.

    Rob – I hope you’ll include Waves in your future posts on this subject!

  17. Thanks for this detailed review of ‘alternatives’ Ruby frameworks

    We are trying to gather the best tutorials and other useful web resources (hosting, showcase, discussion groups, community site,…) about the Ruby web frameworks (Ruby on Rails of course but also the alternative ones you mention : Merb, Camping…) in our web framework directory.

    Please don’t hesitate to have a look on our Ruby pages :
    http://www.therightsoft.com

    and send us some pointers to valuable web resources that we may have missed to : webmaster@therightsoft.com

    Tom

  18. @SoftMind

    I don’t know how you could say that PHP’s success is due to Dreamweaver.

    Maybe you’re talking about extremely low-level coders here.. maybe in that demographic, they need/wan a GUI?

    I’m not going to go off and say, “Real coders don’t use a GUI.”, but…. “Real coders don’t use a GUI.”

    Real coders use UML, tests, frameworks, and all kinds of other tools that are completely useless with a crutch program like Dreamweaver (Yeah that’s right. I could write semantic, perfect XHTML faster than you can in dreamweaver, and there’s nothing you can say to negate this fact, it’s been proven with plenty of dreamweaver fanboys)

    I am not trying to merely stab at Dreamweaver; there are applications for it. Low-level designers and developers can certainly use the crutch when dealing with deadlines that they couldn’t meet if they had to squeeze in the learning curve, too.

    I’ve seen dreamweaver work in a professional environment with great coders… 0 times.

  19. @tom

    The maturity rating you have on http://www.therightsoft.com/ seem misleading.

    How can you base maturity on a version number metric? I think for non-statisticians, they will intuitively think that your metric is based on something more solid, when it should really come with a warning: “Maturity Metric Based on Arbitrary Metrics”

  20. Pingback: Checking out the new Ruby web framework called Waves « Accidental Technologist

  21. Pingback: Bustier

  22. Pingback: Misuse » Thin, Ruby on Rails & Nginx fair proxy: Performance testing

  23. Pingback: 網站製作學習誌 » [Web] 連結分享

Leave a comment