Skip to content

fenek/riak-c-driver

Repository files navigation

----------------------------------------------
		riak-c-driver
		 v0.02a alpha

by Piotr Nosek, Erlang Solutions Ltd.
----------------------------------------------

--- TABLE OF CONTENTS ---

1. Overview
2. Requirements
3. Installation
4. Usage
5. TODO list
6. Buglist
7. Version history
8. Links and references

--- 1. Overview ---
Riak[1] is a No-SQL database, which emphasizes on replication and data distribution. This driver/library provides means to communicate with Riak instances using cURL[2] and Protocol Buffers[3][4]. In fisrt case, it works as cURL wrapper and HTTP response parser. In second case, it communicates via TCP socket. Originally this library was created during attempts of benchmarking Riak in comaprison to MongoDB[5] and MySQL[6] and it was decided that it deserves being a separate project. ;)
Right now this driver provides very limited functionality, but it's definitely something to start with.

--- 2. Requirements ---
Dependencies for this project: (header files required for compilation)
- cURL
- Protocol Buffers
- Protocol Buffers for C
- json-c[7]

C standard library is also required. Library was tested with gcc but it should work fine with other C compilers.

--- 3. Installation ---

First make sure you have installed all dependencies.

Then just type
$ make
and then (as superuser)
# make install

This will create dynamic-linked library libriakdrv.so and copy it to PREFIX/lib (default PREFIX: /usr/local). Additionaly riakdrv.h header file will be copied to PREFIX/include.

If you want to uninstall the library, use
# make uninstall
This will erase both .so and .h file.

If you want to compile test application (which can also suit as an example how to use the driver), type
$ make test

--- 4. Usage ---

To use the library, just include riakdrv.h header file and add -lriakdrv to your linker parameters.

For detailed documentation check doc/ directory.

--- 5. TODO list ---
- rewrite remaining possible functions from cURL to Protocol Buffers 
- getting JSON from DB by key
- logging
- tests

- aided MapReduce statement creation?

--- 6. Buglist ---
Probably too many to list. :) It's very alpha version though...

--- 7. Version history ---

==> v0.022 alpha <==
- by [wjlroe]: improved makefile, some cosmetic changes to git ignore etc.

==> v0.021 alpha <==
- putting data ported to Protocol Buffers
- executing MapReduce ported to Protocol Buffers

==> v0.02a alpha <==
- filled most of documentation
- introduced error reporting

==> v0.02 alpha <==
- multiple connection support - but not tested yet
- began porting most functionality to Protocol Buffers
- now Riak can be pinged
- fetching list of buckets
- started creating documentation in Doxygen
- added very simple testing application

==> v0.01 alpha <==
- opening/closing "connection"
- no multiple "connections" support
- putting JSON data into DB
- getting JSON data from DB with MapReduce
- getting raw data from DB with RiakSearch

--- 8. Links and references ---
[1] http://wiki.basho.com
[2] http://curl.haxx.se
[3] http://code.google.com/p/protobuf/
[4] http://code.google.com/p/protobuf-c/
[5] http://www.mongodb.org
[6] http://www.mysql.com
[7] http://oss.metaparadigm.com/json-c/

About

C client for Riak - NoSQL database

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published