Welle, a Clojure client for Riak
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
Welle is a mature project that is over 1 year old and has been used to build systems that process at least tens of gigabytes of data per day.
- HTTP and Protocol Buffers transports
- Bucket operations: create, update, delete
- Key/Value operations: 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)
- Riak Search support
- Storing links on values, link walking
- Map/Reduce queries
- clojure.core.cache implementation on top of Riak
- Ring session store implementation on top of Riak
- Cheshire and data.json extensions for serialization of JodaTime and JDK dates
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
The most recent stable Clojure release is highly recommended.
Supported Riak Versions
Welle targets Riak 1.1+ but some features (for example, 2i and Search support via Protocol Buffers transport) are 1.2-specific.
1.4.0 is compatible with Riak
Welle has a mailing list. Feel free to join it and ask any questions you may have.
To subscribe for announcements of releases, important changes and so on, please follow @ClojureWerkz on Twitter.
Welle artifacts are released to Clojars.
Add dependency in your
Add Clojars repository definition to your
<repository> <id>clojars.org</id> <url>http://clojars.org/repo</url> </repository>
and then the dependency:
<dependency> <groupId>com.novemberain</groupId> <artifactId>welle</artifactId> <version>1.5.0</version> </dependency>
Documentation & Examples
Welle has documentation guides. Documentation is one of the top priorities for the project and we are improving things week after week.
For additional code examples, see our test suite.
Welle Is a ClojureWerkz Project
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 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.
Copyright (C) 2011-2013 Michael S. Klishin