Programming language: C++

C++ Actor Framework alternatives and similar libraries

Based on the "Asynchronous Event Loop" category

Do you think we are missing an alternative of C++ Actor Framework or a related project?

Add another 'Asynchronous Event Loop' Library


CAF: C++ Actor Framework

CAF is an open source C++11 actor model implementation featuring lightweight & fast actor implementations, pattern matching for messages, network transparent messaging, and more.

Gitter Jenkins Documentation Status Coverity In Progress

Online Resources

Report Bugs / Get Help



FreeBSD Ports

We maintain a port for CAF, which you can install as follows:

pkg install caf

Alternatively, you can go to /usr/ports/devel/caf and tweak a few configuration options before installing the port:

make config
make install clean


You can install the latest stable release with:

brew install caf

Alternatively, you can use the current development version by using:

brew install caf --HEAD


A Conan recipe for CAF along with pre-built libraries for most platforms are available at bincrafters/caf.

Get the Sources

Build CAF from Source

The easiest way to build CAF is to use the configure script. Other available options are using CMake directly or SNocs.

Using the configure Script

The script is a convenient frontend for CMake. See configure -h for a list of available options or read the online documentation.

make test
make install [as root, optional]

Using CMake

All available CMake variables are available online. CAF also can be included as CMake submodule or added as dependency to other CMake-based projects using the file cmake/FindCAF.cmake.

Using SNocs

A SNocs workspace is provided by GitHub user osblinnikov and documented online.


  • CMake
  • Pthread (until C++11 compilers support the new thread_local keyword)

Supported Compilers

  • GCC >= 4.8.3
  • Clang >= 3.2
  • MSVC >= 2015, update 3

Supported Operating Systems

  • Linux
  • Mac OS X
  • FreeBSD 10
  • Windows >= 7 (currently static builds only)

Optional Dependencies

  • Doxygen (for the doxygen target)
  • LaTeX (for the manual target)
  • Pandoc and Python with pandocfilters (for the rst target)

Scientific Use

If you use CAF in a scientific context, please use one of the following citations:

  author = {Dominik Charousset and Thomas C. Schmidt and Raphael Hiesgen and Matthias W{\"a}hlisch},
  title = {{Native Actors -- A Scalable Software Platform for Distributed, Heterogeneous Environments}},
  booktitle = {Proc. of the 4rd ACM SIGPLAN Conference on Systems, Programming, and Applications (SPLASH '13), Workshop AGERE!},
  pages = {87--96},
  month = {Oct.},
  year = {2013},
  publisher = {ACM},
  address = {New York, NY, USA}

  author = {Dominik Charousset and Raphael Hiesgen and Thomas C. Schmidt},
  title = {{Revisiting Actor Programming in C++}},
  journal = {Computer Languages, Systems \& Structures},
  volume = {45},
  year = {2016},
  month = "April",
  pages = {105--131},
  publisher = {Elsevier}

You can find the papers online at http://dx.doi.org/10.1145/2541329.2541336 and http://dx.doi.org/10.1016/j.cl.2016.01.002.