The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

Changes for version 0.009

  • Add Message::Passing::Manual::Components.
  • Add SYNOPSIS to Message::Passing::Role::Filter.
  • Additional documentation in Message::Passing::Manual.
  • Refactor building connection managers so less duplicate code is needed in components.
  • Make STDIN input saner.
  • Add an 'error chain' concept, allowing components to have a way of reporting connection (or other) issues out of band with the message stream. This defaults to STDERR, however can be overridden per component, or for a whole chain.
  • Add error_log() function to the DSL for setting the error chain up for a whole chain.
  • Use the error chain in Message::Passing::Role::ConnectionManager to output errors when connections disconnect / timeout / reconnect.
  • Cleanups to Message::Passing::Input::FileTail to not leak processes and file handles if the instance of the Input class is destroyed.

Documentation

table of contents for Message::Passing documentation
Writing inputs, outputs and filters
The concepts behind the framework
command line Message::Passing runner script

Modules

a simple way of doing messaging.
An easy way to make chains of Message::Passing components.
Build a set of chains using symbolic names
Filter all messages out.
Delay messages for some time.
Encodes data structures as JSON for output
Filter a subset of messages out.
Filter no messages out.
Send a message stream to multiple outputs.
Output to call back into your code
output to an IO handle
/dev/null for messages
Output for use in unit tests
Role providing 'foo' and 'foo_options' attributes
A simple manager for inputs and outputs that need to make network connections.
Simple abstraction for filtering messages
Role for components which have a connection
A role for components which can report errors
Consumes messages
Handy role for building messaging scripts.

Provides

in lib/Message/Passing/Role/HasHostnameAndPort.pm
in lib/Message/Passing/Role/HasTimeoutAndReconnectAfter.pm
in lib/Message/Passing/Role/HasUsernameAndPassword.pm
in lib/Message/Passing/Types.pm