C/C++ client for the Riak distributed database
Shell C++ Protocol Buffer C
Latest commit 88f7196 Mar 31, 2015 @mbbroberg mbbroberg Merge pull request #3 from kumagi/master
Removed unnecessary whitespace.


Riak C/C++ Client


This is experimental, alpha code. If you’re running it in production, you do so at your own risk. While Basho fully intends to work on this when our development cycle permits, at the moment this libary is still very young and is in no way complete. In its current state, it will break, and there will be bugs.

That said, we do want for it to become a first class citizen in our Client Library arsenal at some point. With your help, this will be sooner than later.


This is a WIP of a C/C++ client for Riak.

/* fetch an object */
riak::client_ptr c = riak::new_client("", "8087");
riak::fetch_result fr = c->fetch("mybucket", "mykey", 2);
riak::object_ptr o = fr.choose_sibling(0);
assert(o->key() == "mykey");
  • protobufs only
  • no links or MR
  • basic client and high-level client inspired by the new java client
  • basic client is complete, high-level client in progress
  • C wrapper in progress
  • embedded deps (protobufs, boost::asio)
  • autotools build
  • needs WAY more tests

Minimal API documentation is available at Github.

Quick Start

make check
sudo make install


We encourage contributions from the community.

  1. Fork the riak-cxx-client repository on Github.
  2. Clone your fork or add the remote if you already have a clone of the repository.
git clone git@github.com:yourusername/riak-cxx-client.git
# or
git remote add mine git@github.com:yourusername/riak-cxx-client.git
  1. Create a topic branch for your change.
git checkout -b some-topic-branch
  1. Make your change and commit. Use a clear and descriptive commit message, spanning multiple lines if detailed explanation is needed.
  2. Push to your fork of the repository and then send a pull-request through Github.
git push mine some-topic-branch
  1. A Basho engineer or community maintainer will review your patch and merge it into the main repository or send you feedback.