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.
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)
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)
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)
- Java :
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).
- PHP :
PHP Cassandra Client Library: http://github.com/kallaspriit/Cassandra-PHP-Client-Library
PHP Cassa: http://github.com/hoan/phpcassa [port of pycassa to PHP]
- Clojure :
- Grails :
Grails-Cassandra: http://github.com/wolpert/grails-cassandra (Download 0.5.4 from the github site for 0.6 compatibility)
- C++ :
- C# / .NET
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.
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.)
Running Hadoop map/reduce jobs in Cassandra is described in HadoopSupport.