1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187
|
# 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][gitter-badge]](https://gitter.im/actor-framework/chat)
[![Jenkins][jenkins-badge]](https://jenkins.inet.haw-hamburg.de/job/CAF/job/actor-framework/job/master)
[![Documentation Status][docs-badge]](http://actor-framework.readthedocs.io/en/latest/?badge=latest)
[![Coverity][coverity-badge]](https://scan.coverity.com/projects/5555)
## Online Resources
* __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
## Report Bugs / Get Help
* __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
## Community
* __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
## Get CAF
### FreeBSD Ports
We maintain a port for CAF, which you can install as follows:
```sh
pkg install caf
```
Alternatively, you can go to `/usr/ports/devel/caf` and tweak a few
configuration options before installing the port:
```sh
make config
make install clean
```
### Homebrew
You can install the latest stable release with:
```sh
brew install caf
```
Alternatively, you can use the current development version by using:
```sh
brew install caf --HEAD
```
### Conan
A [Conan](https://conan.io/) recipe for CAF along with pre-built libraries
for most platforms are available at [bincrafters/caf](https://bintray.com/bincrafters/public-conan/caf%3Abincrafters).
## Get the Sources
* git clone https://github.com/actor-framework/actor-framework.git
* cd actor-framework
## Build CAF from Source
The easiest way to build CAF is to use the `configure` script. Other available
options are using [CMake](http://www.cmake.org/) directly or
[SNocs](https://github.com/airutech/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](https://github.com/actor-framework/actor-framework/wiki/Configure-Options).
```sh
./configure
make
make test
make install [as root, optional]
```
### Using CMake
All available CMake variables are available
[online](https://github.com/actor-framework/actor-framework/wiki/CMake-Options).
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](https://github.com/osblinnikov) and documented
[online](https://github.com/actor-framework/actor-framework/wiki/Using-SNocs).
## Dependencies
* 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)
## Build the Manual
CAF uses [Sphinx](https://www.sphinx-doc.org):
```sh
cd manual
sphinx-build . html
```
## Scientific Use
If you use CAF in a scientific context, please use one of the following citations:
```latex
@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.
[obs]: https://software.opensuse.org/download.html?project=devel%3Alibraries%3Acaf&package=caf
[obs-nightly]: https://software.opensuse.org/download.html?project=devel%3Alibraries%3Acaf%3Anightly&package=caf
[obs-dev]: https://software.opensuse.org/download.html?project=devel%3Alibraries%3Acaf&package=caf-devel
[obs-dev-nightly]: https://software.opensuse.org/download.html?project=devel%3Alibraries%3Acaf%3Anightly&package=caf-devel
[jenkins-badge]: https://jenkins.inet.haw-hamburg.de/buildStatus/icon?job=CAF/actor-framework/master
[docs-badge]: https://readthedocs.org/projects/actor-framework/badge/?version=latest
[coverity-badge]: https://scan.coverity.com/projects/5555/badge.svg?flat=1
[gitter-badge]: https://img.shields.io/badge/gitter-join%20chat%20%E2%86%92-brightgreen.svg
|