Wednesday, July 23, 2014

Version 0.10 released!

Version 0.10 of CAF: C++ Actor Framework has just been released. Wait, what? For those of you that aren't subscribed to the mailing list, here is the Mail I've posted earlier this day:

libcppa started in 2011 and it has been in constant development ever since. I think we can call this a success on its own and we see more and more applications using libcppa. We will announce the most exciting partners on our website soon, by the way.

To be quite frank, I did not expect the library to evolve that fast and with the recent additions to our team, I think it is a safe bet to say that the development will not slow down in the future. We are working on scaling the library down for embedded HW platforms and we are working on tools that make debugging and fine-tuning your applications easier. The project is about to become something bigger than "just" an actor library. Hence, we have decided to revamp libcppa and call the project:

CAF: C++ Actor Framework

We will move the GitHub repository to and restructure it. This mailing list will be renamed to and we will launch a new website. We have synchronized the release of the new repository with the release of version 0.10 of *libcaf*. The library has been modularized and you'll find libcaf_core and libcaf_io in the initial release of CAF. You can use libcaf_core if all you need is the concurrency abstraction of the library. The networking parts have been moved to libcaf_io. You will find "remote_actor" and "publish" there. The OpenCL part will be available as submodule soon. We go into more detail in a blog post covering the changes and you will find a migration guide in the manual.

Version 0.10, the new GitHub URL, and the new Google Group Name will go live *today*. 0.10 will have breaking changes. We tried to make migration less painful by still shipping the old cppa/cppa.hpp header, but there are breaking changes nonetheless. I am sorry that we break existing code again: twice in a row to be correct (0.9 had breaking changes, too). On the other hand, I think it really is worth it and we could get rid of some legacy code and inconsistencies that we don not want to maintain in the long run.

We sincerely hope that we can get a smooth transition. You *should* be forwarded to the repository URL automatically and still have it starred/watched/forked. The mailing list *should* keep you as member. However, please feel free to drop me a mail if something isn't working for you.

So, here it is, the first official release under the new name CAF. Once you've checked out the new release, you'll probably notice that things have changed quite a bit. The first thing you should do is to open the manual under manual/manual.pdf and scroll right to the end. You will find a migration guide from 0.9 to 0.10 on the last two pages.

To use the library, you can use the new CMake script under cmake/FindLibcaf.cmake. Usually, you want to have the two components "core" and "io": find_package(Libcaf COMPONENTS core io REQUIRED). These two libraries offer you the functionality you're used to from libcppa. Please note that the OpenCL component is not ready quite yet. Upon success, the script will set the two variables ${LIBCAF_LIBRARIES} and ${LIBCAF_INCLUDE_DIRS}.

By the way, CAF is released under both the BSD 3-Clause and the Boost License. You can use it under the terms of either of those licenses (your choice!).

From now on, you can visit us at:
... or go to our new project website:

As always, please don't hesitate to get in touch if you have any question.