CAF_C++ Actor Framework

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


A solid software platform.


Actors in CAF are lightweight, consist of only a few hundred bytes, and are cooperatively managed by a state-of-the-art, work-stealing scheduler. You can spawn literally millions of actors if you want to.


Message passing is network transparent. Actors can talk to each other, no matter where they've been spawned. You do the hard part of implementing your app, CAF is taking care of the low-level side of things.


Sick and tired of cumbersome APIs that make trivial tasks complex? CAF has internalized Alan Kays philosophy: "Simple things should be simple, complex things should be possible." This is our API principle.


CAF allows you to transparently connect actors running on different machines and OSes via the network. It integrates multiple computing devices such as multi-core CPUs, GPGPUs, and even embedded hardware. You can also create message passing interface for your OpenCL backends.


We provide a mailbox that is unique and lockfree. Only a single CAS operation is necessary for enqueue and dequeue operations. Our mailbox has complexity of O(1) for enqueue operations, while the dequeue operation has an average runtime of O(1).


Tailor CAF to your needs.

GPGPU Computing

To make use of the power which modern GPU cards have to offer, we provide an OpenCL binding for CAF. Once you've written your OpenCL kernel, CAF creates an actor running it. Ingegrate OpenCL actors into existing apps.


Debug Your Actors

Debugging and tweaking distributed applications is hard. Even with actors. We are working on an interactive shell that will allow you to track down issues and performance bottlenecks during runtime. Monitoring actors becomes easy. Stay tuned.


Actors in the IoT

The Internet of Things (IoT) runs on constrained devices with very low CPU and memory resources (KB instead of GB). We are working hard to port CAF to embedded platforms, so that your job becomes easier.



Join us as developer or user.

Mailing List

We listen to you. The mailing list is the best place to get in contact with the developer community. Ask your questions or announce your own project that is based on the C++ Actor Framework via


We share our work. CAF is a community project and open source software. We host our source code on GitHub. Checkout the code from or download the latest releases of CAF components.

Developer Blog

We continuously improve CAF. The developer blog reports in detail about on-going work. It discusses programming features, includes code snippets, and presents latest performance analysis.


We believe in a painless start. The user manual of the CAF core library gives detailed background about features and concepts. Full API doc is available as well. For more details we refer to the dedicated wikis on GitHub.

Issue Tracker

We produce good code but accidents happen. Either you found a bug or you want to contribute to CAF by fixing open issues, check the issue tracker.


We spread the word. Follow our news on Twitter. When you tweet about CAF, ensure to include @actor_framework.


If you are writing a paper that refers to the C++ Actor Framework, please cite CAF as follows:

Dominik Charousset, Thomas C. Schmidt, Raphael Hiesgen, CAF - The C++ Actor Framework for Scalable and Resource-efficient Applications, In: Proc. of the 5th ACM SIGPLAN Conf. on Systems Programming and Applications (SPLASH '14) Workshop AGERE!, New York, NY, USA:ACM, Oct. 2014.


Dedicated to actors in C++.

History | continuous development

The C++ Actor Framework started with its core library in 2011. During this time, the project was called libcppa. After three years of continuous improvements, not only the community around this C++ Actor library grew but also scenarios in addition to common data center applications (e.g., IoT), and tools to ease Actor development have been supported.

In 2014, we decided for re-branding to reflect the wider scope of this open source software. The new name is C++ Actor Framework, or short CAF.

License | flexible usage in different contexts

The C++ Actor Framework is free software. You can redistribute it and/or modify. Software developed by the CAF community is licensed under BSD and the Boost License. Both licenses allow easy redistribution or modification of the software in private, research, and industry deployment.

Contact | personal questions

Many people work on CAF. Public questions regarding the development with or the development for the C++ Actor Framework should be directed to the CAF developer mailing list. For questions related to formal project establishment or collaboration, you can contact Dominik Charousset and Thomas Schmidt.