Be notified of new releases
Create your free GitHub account today to subscribe to this repository for new releases and build software alongside 28 million developers.Sign up
The first release under the new name libcaf is an overhaul of the entire library. Some classes have been renamed or relocated, others have been removed. The purpose of this refactoring was to make the library easier to grasp and to make its API more consistent. All classes now live in the namespace
caf and all headers have the top level folder caf instead of cppa. For example,
#include "cppa/actor.hpp" becomes
#include "caf/actor.hpp". Further, the convenience header to get all parts of the user API is now
"caf/all.hpp". The networking has been separated from the core library. To get the networking components, simply include
"caf/io/all.hpp" and use the namespace
Version 0.10 still includes the header
cppa/cppa.hpp to make the transition process for users easier and to not break existing code right away. The header defines the namespace
cppa as an alias for
caf. Furthermore, it provides implementations or type aliases for renamed or removed classes such as
cow_tuple. You won't get any warning about deprecated headers with 0.10. However, we will add this warnings in the next library version and remove deprecated code eventually.
Even when using the backwards compatibility header, the new library has breaking changes. For instance, guard expressions have been removed entirely. The reasoning behind this decision is that we already have projections to modify the outcome of a match. Guard expressions add little expressive power to the library but a whole lot of code that is hard to maintain in the long run due to its complexity. Using projections to not only perform type conversions but also to restrict values is the more natural choice.
Please visit the migration guide in the manual for a detailed list of changes.