You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by Apache Wiki <wi...@apache.org> on 2010/08/18 21:49:06 UTC

[Cassandra Wiki] Update of "ClientOptions06" by JonHermes

Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Cassandra Wiki" for change notification.

The "ClientOptions06" page has been changed by JonHermes.
http://wiki.apache.org/cassandra/ClientOptions06

--------------------------------------------------

New page:
<<TableOfContents()>>

= High level clients =
These are often more convenient than raw Thrift, which has a certain lowest-common-denominator flavor to it, because that's what it does.  But, it's good to understand the Thrift [[API]] to have an idea of what's going on under the hood.  See the individual clients for their respective documentation. Note that by default the Thrift [[API]] is exposed on port 9160.

 * Ruby:
  * Cassandra: http://github.com/fauna/cassandra/tree/master
  * Cassandra_object: http://github.com/NZKoz/cassandra_object/tree/master (for Rails)
  * Small Record: http://github.com/astrails/smallrecord/tree/master (for ruby/ActiveModel, Rails)
 * Perl:
  * Net-Cassandra: http://search.cpan.org/dist/Net-Cassandra/lib/Net/Cassandra.pm
  * Net-Cassandra-Easy: http://search.cpan.org/dist/Net-Cassandra-Easy/ (A simpler, much less Thrift-oriented interface than Net::Cassandra; includes a CLI called cassidy.pl with tab-completion)
 * Python:
  * Tragedy: http://github.com/enki/tragedy/
  * Lazy Boy: http://github.com/digg/lazyboy/tree/master
  * Telephus: http://github.com/driftx/Telephus/tree/master (Twisted)
  * Pycassa: http://github.com/vomjom/pycassa
 * Scala:
  * Scromium: http://github.com/cliffmoon/scromium
  * Cascal: http://github.com/shorrockin/cascal
  * Cassandra4o: http://code.google.com/p/cassandra4o/ (works with Java, includes hooks for Hibernate-like Object-mapping)
  * Akka: http://akkasource.org/ (Akka includes a Cassandra client but is more than that)
  * Cassie: http://github.com/codahale/cassie
 * Java :
  * Hector: http://github.com/rantav/hector
  * Pelops: http://code.google.com/p/pelops/
  * HelenaORM: http://github.com/marcust/HelenaORM (ORM layer built on Hector)
  * OCM: http://github.com/charliem/OCM (higher level client built on Hector)
  * Datanucleus-Cassandra plug-in: http://github.com/PedroGomes/datanucleus-cassandra (Persistence of objects through the JDO/JPA APIs under the Datanucleus platform).
  * Jassandra: http://code.google.com/p/jassandra/
 * PHP :
  * Pandra: http://github.com/mjpearson/Pandra/tree/master
  * PHP Cassa: http://github.com/hoan/phpcassa [port of pycassa to PHP]
 * Clojure :
  * CLJ-Cassandra: http://github.com/robertluo/clj-cassandra
 * Grails :
  * Grails-Cassandra: http://github.com/wolpert/grails-cassandra
 * C++ :
  * LibCassandra: http://github.com/posulliv/libcassandra
 * C# / .NET
  * Aquiles: http://aquiles.codeplex.com/
  * Hector Sharp: http://www.hectorsharp.com
  * Fluent Cassandra: http://github.com/managedfusion/fluentcassandra


== Older clients ==
These are not up to date with the latest Cassandra features.

 * Scala:
  * http://github.com/viktorklang/Cassidy/tree/master
  * http://github.com/nodeta/scalandra/tree/master
 * Java:
  * http://code.google.com/p/cassandra-java-client
 * PHP:
  * Simple Cassie: http://code.google.com/p/simpletools-php/wiki/SimpleCassie

= Example Projects =

 * Erlang:
  * etiny: http://github.com/dgrijalva/etiny

= Thrift =
Thrift is the Cassandra driver-level interface that the clients above build on.  You can use raw Thrift from just about any language, but it's not particularly idiomatic in any of them.  Some examples are given in ThriftExamples.

= Internal API =
The StorageProxy API is available to JVM-based clients, but you should use Thrift unless you have a very good reason not to.  (The most common reason is wanting to use the BinaryMemtable bulk-load interface.)

= Hadoop =
Running Hadoop map/reduce jobs in Cassandra is described in HadoopSupport.