ZIO Installation

Table of Contents

1 Install ZIO

ZIO installs in the usual Waf way.

$ ./waf configure --prefix=/path/to/install
$ ./waf install

To build, these software dependencies will be located via pkg-config.

In addition, ZIO uses cppzmq and nlohmann/json and directly includes copies of these header-only packages.

See also 5 for info on installing the software dependencies.

2 Tests

The default install target will compile and execute units tests. To avoid running these tests you may add --notests as:

$ ./waf install --notests

Or, to force their running:

3 Documentation

The generated documentation committed to the repository. With a suitable environment (need Emacs and a recent plantuml) one can rebuild it:

$ cd docs
$ make

4 Python

ZIO also provides a Python package.

4.1 Install from source

The ZIO Python package installs in "the usual way" from source but its dependencies need some particular care. ZIO makes use of PyZMQ, the Python bindings to libzmq and because ZIO requires ZeroMQ "draft" sockets, PyZMQ needs to be installed manually in order to enable them as well as point to an installation of libzmq which includes them.

$ python3 -m venv /path/to/venv
$ source /path/to/venv/bin/activate
$ cd zio/python
$ pip install --pre pyzmq \
    --install-option=--enable-drafts \
$ pip install -r requirements.txt
$ pip install [-e] .

In the above, replace /path/to with paths suitable for your environment. Use -e option to do in-place development on the zio Python module.

The zio Python module has unit tests which can be run as:

$ cd zio/python/tests
$ python -m unittest 

4.2 Python Package Index

At some point ZIO may be placed in PyPI. Currently there is an unsurprising name conflict with "ZIO". For now, just know that the four year untouched package currently holding the name ZIO is totally unrelated to this here project.

5 Installation Details

5.1 spdlog

For now, ZIO uses spdlog after (and not including) version 1.5.0 which may mean installing from tip of its git master branch. ZIO will likely switch to the next explicit release post-1.5.0 when it is available.

$ git clone https://github.com/gabime/spdlog.git
$ mkdir spdlog/build && cd spdlog/build
$ cmake .. \
$ make -j
$ make install

For ZIO to find spdlog be sure that you add its pkg-config directory to the proper variable (along with others). Eg:

$ export PKG_CONFIG_PATH=$HOME/opt/spdlog/lib/pkgconfig:$HOME/opt/zmq/lib/pkgconfig