Ryu::Async - use Ryu with IO::Async
#!/usr/bin/env perl use strict; use warnings; use IO::Async::Loop; use Ryu::Async; use Log::Any::Adapter qw(Stdout), log_level => 'trace'; my $loop = IO::Async::Loop->new; $loop->add( my $ryu = Ryu::Async->new ); { my $timer = $ryu->timer( interval => 0.10, )->take(10) ->each(sub { print "tick\n" }); warn $timer->describe; $timer->get; }
This is an IO::Async::Notifier subclass for interacting with Ryu.
Creates a new Ryu::Source from a thing.
The exact details of this are likely to change in future, but a few things that are expected to work:
$ryu->from($io_async_stream_instance) ->by_line ->each(sub { print "Line: $_\n" }); $ryu->from([1..1000]) ->sum ->each(sub { print "Total was $_\n" });
Create a new Ryu::Source from an IO::Async::Stream instance.
Note that a stream which is not already attached to an IO::Async::Notifier will be added as a child of this instance.
Create a new Ryu::Source that wraps STDIN.
As with other IO::Async::Stream wrappers, this will emit data as soon as it's available, as raw bytes.
Use "by_line" in Ryu::Source and "decode" in Ryu::Source to split into lines and/or decode from UTF-8.
Returns a new Ryu::Sink that wraps STDOUT.
Provides a Ryu::Source which emits an empty string at selected intervals.
Takes the following named parameters:
interval - how often to trigger the timer, in seconds (fractional values allowed)
reschedule - type of rescheduling to use, can be soft, hard or drift as documented in IO::Async::Timer::Periodic
soft
hard
drift
Example:
$ryu->timer(interval => 1, reschedule => 'hard') ->combine_latest(...)
Creates an IO::Async::Process.
Returns a new Ryu::Source instance.
Creates a new UDP client.
This will return a Ryu::Async::Connection instance, which provides a sink for outgoing packets, and a source for incoming responses.
Returns a new Ryu::Sink.
The label will default to the calling package/class and method, with some truncation rules:
A Net::Async:: prefix will be replaced by Na.
Net::Async::
Na
A Web::Async:: prefix will be replaced by Wa.
Web::Async::
Wa
A IO::Async:: prefix will be replaced by Ia.
IO::Async::
Ia
A Tickit::Async:: prefix will be replaced by Ta.
Tickit::Async::
Ta
A Tickit::Widget:: prefix will be replaced by TW.
Tickit::Widget::
TW
This list of truncations is subject to change, so please don't rely on any of these in string matches or similar - better to set your own label if you need consistency.
Ryu
IO::Async
Tom Molesworth <TEAM@cpan.org>
Copyright Tom Molesworth 2011-2017. Licensed under the same terms as Perl itself.
To install Ryu::Async, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Ryu::Async
CPAN shell
perl -MCPAN -e shell install Ryu::Async
For more information on module installation, please visit the detailed CPAN module installation guide.