CAF 0.14.1

CAF 0.14.1

测试已测试
语言编程语言 C++C++
许可证 Boost
发布日期最新发布2015年9月

Jung-gun Lim维护。



CAF 0.14.1

  • 作者
  • Dominik Charousset

CAF: C++ Actor框架

CAF是一个开源的C++11 actor模型实现,具有轻量级和快速的actor实现、消息的模式匹配、网络透明的消息传递等特性。

Jenkins Coverity

在线资源

获取CAF

Linux软件包

我们为几个Linux发行版提供了二进制软件包,使用openSUSE Build Service。请按照以下链接中的安装指南进行操作,或者访问我们的OBS项目主页:https://build.opensuse.org/package/show/devel:libraries:caf/caf

软件包 描述 链接
caf 仅二进制文件 稳定版 夜间版
caf-devel 二进制文件和头文件 稳定版 夜间版

FreeBSD端点

我们维护了一个用于CAF的端点,您可以使用以下方式安装:

pkg install caf

或者,您可以转到/usr/ports/devel/caf并修改一些配置选项,然后安装端点

make config
make install clean

Homebrew

您可以使用以下方法安装最新的稳定版:

brew install caf

或者,您可以使用开发分支,方法如下:

brew install caf --HEAD

Biicode

官方CAF通道发布于caf_bot/actor-framework,包括以下模块:

  • libcaf_core
  • libcaf_io
  • libcaf_riac
  • libcaf_opencl (取决于OpenCL,它不包括在CAF中)

注意:您不需要在您的机器上安装CAF。Biicode将在构建过程中自动为您安装。有关更多信息,请访问此bii指南

要在您的项目中使用actor-framework,请按以下方式引用头文件:#include "caf_bot/actor-framework/libcaf_core/caf/all.hpp"。然后运行bii find来解析和下载文件,并运行bii build来编译您的代码。

为了避免在包含文件中指定块名,请将以下内容添加到您的bii.conf文件中,以让Biicode将所有#include "caf/*.hpp"关联到actor-framework块

[includes]
  caf/riac/*.hpp : caf_bot/actor-framework/libcaf_riac
  caf/opencl/*.hpp : caf_bot/actor-framework/libcaf_opencl
  caf/io/*.hpp : caf_bot/actor-framework/libcaf_io
  caf/*.hpp : caf_bot/actor-framework/libcaf_core

获取源代码

从源代码构建CAF

构建CAF最简单的方法是使用configure脚本。其他可用的选项是直接使用CMakeSNocs

使用configure脚本

该脚本是CMake的一个方便的前端。查看configure -h以获取可用选项的列表或阅读在线文档

./configure
make
make test
make install [as root, optional]

使用CMake

所有可用的CMake变量均可在在线找到。CAF还可以作为CMake子模块包含或通过使用文件cmake/FindCAF.cmake将其作为依赖项添加到其他基于CMake的项目中。

使用SNocs

由GitHub用户osblinnikov提供的SNocs工作区,并已在在线中进行了说明。

依赖项

  • CMake
  • Pthread(直到C++11编译器支持新的thread_local关键字)

支持的编译器

  • GCC >= 4.8
  • Clang >= 3.2

支持的操作系统

  • Linux
  • Mac OS X
  • FreeBSD 10
  • 针对MS Windows的说明:CAF依赖于C++11功能,例如变长模板和无限制的联合体。一旦Microsoft的编译器实现了所有必需的C++11功能,我们就会支持Visual Studio。在此期间,您可以使用MinGW使用CAF。

科学用途

如果您在科学环境中使用CAF,请使用以下引用

@inproceedings{chs-ccafs-14,
  author = {Dominik Charousset and Raphael Hiesgen and Thomas C. Schmidt},
  title = {{CAF - The C++ Actor Framework for Scalable and Resource-efficient Applications}},
  booktitle = {Proc. of the 5th ACM SIGPLAN Conf. on Systems, Programming, and Applications (SPLASH '14), Workshop AGERE!},
  month = {Oct.},
  year = {2014},
  publisher = {ACM},
  address = {New York, NY, USA},
  location = {Portland, OR},
}

您可以在http://dx.doi.org/10.1145/2687357.2687363上找到这篇论文