Skip to content

Ruby CouchDB Library Comparison

As I looked at some of the Ruby libraries for CouchDB, it was clear that they have very different approaches. In the hopes of keeping them straight I began making a table. I am sharing it for your right-angled pleasure. Warning, it is in beta form. If you post comments, I will try to incorporate your feedback in the table. Thanks!

Last updated on May 6, 2009.

RelaxDB CouchREST CouchFoo DataMapper (DM) Rest Adapter CouchObject Ruby-CouchDB ActiveCouch Coach Potato
Source Code paulcarey on GitHub jchris on GitHub georgepalmer on GitHub

datamapper on GitHub couchobject at RubyForge couchdb at RubyForge activecouch at RubyForge couch_potato on GitHub
Underlying HTTP Library [1] Net::HTTP REST Client ? Net::HTTP ? ? ? REST Client (couchrest is a dependency)
Interface ? ? ActiveRecord style DataMapper style ? Thin wrapper over CouchDB’s RESTful API ActiveRecord style
ORM specific? [2] N ? N ? N ? Y – DataMapper N ? N N ?
Automatic view creation? ? ? ? ? ? ? ? Y
Quality of test suite? ? ? ? ? ? ? ? ?
Do you need to write Javascript? [3] ? ? ? ? ? ? ? Y

Notes:

  1. I personally think Net::HTTP is a bit crufty. I prefer to see other Ruby HTTP libraries, such as HTTParty.
  2. Does a library only works with a particular Object Relational Mapper (ORM)?
  3. Does a library require that you write Javascript? Or does it generate the JS for you automatically? (I am not taking sides on which is better.)

4 Comments

  1. alex wrote:

    hi,

    your table is missing couch potato (github.com/langalex/couch_potato). it’s baed on couchrest, has a couchdb style interface, has automatic view creation, pretty good test suite and yes, you have to write javascript sometimes (whch imho is good)

    Thursday, April 16, 2009 at 4:02 am | Permalink
  2. alex wrote:

    still no couch potato in the table :(

    Wednesday, May 6, 2009 at 1:54 pm | Permalink
  3. David wrote:

    Alex: Fair point. I just added some information about your (correct?) project

    Wednesday, May 6, 2009 at 2:36 pm | Permalink
  4. Gregory Foster wrote:

    Hi David! Too funny that I started my research on CouchDB + Ruby and find you’ve already begun :) Thanks for documenting your work!

    It seems to me like efforts to assimilate CouchDB into existing ORM idioms (ActiveRecord and DataMapper) are doing CouchDB—and developers who adopt the easy route—a disservice. At the end of all that effort to create an ActiveRecord-compatible interface, what has been accomplished? You can treat CouchDB like a relational database. So why not use a relational database to begin with?

    Seems like that method of going about things is going to leave a lot of the fundamentally unique capabilities of CouchDB on the table…

    Monday, May 25, 2009 at 12:34 pm | Permalink

Post a Comment

Your email is never published nor shared. Required fields are marked *
*
*