Skip to content

Install

Dependencies

1) C++11 Compiler (for C++ or Python users)

Reelay requires a C++ compiler compliant with C++11 standard. Today all major compiler frameworks already provide full C++11 support. We mainly use gcc and sometimes clang for additional analyses (e.g. extra warnings).

2) Boost C++ Libraries (for C++ or Python users)

Reelay requires Boost C++ libraries at several places. In particular, we heavily use Boost Interval Container Library (ICL) inside timed monitors. Below is a list of how to install Boost for several environments:

For Debian/Ubuntu:

apt install -y libboost-all-dev

For CentOS/Fedora:

yum install -y boost-devel

For Arch/Manjaro:

pacman -S boost

For MacOS (assuming homebrew installed):

brew install boost

Note that we mainly develop Reelay on Ubuntu 20.04 therefore it's the most tested environment among these environments. For Windows machines, we suggest installing Reelay on Ubuntu on Windows Subsystem for Linux (WSL).

3) CUDD Library (only for C++ users)

Reelay data monitors additionally require CUDD binary decision diagram (BDD) library. If CUDD library is not installed on your system, please see the next section how to build CUDD from the source.

4) Pybind11 (only for Python users)

To use Reelay in Python, we additionaly require the package pybind11 that provides seamless operability between C++11 and Python.

python -m pip install pybind11

This command also install pybind11 package and required C++ header files such as pybind11/pybind11.h and pybind11/stl.h.

Install Reelay C++ Library

This section describe the installation steps on Ubuntu 18.04.

First, clone the reelay repository and its submodules using --recursive flag as follows:

git clone https://github.com/doganulus/reelay.git --recurse-submodules
cd reelay

Since reelay is a header-only library, you only need to copy the header files into your include directory using the command:

sudo make install

Finally you can build and install CUDD library by typing:

make cudd
sudo make cudd-install

These commands will build the shared library libcudd.so and place it under /usr/local/lib directory by default. Programs that use Reelay data monitors have to link this library at the compilation.

Install Reelay Python Package

A set of predefined Reelay monitors can be accessed from Python. The following command will install the reelay package in your Python environment:

python -m pip install reelay

The command above will install latest release of Reelay. Here python executable could be any python3 executable as Reelay is tested from 3.5 to the latest 3.8.

Alternatively you can install the development version of Reelay from the master branch directly.

python -m pip install git+https://github.com/doganulus/reelay.git

This command will build the extension module from the source therefore it may take longer to install. Finally Python installation handles the CUDD dependency automatically and you do not need to install CUDD if you are only interested in using Reelay from Python.