TL;DR

Cassaforte is a new Clojure client for Apache Cassandra 1.2+. It is built around CQL 3 and focuses on ease of use. You will likely find that using Cassandra from Clojure has never been so easy.

1.2.0 is a minor release that introduces one minor feature, fixes a couple of bugs, and makes Cassaforte compatible with Cassandra 2.0.

Changes between Cassaforte 1.1.x and 1.2.0

Cassandra Java Driver Update

Cassandra Java driver has been updated to 1.0.3 which supports Cassandra 2.0.

Fix problem with batched prepared statements

insert-batch didn’t play well with prepared statements, problem fixed now. You can use insert-batch normally with prepared statements.

Hayt query generator update

Hayt is updated to 1.1.3 version, which contains fixes for token function and some internal improvements that do not influence any APIs.

Added new Consistency level DSL

Consistency level can now be (also) passed as a symbol, without resolving it to ConsistencyLevel instance:

(client/with-consistency-level :quorum
       (insert :users r))

Please note that old DSL still works and is supported.

Password authentication supported

Password authentication is now supported via the :credentials option to client/build-cluster. Give it a map with username and password:

(client/build-cluster {:contact-points ["127.0.0.1"]
                       :credentials {:username "ceilingcat" :password "ohai"}
                       ;; ...

Query DSL added for managing users create-user, alter-user, drop-user, grant, revoke, list-users, list-permissions for both multi and regular sessions.

News and Updates

New releases and updates are announced on Twitter. Cassaforte also has a mailing list, feel free to ask questions and report issues there.

Cassaforte is a ClojureWerkz Project

Cassaforte is part of the group of libraries known as ClojureWerkz, together with

  • Langohr, a Clojure client for RabbitMQ that embraces the AMQP 0.9.1 model
  • Monger, a Clojure MongoDB client for a more civilized age
  • Elastisch, a minimalistic Clojure client for ElasticSearch
  • EEP, a Clojure library for stream (event) processing
  • Neocons, a Clojure client for the Neo4J REST API
  • Quartzite, a powerful scheduling library

and several others. If you like Cassaforte, you may also like our other projects.

Let us know what you think on Twitter or on the Clojure mailing list.

Michael on behalf of the ClojureWerkz Team.