SimDB
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
:
- Download the latest source files archive from the link above
- Extract the archive in your preferred directory
- 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
:
- Download the latest source files archive from the link above
- Extract the archive in your preferred directory
- 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.