Pre-requisites

To build RTIMDB, you need each of the following:

RTIMDB uses no external libraries.

Build procedure

For any build, we recommend building out-of-tree (it makes it easier to distinguish generated files from non-generated files, and thus makes version control that much easier).

In the following, a $ indicates a non-privileged user command-line command on a shell such as Bash. If you're working on a Windows system, these should still work but there are usually GUI equivalents - which will be indicated.

Get the source

The Open Source, Apache-licensed version of RTIMDB is available on GitHub. We recommend using a tagged version as they've been most thoroughly tested, but the master branch will usually compile and run without problems as well.

On Linux:

$ git clone https://github.com/VlinderSoftware/rtimdb.git
... clones into rtimdb directory
$ cd rtimdb
$ git checkout -b <name of your project> <tag-name>

On Windows:

GitHub has a GUI client that you can use to clone the repository directly from the site. Otherwise, you can also download a zip archive of the latest version, or of any version you want.

Configuring the build

On Linux

$ mkdir .build
$ cd .build
$ ccmake ..

This will start a Curses interface for CMake, which will allow you to configure the settings you want.

On Windows

We recommend using cmake-gui, which comes with the CMake package.

The configuration options

By default, the project will build several different configurations of the database, with various flags set or cleared, both for testing and demonstration purposes. The first version it will build will be called rtimdb and will have the configuration you give it; the other versions will have default configurations with some tweaks (with and without exception support, for example).

The things you can configure are:

The memory footprint of the database in the device depends entirely on the points count, the number of concurrent transactions that can take place an the sizes and number of the different queues. The best values for these settings depend heavily on your specific application.

Building

Depending on the settings you choose, some of the unit tests may not compile with your configuration: there are static assertions in the unit tests to verify that certain assumptions regarding the sizes of the queues hold (for tests that test queue overflow conditions, for example). This is not a problem per se: it just means that if you want to test these conditions, you may have to tweak the test cases a bit for the parameters you choose. Feel free to contact us if you need any help (the static assertion message contains the appropriate E-mail address to use).

On Linux

$ make

To run the unit tests:

$ make test

On Windows

The CMake process will have created a .sln file. Open in and hit Build (usually F7 or Ctrl-Shift-B).

To run the unit tests, build the RUN_TESTS target.