Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

An Open Source Implementation of the Actor Model in C++

License

NotificationsYou must be signed in to change notification settings

actor-framework/actor-framework

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

GitterDocumentation StatusCoverage

What is CAF?

CAF is an open source framework that offers a programming environment based ontheActor Model of computationcombined with ascalable,nativeruntime environment that lets you build applications at a high level ofabstraction without sacrificing performance. Whether you are targeting a singlemachine, a data center, or the cloud, CAF provides the necessary tools toimplement robust, scalable, and maintainable software.

CAF features lightweight & fast actor implementations, data flows, HTTP andWebSocket support, pattern matching for messages, metrics, distributed actors,and more. Professional support, training, and consulting are available fromInterance, the company behind CAF.

Online Resources

Report Bugs and Get Help

Community

Get CAF

We do not officially maintain packages for CAF. However, some of our communitymembers made packages available for these package managers:

Get the Sources

git clone https://github.com/actor-framework/actor-framework.gitcd actor-framework

Build CAF from Source

CAF usesCMake as its build system of choice. To makebuilding CAF more convenient from the command line, we provide aconfigurescript that wraps the CMake invocation. The script only works on UNIX systems.On Windows, we recommend generating an MSVC project file via CMake for nativebuilds.

Using theconfigure Script

The script is a convenient frontend forCMake. Seeconfigure -h for a listof available options. By default, the script creates abuild directory andasks CMake to generate aMakefile. A build with default settings generallyfollows these steps:

./configurecd buildmakemaketest [optional]make install [as root, optional]

Using CMake

To generate a Makefile for building CAF with default settings, either use aCMake GUI or perform this step on the command line:

cmake -S<path-to-caf-sources> -B build

After this step,cmake -LH prints the most useful configuration options forCAF, their default value, and a helptext.

Other CMake projects can add CAF as a dependency by usingfind_package andlisting the required modules (e.g.,core ornet) . When installing CAF to anon-standard location, setCAF_ROOT prior to callingfind_package.

Dependencies

  • CMake (for building CAF)
  • OpenSSL (when building theopenssl ornet module)

Supported Platforms

C++ is an evolving language. Compiler vendors constantly add more language andstandard library features. Since CAF runs on many platforms, this means we needa policy that on the one hand ensures that we only use a widely supported subsetof C++ and on the other hand that we naturally progress with the shiftinglandscape to eventually catch up to more recent C++ additions (in order to not"get stuck").

So instead of singling out individual compiler versions, we build CAF for eachcommit on all platforms that we currently deem relevant. Everything that passesour CI is "fair game".

Our CI covers Windows (latest MSVC release), macOS (latest Xcode release),FreeBSD (latest) and several Linux distributions (via the Docker images foundhere). ForLinux, we aim to support the current releases (that still receive activesupport) for the major distributions. Note that we do not build on Linuxdistributions with rolling releases, because they generally provide more recentbuild tools than distributions with traditional release schedules and thus wouldonly add redundancy.

Build Documentation Locally

  • Building an offline version of the manual requiresSphinx:
    cd manualsphinx-build. html
  • Building an offline version of the API reference documentation requiresDoxygen (simply run thedoxygen command at theroot directory of the repository).

Scientific Use

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 athttp://dx.doi.org/10.1145/2541329.2541336 andhttp://dx.doi.org/10.1016/j.cl.2016.01.002.

About

An Open Source Implementation of the Actor Model in C++

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

No packages published

Contributors74


[8]ページ先頭

©2009-2025 Movatter.jp