High level clients
Using one of these clients is strongly preferred to raw Thrift when developing applications (the Thrift API is primarily intended for client developers). What follows are clients that support Cassandra 0.7.
If no high-level client exists for your environment, you may be able to update an older client; failing that, you'll have to use the raw Thrift API.
- Python:
Pycassa: http://github.com/pycassa/pycassa
Telephus: http://github.com/driftx/Telephus (Twisted)
Django: https://github.com/vaterlaus/django_cassandra_backend
- Java:
Datanucleus JDO: http://github.com/tnine/Datanucleus-Cassandra-Plugin [this is deprecated]
Hector JPA: https://github.com/riptano/hector-jpa Replacement for the above plugin
Hector: http://github.com/rantav/hector (Examples https://github.com/zznate/hector-examples )
Kundera http://github.com/impetus-opensource/Kundera/ (Examples https://github.com/impetus-opensource/Kundera-Examples )
Cassandrelle (Demoiselle Cassandra): http://demoiselle.sf.net/component/demoiselle-cassandra/ (User guide: http://demoiselle.sourceforge.net/docs/guide-cassandra/)
- Grails:
grails-cassandra: https://github.com/wolpert/grails-cassandra
- .NET:
- Ruby:
Cassandra: http://github.com/fauna/cassandra
- PHP:
Older clients
If you are using Cassandra 0.6*, see ClientOptions06.
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 unless you really know that you need it you should probably be using a higher-level client listed above or, failing that, the Thrift API. The StorageProxy API is intended for internal use, and highly specialized use-cases. (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.