Version 0.18.0-rc.1 Released!
Today, we are more than happy to announce the first pre-release of CAF 0.18!
As outlined in our previous
post, this is the
first time since the inception of CAF that we raise the required C++ standard
version. We took this opportunity to modernize many, many aspects of CAF. This
includes the build system, which now requires CMake in version ≥ 3.4. Please
take a look at the available build options in CMake directly.
The most notable changes with this release are:
- The type inspection API received a complete overhaul. Please refer to the
updated manual section for the new DSL. One of the upsides of the new
inspection API is to enable the configuration framework to pick up
user-defined types. So once you provide an
inspect overload, you can read
your types directly from a CAF configuration. This also enables more formats
such as JSON and XML, although we currently ship no default serializers for
- All types that the application sends in a CAF message now require a type ID.
This is also a breaking change. The API for assigning type IDs is an optional
part of the API since version 0.17.5, but became mandatory with this release.
The new type IDs require more boilerplate code than before, but they enable
improved compile-time checks and faster serialization/deserialization.
- CAF now ships with an API for runtime metrics that applications can export
directly to Prometheus. Have a look at the brand new
manual section covering this feature!
- The library now compiles with default visibility hidden on all platforms and
we finally support generating shared libraries on Windows (i.e., building
For the full list of changes, please head over to the
or take a look at our
We encourage everyone to try the new release and look forward to any feedback
(bug reports in particular). After publishing a pre-release, we no longer make
changes to the API except for bugs that we cannot fix otherwise.