Skip to content
Pull request Compare This branch is 2 commits ahead, 2090 commits behind master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



This directory contains a pure Python implementation of a voldemort client.
It supports both raw (string) and JSON serialized stores. Only the protocol
buffer interface over TCP is supported for talking to the server. Only
server-side routing is supported.


To install the module, you will need the following dependencies:
- nose >= 0.11
- simplejson >= 2.1.1
- Google protobuf > 2.3.0

The setup process will automatically install nose and simplejson, since they
are well behaved Python packages. The protobuf module will need to be downloaded
from and installed manually.

Once the dependencies, run the test suite to sanity check things. You need to
first start up a Voldemort server locally, pointing to the config files in
tests/voldemort_config. From the root voldemort of the voldemort source tree, run:

> bin/voldemort-server clients/python/tests/voldemort_config

In a separate shell, change into the clients/python directory and run:

> python nosetests

If all tests pass, you can install the package with the command:

> python install

This may need to be run as root if you don't have permissions to install to your
local python library.


To use the client, simple import it into your program with the statement:

import voldemort

To create a client connection, instantiate a StoreClient object:

client = voldemort.StoreClient('store_name', [('node1', 6666), ('node2', 6666)])

The values of the store name and cluster nodes/ports will depend on your particular
Voldemort setup. The key and value serialization type will be determined
automatically during client initialization using the values in your cluster's
stores.xml file.

The StoreClient object implements the get(), get_all(), put(), maybe_put(),
and delete() methods. For example:

> v1 = client.put("foo", "hello")
> resp = client.get("foo")
> resp[0][0]

> client.delete("foo")
> client.get("foo")

The test suite contains many other usage examples.
Something went wrong with that request. Please try again.