1. Description
  2. Documentation
  3. Download
  4. Project compilation
  5. Library usage
  6. Code browser
  7. Doxygen

Description

SimDB is a client/server system designed to handle the input/output data of a generic application. The system defines an HTTP-like network protocol for the client/server communication. The name SimDB comes from the original conception of the system made by the CNR, the italian National Research Council, where it has been designed to simplify the execution of software used for scientific simulations.

This project is a cross-platform C++ implementation of a SimDB system. The main component of the project is a static library which implements the core of the protocol. There is also a complete multi-threaded server and a simple command-line client, both using the static library. The whole project is released under the MIT license and the git repository is hosted here.

Documentation

There are a number of concepts which are useful to know in order to understand how the SimDB system works and how to use it. You can find them in the definitions page.

The SimDB network protocol is documented in the protocol page.

Download

Latest version: simdb-2014.09.04.tar.gz

  • libsimdb: version 1.1
  • simdb-client: version 1.0.0
  • simdb-server: 1.0.0

Older versions are available here.

Project compilation

The project can be compiled using the CMake build system. There is also a legacy Makefile for both the POSIX and Win32 platforms. You choose posix.mk on Linux/Mac platforms and win32.mk on Windows platforms. The compilation instructions are the following.

CMake instructions

To compile the whole project using cmake:

  1. Download the latest source files archive from the link above
  2. Extract the archive in your preferred directory
  3. Open a terminal in the that directory and then:
$ mkdir build
$ cd build
$ cmake ..
$ make

You will find the compiled executables in the build/ directory.

Makefile instructions

To compile the project with the provided Makefile:

  1. Download the latest source files archive from the link above
  2. Extract the archive in your preferred directory
  3. Open a terminal in the src/ directory and then:

To compile the whole project:

$ make -f [posix.mk | win32.mk]

To compile only the static library:

$ make -f [posix.mk | win32.mk] lib

To compile the client (and the static library):

$ make -f [posix.mk | win32.mk] client

To compile the server (and the static library):

$ make -f [posix.mk | win32.mk] server

You will find the compiled executables respectively in the client/ and server/ directories.

To compile on Windows you need to install the MSYS terminal emulator (or equivalent), because the given Makefile uses the mkdir command. On Mac/OS X only the client is guaranteed to compile, because the server uses the clock_gettime() function which might be not available on OS X.

Library usage

The static library is very simple to use, once linked in the build system used by your C++ project. You just need to include one header file and to create a single object:

#include "simdb/Client.h"

int main(int argc, char **argv)
{
    simdb::Client client;
    client.listDss();
    ...
}

Code browser

If you want to browse the kronometer sources, you can do it here. Please refer to this blog post for more info about the Woboq Code Browser and its license.

Doxygen

Source code documentation is created using Doxygen and can be found here.