Welle, a Clojure client for Riak
Welle is a young idiomatic Clojure client for Riak built on top of the Riak Java driver. Its API and code style closely follow other ClojureWerkz Clojure libraries, namely Neocons, Elastisch and Monger.
Welle is not the only Clojure client for Riak on the block: there is a client called Sumo by one of Basho's engineers. If you are evaluating Welle, please consider Sumo as well.
- Be well maintained
- Be well documented
- Be well tested
- Target Clojure 1.3.0 and later from the ground up
- Batteries included: clojure.core.cache implementation on top of Riak and so on
- Be friendly to Heroku and other PaaS providers
- Protocol Buffers and HTTP connection
- Buckets: create, update, delete
- Objects: put, fetch, delete
- Secondary indexes (2i): indexing, index queries
- Content-type based serialization of values in common formats (bytes, JSON, Clojure data/reader, UTF-8 text, gzipped JSON)
- clojure.core.cache implementation on top of Riak
In addition Welle has maturing (but still very primitive, so not listed above) map/reduce query support.
Supported Clojure versions
Welle is built from the ground up for Clojure 1.3 and up. To store dates/instants with Clojure data serialization, Clojure 1.4.0
is the minimum required version because Clojure 1.3 reader cannot handle
java.util.Date instances. As such, Clojure 1.4 is
Please refer to our Getting Started with Clojure and Riak guide.
To subscribe for announcements of releases, important changes and so on, please follow @ClojureWerkz on Twitter.
Most Recent Release
<dependency> <groupId>com.novemberain</groupId> <artifactId>welle</artifactId> <version>1.0.0-alpha5</version> </dependency>
Documentation & Examples
Welle is a young project and documentation guide are not fully written yet. Documentation is one of the top priorities for the project and we are improving things week after week.
For code examples, see our test suite.
CI is hosted by travis-ci.org
Welle uses Leiningen 2. Make sure you have it installed and then run tests against all supported Clojure versions using
lein2 ci 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.
Copyright (C) 2011-2012 Michael S. Klishin
Distributed under the Eclipse Public License, the same as Clojure.