C++ Actor Framework v0.17.0 Release Notes

Release Date: 2019-07-27 // over 4 years ago
    • Parallelize deserialization of messages received over the network (#821).
      Moving the deserialization out of the I/O loop significantly increases
      ๐ŸŽ performance. In our benchmark, CAF now handles twice as many messages per
      second.
    • โž• Add marker to make categories optional on the CLI: Categories are great at
      organizing program options. However, on the CLI they get in the way quickly.
      This change allows developers to prefix category names with ? to make it
      optional on the CLI.
    • ๐Ÿ›  Fix performance of thread-safe actor clock (#849). This clock type is used
      whenever sending requests, delayed messages, receive timeouts etc. CAF can
      ๐Ÿ– handle about 10x more timeouts per second after the patch.
    • ๐Ÿ˜Œ Relax ini syntax for maps by making = for defining maps and , for
      separating key-value pairs optional. For example, this change allows to
      rewrite an entry like this:

      logger = { console-verbosity='trace', console='colored'}

    to a slightly less noisy version such as this:

    logger { console-verbosity='trace'console='colored'}
    
    • ๐Ÿ‘ Allow apps to always use the caf::logger, whether or not CAF was compiled
      ๐ŸŒฒ with logging enabled.
    • ๐Ÿ›  Fix over- and underflow checks in number parser (#852).
    • ๐Ÿ›  Fix multicast address detection in caf::ipv4_address.cpp (#853).
    • ๐Ÿ›  Fix disconnect issue / WSAGetLastError usage on Windows (#846).
    • ๐Ÿ›  Fix --config-file option (#841).
    • ๐Ÿ›  Fix parsing of CLI arguments for strings and atom values.
    • โž• Add conversion from nullptr to intrusive and COW pointer types.
    • ๐Ÿ‘ Streamline direct node-to-node communication and support multiple app
      identifiers.
    • Reimplement binary_serializer and binary_deserializer without STL-style
      ๐ŸŽ stream buffers for better performance.
    • ๐Ÿ‘Œ Support move-only behavior functions.
    • ๐Ÿ‘ Allow users to omit global in config files.
    • ๐Ÿ‘ Allow IPO on GCC/Clang (#824).