A consistent distributed key-value store
OCaml Python C Shell Makefile
Latest commit 43a8d0b Jul 6, 2015 @toolslive toolslive Revert "Merge pull request #565 from Incubaid/ready_for_4.02.2"
This reverts commit b41d05d, reversing
changes made to 57d9db9.
Failed to load latest commit information.
cfg giving the right example: compressor -> tlog_compression Jan 20, 2015
ctrl updated crtl/nodes; Aug 16, 2013
data uncompress-tlog supports both .tlf and .tlc Feb 3, 2011
debian make_release: 1.8.6 Jun 26, 2015
doc Doc: Add new TLS settings to documentation Jun 24, 2014
examples added ad hoc test for client_lib May 7, 2014
extension leftovers Apr 4, 2014
jenkins Revert "Merge pull request #565 from Incubaid/ready_for_4.02.2" Jul 6, 2015
pylabs minor improvement to catchup_only May 21, 2015
redhat/SPECS make_release: 1.8.6 Jun 26, 2015
src Sys.sigusr1 iso 10 Jun 30, 2015
tools fix ssl version + commit redhat spec file too Jun 9, 2015
.gitignore Added more missing parameters in spec file Oct 2, 2014
.gitmodules submodule url Feb 4, 2014
.merlin Update `.merlin` Jun 20, 2014
.ocamlinit updated crtl/nodes; Aug 16, 2013
.ocp-indent Add ocp-indent settings file Aug 9, 2013
.travis.yml update travis to ocaml 4.02 Oct 2, 2014
CNAME Add CNAME file Dec 27, 2011
COMPILING add quickcheck to compiling Mar 19, 2014
LIBRARIES update LIBRARIES with snappy Nov 4, 2013
LICENSE Remove duplicate license text May 15, 2014
META make_release: 1.8.6 Jun 26, 2015
Makefile expose stamp in arakoon_client package Apr 13, 2015
README.md bump travis-ci branch to 1.8 Oct 2, 2014
_tags support for nocrypto Apr 3, 2015
arakoon.odocl Move `CountDownLatch` into a new `Lwt_extra` module Jul 14, 2014
buildInSandbox.sh run system tests with or without qshell Jan 22, 2014
logger_macro.ml Enabling non-LWT logging Jun 24, 2014
myocamlbuild.ml fix the version of more (transitive) dependencies Jun 9, 2015
report.sh Initial version Nov 17, 2010
setup.py adding metadata (classifiers,...) for Pypi Jul 3, 2012
test_it.py pyrakoon as submodule Feb 3, 2014
travis.sh fix travis Apr 3, 2015



Arakoon is a distributed key/value store with preference for consistency. More technically, it's a Multi-Paxos implementation (written in OCaml) running on top of TokyoCabinet.

Arakoon is licensed under the Apache License, version 2. For a full license text, see LICENSE.

For more information, see the project homepage at http://arakoon.org.

Building Arakoon

For compilation instructions, see the COMPILING document. Information about the libraries we use is available in LIBRARIES.


Start by building Arakoon. To set up a single-node demo server, a basic configuration file is required, e.g.

$> cat single.ini
cluster = arakoon_0
cluster_id = ricky

ip =
client_port = 4000
messaging_port = 4010
home = /tmp
log_level = info

Now, start the node using

$> ./arakoon.native -config single.ini --node arakoon_0

This starts a single node cluster for you to play with.

You can set and retrieve values from the command line using

$> ./arakoon.native -config examples/single.ini --set hello world
$> ./arakoon.native -config examples/single.ini --get hello

An overview of all command-line options is available by running arakoon.native --help.

Of course you want to use Arakoon from within a program. We provide OCaml, C and Python clients.


Arakoon releases are available from the releases page. Any 1.X branch corresponds to the development of releases in the 1.X series.

Have fun,

The Arakoon team