Version 3.5 Release

The production ready version 3.5 is now out of the oven.

During the last couple of months I have been working hard to bring the next level of document store, enabling developers to use the power and flexibility of document stores (JSON structures) directly from their favourite dev language to the database, but without losing the power of transactions and consistency.

This new version comes with a new Web Console, easier to access and use than the shell. Just start your server and go to http://localhost:8090 to use it, this supports DQL as explained in the docs and therefore you will feel like in home if you are coming from any SQL Background.

New improvements in the index implementation and look up algorithm provides faster results, the cursors also had a lot of changes.

New drivers on the way, currently the usual PHP, java, Python, C# and C++ drivers are regularly updated but also I am adding drivers on demand, please drop me an email at with your driver request and I will do my best to have it ready within a week.

What about the license? this is still the same, no changes here so you will be able to use it for free, in any commercial, private or open source solution. Do you need a special license? let me know at and I will be sure to provide you with something that works for your organisation requirements.

In summary I’m very proud of this new version, and I want to hear from you, let me know in which application you are using djondb and I will be happy to add your logo to our customer list, also referencing your web site.


Posted in Uncategorized

Version 0.33

A couple weeks ago I released the new version 0.33, this new version included a new implementation of the indexes, server-side cursors to improve speed of results, internal memory managers that speed up the process, workers that allows to control concurrent operations, new Windows Service, new Linux server daemon scripts, etc.

I’m really happy with this new version, is working with a very acceptable performance in the projects I’m using it.

The only thing that I stopped doing was working on the social medias, I relay on you to spread the word.

Thanks for supporting djondb.


Posted in Uncategorized

What are we working on?

At this moment we are working on the following ideas:

1. Cursors: The idea of returning the full result is causing performance problems, because most of the time the users does not want to use all the results and the time spend to send the whole set to the client is a killer, the first idea was to send the results asynchronous, but at the end the idea of having server side cursors works best, this is almost finished at this moment and hopefully you will see the changes in the following days in the development branch.
2. Installers and compilation: The change to use CMake instead of autotools on linux/mac and Visual Studio on Windows is working really nice, but the change required to remove the compilation of some drivers from the common scripts, now we are working to include all of these drivers compilation on the cmake files.
3. Service Script: A service script to boot up the server using the normal services on linux.
4. GoLang Driver: A new driver for GoLang

If you have any suggestions please put them on the github project and we’ll enqueue them based on priority and complexity.


Posted in Uncategorized, djondb development

Compile djondb on Mac OSX

This is a step by step process about “Compiling djondb on Mac”, this will cover all the steps, if you already have installed one of the tools (for example home brew) then you can skip the step and move to the next one.

If you have any trouble, please let us know in the comment section, this will be updated with any new release or change to the process.


The first step is to install the xcode and the xcode command line tools, this will allow you to compile, debug, etc. It’s a prerequisite for home brew and djondb. XCode and XCode command line tools can be downloaded from apple’s developer page.

The next step will install home brew, if you already have brew installed in your system please do: “brew doctor” to check that everything is ok.

Home brew

Some of the tools required by compilation scrips will be installed using Home brew, this is a very good installation manager for OSX. The full installation instructions are in the home brew page, basically it will lead you to execute:

ruby -e "$(curl -fsSL"

Once it’s installed please execute the command: brew doctor, which will check for anything that could be wrong on brew and fix the suggestions made by it.


Now with brew installed you could install some tools that will be used later:

brew install cmake
brew install git
brew install boost

Download the code

djondb source code is available at github, to download it just execute:

git clone
cd djondb
git checkout devel

This compilation process is available at the current development branch, later this will be transferred to the master branch.

Make dependencies

This step will take around 15 minutes, it will compile the djondb dependencies. These dependencies will be sit at third_party/libs and third_party/includes folders.

cd <djondb dir>/db
make dependencies

Building djondb

The final step will build djondb.

cd <djondb dir>/db
mkdir build
cd build
cmake ..
sudo make install

Ready, one final step and everything will be set.

Make data dir

the data folder is where djondb files will be created, so you will need to create it.

cd <djondb dir>/db/third_party
sudo sh

Done, you are ready to test, run or change the code of djondb.

Posted in djondb development

Creating a ToDo list with djondb, ASP.Net Web API and Knockout JS


In this post, we are going to create a sample ToDo list application using djondb, the enterprise class NoSQL database. The purpose of this article is to show how to use djondb in a Windows environment with .NET framework.

Setting up

First of all, install djondb, here is a video that shows how to do it:

Then, install install djondb’s C# driver for Windows. There is also a video for this:

Now we are running djondb in a Windows environment. Pretty simple.

Designing the application

We want to build a ToDo list. We want to:

  1. Add a task
  2. Retrieve all tasks
  3. Remove a task
  4. Complete a task from the ToDo list

We’ll create a web client using Twitter bootstrap and Knockout.js. We’ll create a REST services layer using ASP.Net Web API with .Net Framework 4.5. And, obvious, we’ll use djondb to store the tasks of the ToDo list.

The image below depicts the architecture of the application:

Read more ›

Posted in djondb application, NoSQL Samples Tagged with:

Creating a product catalog with djondb, PHP Restler and Backbone JS Part V – Adding new features


In our previous post, we created the user interface components of the application. In this post, we’ll make some changes at database level and we’ll see how our application is impacted due to these changes.

In a relational database world

Now, let’s say that we want to include a new product type in the catalog. Now we want to sell phones too. What should we do in our application to support that?

In a traditional relational database, may be we should create a new table Phone to store its properties such as Manufacturer and Capacity.

But, we don’t want to repeat common properties as Name, Price and Picture, so we better create a Product table to store those properties and make a relation to Book and Phone Tables:

Read more ›

Posted in djondb application, NoSQL Samples Tagged with:

Creating a product catalog with djondb, PHP Restler and Backbone JS Part IV – UI


In our previous post, we created the services layer of our application using PHP Restler. In this post, we’ll create the user interface components using backbone to consume the services we’ve created.

Creating Backbone models

First let’s create a file called models.js and define a model for a Product and for ProductCollection. Also, we’ll register here the REST URLs for each model.

This is the code for Backbone Product model:

window.Product = Backbone.Model.extend({

    urlRoot: "rest/products",
    idAttribute: "_id",

    defaults: {
        _id : null,
        prodtype: "",
        name: "",
        picture: null,
        author: "",
        price: "",
        releasedate: "",
        isbn: ""

And this is the code for Backbone ProductCollection model:

window.ProductCollection = Backbone.Collection.extend({
    model: Product,
    url: "rest/products"

Read more ›

Posted in djondb application, NoSQL Samples Tagged with:

Creating a product catalog with djondb, PHP Restler and Backbone JS Part III – Services layer


In our previous post, we installed djondb database and used the console for adding and retrieving products. In this post, we’ll create the services layer of our application using PHP Restler.

Installing PHP Driver for djondb

Download the djondb PHP driver from djondb downloads page: In this example we will use the 32-bit mac version of djondb’s PHP driver. Just open the mac zip file to extract its content (no matter where).

We’ll see the djonwrapper.php file and the modules folder with the file as shown in the following image:

Copy the file that is in the modules folder to this folder: /usr/lib/php/extensions/no-debug-non-zts-20090626/ as shown in the image below.

Read more ›

Posted in djondb application, NoSQL Samples Tagged with:

Creating a product catalog with djondb, PHP Restler and Backbone JS Part II – Setting up


In our previous post, we explained the design of the application with djondb. In this post, we’ll install djondb, the enterprise class NoSQL database and we’ll play around a little bit with the console.

Installing djondb

First of all, download and install djondb. You can get the djondb installer from djondb downloads page: In this example we will use the 32-bit mac version of djondb. Just open the mac package djondb_mac.pkg and follow the instructions of the installer.

Once the installer finishes, we need to create the var/djondb directory, just run the following command in a terminal window:

sudo mkdir /var/djondb
sudo chown ‘id -u’ /var/djondb

Now, let’s start djondb server. Just, type:

djondbd -n
INFO: djondbd version 0.120121010 is starting up.
INFO: Starting network service. port: 1243
INFO: DBController initializing. Data dir
INFO: Accepting new connections

Congratulations, you have djondb, the enterprise class NoSQL database, up and running!

Read more ›

Posted in djondb application, NoSQL Samples Tagged with:

Creating a product catalog with djondb, PHP Restler and Backbone JS Part I – NoSQL Concepts


In these series of posts, we’ll create a sample application using djondb database. You’ll see how easily is to create applications using a NoSQL database, especially with djondb, compared to a relational database.

In first part, we’ll start by designing our application and understanding the architecture.

In second part, we’ll install djondb and we’ll use the djondb console.

In third part, we’ll create the REST services that provide the business logic of our sample application.

In fourth part, we’ll create the client application the user will interact with.

And finally, in fifth part, we’ll add a new feature from database level and see how easy is to make this kind of changes using a NoSQL approach.

So, let’s get started…

Designing the application

The application we’ll create is a simple product catalog. The user will be able to:

  1. Browse available products
  2. See product details
  3. Add a new product to the catalog

We want to use a web browser to use the application, so the client will be an HTML, CSS and JavaScript application created with Twitter Bootstrap and Backbone.js.

Read more ›

Posted in djondb application, NoSQL Samples Tagged with: