Cassaforte, a Clojure Cassandra Client
Cassaforte is a small, easy to use Clojure client for Apache Cassandra (2.0+) built around CQL 3.
For quickstart, please refer to our Getting Started with Clojure and Cassandra guide.
Project Goals
- Provide a Clojure-friendly, easy to use API that reflects Cassandra's data model well. Dealing with the Cassandra Thrift API quirks is counterproductive.
- Be well maintained.
- Be well documented.
- Be well tested.
- Target modern Cassandra and Clojure releases.
- Integrate with libraries like Joda Time.
- Support URI connections to be friendly to Heroku and other PaaS providers.
Project Maturity
Cassaforte is a moderately mature project. Started in June 2012, it
has reached 1.0
in July 2013 and 2.0
in December 2014. It is
known to be used by dozens of companies, small and large.
Cassaforte is based on the official DataStax Java driver for Cassandra as well as Hayt, a battle tested CQL generation DSL library.
Dependency Information (Artifacts)
Cassaforte artifacts are released to Clojars. If you are using Maven, add the following repository
definition to your pom.xml
:
<repository>
<id>clojars.org</id>
<url>http://clojars.org/repo</url>
</repository>
The Most Recent Version
With Leiningen:
[clojurewerkz/cassaforte "2.0.0"]
With Maven:
<dependency>
<groupId>clojurewerkz</groupId>
<artifactId>cassaforte</artifactId>
<version>2.0.0</version>
</dependency>
Supported Features
- Connection to a single node or a cluster
- All CQL 3.1 operations
- CQL queries, including prepared statements
- Nice query DSL for Clojure
- Automatic deserialization of column names and values according to the schema
- TLS connections, Kerberos authentication (DataStax Enterprise)
Supported Clojure Versions
Cassaforte supports Clojure 1.6+.
Supported Apache Cassandra Versions
Cassaforte is built from the ground up for CQL. 2.0 and later versions target Cassandra 2.x.
Documentation & Examples
Please refer to our Getting Started with Clojure and Cassandra guide.
Documentation guides are not finished and will be improved over time.
API reference is also available.
Don't hesitate to join our mailing list and ask questions, too!
Community
To subscribe for announcements of releases, important changes and so on, please follow @ClojureWerkz on Twitter.
Cassaforte Is a ClojureWerkz Project
Cassaforte is part of the group of libraries known as ClojureWerkz, together with Monger, Elastisch, Langohr, Welle, Titanium and several others.
Continuous Integration
CI is hosted by travis-ci.org
Development
Cassaforte uses Leiningen 2. Make sure you have it installed and then run tests against all supported Clojure versions using
lein all test
Then create a branch and make your changes on it. Once you are done with your changes and all tests pass, submit a pull request on Github.
License
Copyright (C) 2012-2016 Michael S. Klishin, Alex Petrov, and the ClojureWerkz team.
Double licensed under the Eclipse Public License (the same as Clojure) or the Apache Public License 2.0.