MESSAGE-PASS(1p)

πŸ“¦
version 0.117 Β· 2 versions
, in debian bookworm, debian trixie, ubuntu jammy, ubuntu noble, ubuntu resolute

πŸ’– message-pass β€” the it-girl of Message::Passing πŸ’–

okay so bestie, welcome to MESSAGE-PASS(1p), part of the User Contributed Perl Documentation family. This is the command line runner script for Message::Passing, and honestly? It's giving pipeline realness. Let's get into it. πŸ¦‹


✨ SYNOPSIS ✨

Like, the whole entire vibe:

message-pass [options]

Options:
 --input           - Input short name (required)
 --output          - Output short name (required)
 --filter          - Filter short name (default Null)
 --decoder         - Decoder short name (default JSON)
 --encoder         - Encoder short name (default JSON)
 --input_options   - JSON options string for input
 --output_options  - JSON options string for output
 --filter_options  - JSON options string for filter
 --decoder_options - JSON options string for decoder
 --encoder_options - JSON options string for encoder

OR, if you're feeling extra (config-file girlie):

 --configfile     - Config file (to load with Config::Any)
                    supplying the above options

🌸 DESCRIPTION 🌸

So what it does is build you a lil chain of Message::Passing components, and the chain looks exactly like this:

Input => Decoder => Filter => Encoder => Output

Which means: you take a message in from one protocol, decode it, process it, and then push it back out again β€” but encoded. Full glow-up, in and out. πŸ’…

The simplest example ever, the one that just works:

message-pass --input STDIN --output STDOUT

and bestie, it will literally echo the JSON strings you type right back at the terminal. iconic behaviour, no notes.


πŸŽ€ CLASS NAME EXPANSION πŸŽ€

Okay so here's the tea: every short class name gets expanded, and the expansions are listed below. EXCEPT for names prefixed with a '+' β€” that little plus means you're handing over a full class name, no expansion, done, periodt.

E.g.

message-pass --input '+My::Example::Input' --output STDOUT

And the expansions, bestie:

  • input β€” becomes Message::Passing::Input::XXX
  • output β€” becomes Message::Passing::Output::XXX
  • filter β€” becomes Message::Passing::Filter::XXX
  • encoder β€” becomes Message::Passing::Filter::Encoder::XXX
  • decoder β€” becomes Message::Passing::Filter::Decoder::XXX

🧚 CONFIG FILE 🧚

If you pass the --configfile option, then a config file gets used. That's the whole thing. πŸ’œ

The format of the data in that config file matches what the command line options want, e.g.

{
    "input":"XXX",
    "input_options":{},
    "output":"XXX",
    "output_options":{},
    "filter":"XXX",
    "filter_options":{},
    "encoder":"XXX",
    "encoder_options":{},
    "decoder":"XXX",
    "decoder_options":{}
}

Any config format that Config::Any supports? Slay, go off. BUT β€” and this is the important part β€” JSON is the only format which is certain to work without additional dependencies which are not required by this module. So if you don't wanna install extra stuff, stay in your JSON lane. πŸ“


πŸ”₯ SEE ALSO πŸ”₯

  • Message::Passing
  • Message::Passing::Manual

πŸ‘‘ SPONSORSHIP πŸ‘‘

This module exists because of the wonderful people at Suretec Systems Ltd. <http://www.suretecsystems.com/> who sponsored its development for its VoIP division called SureVoIP <http://www.surevoip.co.uk/> for use with the SureVoIP API β€” <http://www.surevoip.co.uk/support/wiki/api_documentation>

shoutout to the sponsors fr fr, they ate 🫢


See Message::Passing.


and that's the whole page bestie!! this lil manual is from perl v5.32.1, dated 2021-11-09, and it lives under the MESSAGE-PASS(1p) header in the User Contributed Perl Documentation. mwah πŸ’‹ go build a pipeline, you got this βœ¨πŸ¦‹