RethinkORM: Introduction

Build status - Master: Latest PyPI version Number of PyPI downloads

Build status - Dev:

RethinkORM is a small wrapper class to help make working with documents in RethinkDB easier, and in a more Pythonic way.

I recently found RethinkDB and was amazed at how easy everything seemed to be, however one thing that I’ve missed is how the data is just a Python List or Dict rather than a full wrapper class. So I figured a good way to learn the general use of the Python RethinkDB driver was to write a general wrapper class that functioned a bit like an ORM, providing some easier to work with data and objects.

Unittests are included, and the code should be PEP8 compliant. The tests are automatically ran each commit, thanks to and this documentation is kindly hosted and automatically rebuilt by

Gittip if you like the work I do and would consider a small donation to help fund me and this project:

A Few Minor Warnings

  1. I’m only a second year university student, and software isn’t even my major; I’m working towards an Electrical and Computer Engineering degree, so not only do I have limited time to keep this maintained, but I also probably won’t write the best code ever.
  2. This takes some influence from the Python Django RethinkDB ORM and other ORM systems, however I haven’t really followed a standard pattern for the interface for this module. If someone wants to make this more standardized feel free to, and just submit a pull request, I’ll look it over and probably will give it the go ahead. For more information see below.
  3. This is a very early release, things might break, and the code is honestly a little childish at best. In other words: It’ll hopefully get better, but it might be a little limited right now.


This package is kindly hosted on the Python Package Index making it as easy as a simple pip command to install.

pip install RethinkORM

Quick Start

There are currently two main modules to this package, Models and Collections.


The core of RethinkORM, models are the main unit of code you’ll probably be use from this package.


New in v0.2.0 are collections. These are containers for interacting with sets of documents. Collections provide an easy way to gather up just the documents you need, and have them automatically wrapped with the ORM RethinkModel object.

You can read more about collections here.


This project will try to follow the semantic versioning guide lines, as laid out here: SemVer, as best as possible.


All code for this can be found online at github. If something is broken, or a feature is missing, please submit a pull request or open an issue. Most things I probably won’t have time to get around to looking at too deeply, so if you want it fixed, a pull request is the way to go. Besides that, I’m releasing this under the GPLv3 License as found in the LICENSE.txt file. Enjoy!


Shout outs to these people for contributing to the project:

  1. scragg0x
  2. grieve
  3. justinrsmith

Table Of Contents

Next topic


This Page