liuxw7 / reactor-cpp

A C++ framework for writing reactor programs

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

A Reactor-Oriented Programming Framework in C++

CI

While reactor-cpp can be used as a standalone framework, it is designed to work in conjunction with Lingua Franca, a polyglot metaprogramming language. Have a look at the Lingua Franca wiki to get an overview of the Reactor model. If you are working with AUTOSAR Adaptive Platform (AP), also have a look at the DEAR framework, which in conjunction with reactor-cpp allows to implement AP Services using the reactor model.

Build

mkdir build
cd build
cmake ..
make

The examples need to be built explicitly.

make examples

Alternatively take a look at the CONTRIBUTING.md for building with nix package manager.

Extras

reactor-cpp can be build with tracing support. This provides a powerful tool for analyzing and debugging reactor applications.

Contributing

For general guidelines about contributing, see CONTRIBUTING.md.

Documentation

A live version of the latest commit on master is automatically deployed and available online. For tests and other purposes, you can also build the documentation locally.

First doxygen needs to be installed. On Ubuntu or Debian, run:

sudo apt-get install doxygen

Further we need several python packages. Assuming that both python3 and pip3 are set up, run

pip3 --user install -r doc/requirements.txt

If python3 is the default on your system, run:

pip --user install -r doc/requirements.txt

Now we can build the documentation with:

make html

This will output the project documentaion in doc/build/html.

Publications

  • DATE'20: Christian Menard, AndrĂ©s Goens, Marten Lohstroh, Jeronimo Castrillon, Achieving Determinism in Adaptive AUTOSAR, Proceedings of the 2020 Design, Automation and Test in Europe Conference (DATE), EDA Consortium, Mar 2020.

Also see the Lingua Franca publications.

About

A C++ framework for writing reactor programs

License:ISC License


Languages

Language:C++ 85.6%Language:Nix 9.2%Language:Python 3.1%Language:CMake 2.0%Language:Shell 0.1%