All Versions
Latest Version
Avg Release Cycle
46 days
Latest Release
1180 days ago

Changelog History
Page 1

  • v0.12 Changes

    December 08, 2020
    • [improvement] added std::thread backend (supervisor)
    • ๐Ÿ›  [bugfix] active timers, if any, are cancelled upon actor shutdown finish
    • ๐Ÿ›  [bugfix] supervisor shutdown message is lost in rare cases right after
      child actor start
    • [example] examples/thread/sha512.cpp (new)
    • ๐Ÿ“š [documentation] updated Event loops & platforms
    • ๐Ÿ“š [documentation] updated Patterns with Blocking I/O multiplexing
    • [deprecated] state_response_t, state_request_t will be removed in v0.13
  • v0.11 Changes

    November 20, 2020
    • [improvement] when supervisor shuts self down due to child init failure,
      the supervisor init error code is "failure escalation"
    • ๐Ÿ“š [documentation] updated Advanced examples,
    • ๐Ÿ›  [bugfix] when actor shuts self down all its timers are properly
    • ๐Ÿ›  [bugfix] in rare case supervisor starts, event if child failed to init
    • ๐Ÿ›  [bugfix] asio: more correct timers cancellation implementation
    • ๐Ÿ›  [bugfix] ev: more correct shutdown (avoid memory leaks in rare cases)
  • v0.10 Changes

    November 09, 2020
    • [improvement/breaking] Generic timers interface
    • ๐Ÿ‘ [improvement] Request cancellation support
    • [improvement] added make_response methods when message should be created, but
      send later delayed
    • ๐Ÿ”Œ [improvement] more debug information in message delivery plugin
    • ๐Ÿ“š [documentation] Integration with event loops
    • ๐Ÿ“š [documentation] Requests cancellation and timers are demonstrated in the
      ๐Ÿ“„ Advanced Examples section
    • [example] examples/boost-asio/ping-pong-timer.cpp (new)
    • โšก๏ธ [example] examples/boost-asio/beast-scrapper.cpp (updated)
    • ๐Ÿ›  [bugfix] avoid double configuration of a plugin in certain cases when interacting
      ๐Ÿ”Œ with resources plugin
    • ๐Ÿ›  [bugfix] more correct cmake installation (thanks to Jorge Lรณpez Tello, @LtdJorge)
  • v0.09 Changes

    October 03, 2020
    • ๐Ÿ“š [improvement] rewritten whole documentation
    • ๐Ÿ”Œ [improvement/breaking] plugin system where introduced for actors instead of
    • [improvement] actor_config_t was introduced, which now holds pointer to
      supervisor, init and shutdown timeouts
    • ๐Ÿ— [improvement] builder pattern was introduced to simplify actors construction
    • [breaking] supervisor_config_t was changed (inherited from actor_config_t)
    • [breaking] actor_base_t and supervisor_t constructors has changed - now
      appropriate config is taken as single parameter. All descendant classes should
      be changed
    • [breaking] if a custom config type is used for actors/supervisors, they
      should define config_t inside the class, and templated config_builder_t.
    • [breaking] supervisor in actor is now accessibe via pointer instead of
    • [bugfix] supervisor_ev_t not always correctly released EV-resources, which
      lead to leak
    • [bugfix] actor_base_t can be shutted down properly even if it did not
      started yet
  • v0.08 Changes

    April 12, 2020
    • ๐Ÿ›  [bugfix] message's arguments are more correctly forwarded
    • ๐Ÿ›  [bugfix] actor's arguments are more correctly forwarded in actor's
      creation inrotor::supervisor_t and rotor::asio::supervisor_asio_t
    • ๐Ÿ›  [bugfix] rotor::asio::forwarder_t now more correctly dispatches
      boost::asio events to actor methods; e.g. it works correctly now with
      async_accept method of socket_acceptor
  • v0.07 Changes

    April 02, 2020
    • [improvement] more modern cmake usage
  • v0.06 Changes

    November 09, 2019
    • [improvement] registy actor was added to allow via name/address runtime
      matching do services discovery
    • [improvement, breaking] minor changes in supervisor behavior: now it
      is considered initialied when all its children confirmed initialization
    • [improvement] supervisor_policy_t was introduced to control supervisor
      behavior on a child-actor startup failure
    • [example] examples/ev/pong-registry.cpp how to use registry
    • [doc] patterns/Registry was added
  • v0.05 Changes

    September 22, 2019
    • [improvement] response can be inherited from rotor::arc_base, to allow
      forwarding requests without copying it (i.e. just intrusive pointer is created)
    • [example] examples/boost-asio/beast-scrapper.cpp has been added; it
      ๐Ÿ‘ท demonstrates an app with pool of actor workers with request-response forwarding
  • v0.04 Changes

    September 13, 2019
    • ๐Ÿ‘ [improvement] the [request-response] approach is integrated to support basic
      [reliable] messaging: response notification failure will be delivered,
      if the expected response will not arrive in-time
    • ๐Ÿ‘ [improvement] lambda subscribiers are supported
    • [improvement] actor behavior has been introduced to offload actor's
    • [breaking] supervisor is constructed with help of supervisor_config_t,
      โฑ which contains shutdown timeout value
    • โฑ [breaking] supervisor does not spawns timeout timer for overall shutdown
      procedure, instead per-child timers are spawned. The root supervisor
      the same way monitors child-supervisor shut down
    • [breaking] supervisor create_actor method now takes child max
      init time value. If it does not confirm, the child actor will be asked
      for shut down.
    • โฑ [breaking] shutdown request sent to an child actor now timeout-tracked
      by supervisor. The message type has changed to message::shutdown_request_t
    • โฑ [breaking] init request sent to an child actor now timeout-tracked
      by supervisor. The message type has changed to message::init_request_t
    • [breaking] actor's state request message type now message::state_request_t,
      which follows the generic request/response pattern. The response type
      is now message::state_response_t.
    • [breaking] {asio, ev, ws} supervisor configs are renamed to have
      corresponding suffix.
  • v0.03 Changes

    August 24, 2019
    • [improvement] locality notion was introduced, which led to possibilty
      ๐Ÿ— to build superving trees, see [superving-trees]]
    • [breaking] the outbound field in rotor::supervisor_t was renamed just to queue
    • [breaking] rotor::address_t now contains const void* locality
    • [breaking] rotor::asio::supervisor_config_t now contains
      std::shared_ptr to strand, instead of creating private strand
      for each supervisor
    • [bugfix] redundant do_start() method in rotor::supervisor_t was
      โœ‚ removed, since supervisor now is able to start self after compliting
      ๐ŸŽ‰ initialization.
    • [bugfix] rotor::supervisor_t sends initialize_actor_t to self
      to advance own state to INITIALIZED via common actor mechanism,
      instead of changeing state directly on early initialization phase
    • ๐Ÿ›  [bugfix] rotor::asio::forwarder_t now more correctly dispatches
      boost::asio events to actor methods
    • [bugfix] rotor::ev::supervisor_ev_t properly handles refcounter