Home

Awesome

Hiactor

What is Hiactor

Hiactor is an open-source hierarchical actor framework for building high-performance,concurrent and scalable event-driven systems using C++. Hiactor features a light-weight and ease-of-use distributed implementation of the actor model with concepts like object, reference and future/promise. With Hiactor, developers familiar with single-server programming can experience a seamless transition to the distributed environments.

Building Hiactor

Requirements:

Hiactor has a dependency of Seastar. Before building Hiactor, update the project submodules and install dependencies for Seastar:

$ git submodule update --init --recursive
$ sudo ./seastar/seastar/install-dependencies.sh

Next, build Hiactor as follows:

$ mkdir build
$ cd build
$ cmake [OPTIONS] ..
$ make
$ make install

The following cmake options can be specified:

Seastar is embedded with add_subdirectory in hiactor, you can add cmake options of Seastar directly when configuring. Note that the apps, demos, docs and tests of Seastar are disabled in its embedding mode, besides, Seastar_CXX_DIALECT will be overridden by Hiactor_CXX_DIALECT and Seastar_DPDK will be overridden by Hiactor_DPDK.

An example cmake options:

$ cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DHiactor_CXX_DIALECT=gnu++17 \
    -DHiactor_TESTING=OFF -DSeastar_CXX_FLAGS="-DSEASTAR_DEFAULT_ALLOCATOR" ..

Getting started

Follow the tutorial to understand how to use Hiactor.