CAF is an open source C++11 actor model implementation featuring lightweight & fast actor implementations, pattern matching for messages, network transparent messaging, and more.
- Homepage: http://www.actor-framework.org
- Developer Blog: http://blog.actor-framework.org
- Doxygen: http://www.actor-framework.org/doc
- HTML Manual: https://actor-framework.readthedocs.io
- PDF Manual: http://www.actor-framework.org/pdf/manual.pdf
- Open Issues on GitHub: https://github.com/actor-framework/actor-framework/issues/new
- Ask Questions on StackOverflow: https://stackoverflow.com/questions/ask?tags=c%2b%2b-actor-framework
- Chat: https://gitter.im/actor-framework/chat
- Twitter: https://twitter.com/actor_framework
- User Mailing List: https://groups.google.com/d/forum/actor-framework
- Developer Mailing List: https://groups.google.com/d/forum/caf-devel
- Feature Proposals: https://github.com/actor-framework/evolution
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.
- git clone https://github.com/actor-framework/actor-framework.git
- cd actor-framework
The easiest way to build CAF is to use the configure
script. Other available
options are using CMake directly or
SNocs.
The script is a convenient frontend for CMake
. See configure -h
for a list of available options or read the
online documentation.
./configure
make
make test
make install [as root, optional]
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
.
A SNocs workspace is provided by GitHub user osblinnikov and documented online.
- CMake
- Pthread (until C++11 compilers support the new
thread_local
keyword)
- GCC >= 7
- Clang >= 4
- MSVC >= 2019
- Linux
- Mac OS X
- FreeBSD 10
- Windows >= 7 (currently static builds only)
- Doxygen (for the
doxygen
target) - LaTeX (for the
manual
target)
If you use CAF in a scientific context, please use one of the following citations:
@inproceedings{cshw-nassp-13,
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}
}
@article{chs-rapc-16,
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.