Contents
Please note: this is a development README! None of this works yet. When we're done, this is what you will read to learn about and use this product :-)
Riak is a nosql database solution, built with Erlang and designed to duplicate the functionality of Amazon's Dynamo.
Riak has a pluggable backend for its core shard-partitioned storage, with the default storage backend being Bitcask. Riak also has built-in MapReduce with native support for both JavaScript (using the SpiderMonkey runtime) and Erlang, while supporting a variety of additional language drivers, including Python.
For a comparison of Riak with other nosql solutions, visit this page:
For a general nosql comparison, read this blog post:
In order to be used in Django-nonrel applications, this project is cenetered upon creating the necessary database adaptors for Django.
There is a development discussion Google group here for public participation of anyone interested in coding on the project:
django_riak_engine has the following dependencies:
- Python
- Riak
- Python drivers for Riak
- Django nonrel
- Django toolbox
- Django Riak engine
If you want to assist with developement of django_riak_engine or use the latest code we're working on, you can install from the sources. Once you have git installed, just do the following:
$ git clone git@github.com:oubiwann/django-riak-engine.git $ cd django-riak-engine $ make install
You can use the setuptools easy_install script to get django_riak_engine on
your system (add sudo
at beginning if not inside virtualenv):
$ easy_install django-riak-engine
You can manually download the source tarball from the Python Package Index by visiting the following URL:
http://pypi.python.org/pypi/django-riak-engine
You'll need to untar and gunzip the source, cd into the source directory, and then you can do the usual:
$ sudo python setup.py install
Once installed, you can test the source code by executing this in your local source tree:
$ make check
That will run the test suite and report on ther successes and/or failures.
Let's get started with a demo app:
$ django-admin.py startproject riakproj $ cd riakproj $ django-admin.py startapp riakapp
Configure the app to talk to a specific database in settings.py:
DATABASES = { 'default': { 'ENGINE': 'django_riak_engine.riak', 'NAME': 'mydatabase', 'USER': '', 'PASSWORD': '', 'HOST': 'localhost', 'PORT': '8091', 'SUPPORTS_TRANSACTIONS': False, }, }
Let's created a model:
from django.db import models class Article(models.Model): title = models.CharField(max_length = 64) content = models.TextField()
And a quick view that exercises it:
from django.http import HttpResponse from models import * def testview(request): article = Article(title = 'test title', content = 'test content') article.save() return HttpResponse("<h1>Saved!</h1>")
Now let's use the Django Riak API:
db.riakapp_article.find()
To get a list of all articles:
articles = Article.objects.all()
Get the base unit tests set up.
Everything.
All the implementation.
All the implementation.
- Initial release of django_riak_engine.