From: "Matthew Stump" <mrevilgnome@gmail.com>
To: user@cassandra.apache.org
Sent: Monday, December 5, 2011 2:59:34 AM
Subject: Ruby, CQL and client libraries

Howdy,

I'm working on transferring an existing Ruby on Rails project from Postgres to Cassandra and I have a couple questions about the Ruby client libraries and client libraries in general.

1.) Is it the opinion of the community and the Datastax engineers that client libraries should migrate away from thrift and should use CQL instead?
The CQL interface is a bit more insulated from the internals of Cassandra.  It was designed so that you would be able to use the same CQL version across different versions of Cassandra.  This makes CQL quite a bit easier for the client/driver developers as well. 

2.) Is anyone working on a CQL Ruby client?
There already is a great CQL ruby client[1].  It is hosted in apache-extras on Google Code [2].  A little while back I did a simple comparison between the cassandra-cql client and the twitter(formerly fauna) cassandra client[3]. Rick Olson then made another quick comparison amongst twitter/cassandra, cassandra-cql, and pycassa (Python client)[4].  In both sets of tests the cassandra-cql client came out doing quite well.

3.) Other than the fauna/twitter client what are other people using for Ruby?
See above...
4.) If someone were to take it upon themselves to write yet another Ruby cassandra client is there any particular library that is generally accepted as good and could act as an archetype for other implementations (Hector)?
Not sure on this one.  We have been using twitter/cassandra and are migrating to cassandra-cql.  Two of the things that we are working on internally are an ActiveModel implementation, and some sort of search API.  These are trivially implemented on top of the cassandra-cql library, but sometimes it is nice not having to construct the CQL/SQL manually.

Thanks!


--M
[1] - https://rubygems.org/gems/cassandra-cql
[2] - http://code.google.com/a/apache-extras.org/p/cassandra-ruby/
[3] - https://gist.github.com/1185026
[4] - https://gist.github.com/1363336

Robert Jackson