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.
Telephus: http://github.com/driftx/Telephus (Twisted)
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
Cassandrelle (Demoiselle Cassandra): http://demoiselle.sf.net/component/demoiselle-cassandra/ (User guide: http://demoiselle.sourceforge.net/docs/guide-cassandra/)
If you are using Cassandra 0.6*, see ClientOptions06.
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 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.)
Running Hadoop map/reduce jobs in Cassandra is described in HadoopSupport.