/welle

An expressive Clojure client for Riak with batteries included

Primary LanguageClojure

Welle, a Clojure client for Riak

Welle is an expressive Clojure client for Riak with batteries included. 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.

Project Goals

  • 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

Supported Features

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.

Clojure 1.4 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.

Getting Started

Please refer to our Getting Started with Clojure and Riak guide. Don't hesitate to join our mailing list and ask questions, too!

Community

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.

Maven Artifacts

Welle artifacts are released to Clojars.

With Leiningen

Add dependency in your project.clj:

[com.novemberain/welle "1.3.1"]

With Maven

Add Clojars repository definition to your pom.xml:

<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.3.1</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

Welle is part of the group of Clojure libraries known as ClojureWerkz, together with Monger, Langohr, Elastisch, Quartzite, Neocons and several others.

Continuous Integration

Continuous Integration status

CI is hosted by travis-ci.org

Development

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.

License

Copyright (C) 2011-2012 Michael S. Klishin

Distributed under the Eclipse Public License, the same as Clojure.