Vyacheslav Matyukhin > Flux-1.03 > Flux

Download:
Flux-1.03.tar.gz

Dependencies

Annotate this POD

View/Report Bugs
Module Version: 1.03   Source  

NAME ^

Flux - stream processing toolkit

VERSION ^

version 1.03

SYNOPSIS ^

  use Flux::Simple qw( array_in array_out mapper );

  my $in = array_in([ 5, 6, 7 ]);
  $in = $in | mapper { shift() * 2 };

  my @result;
  my $out = array_out(\@result);
  $out = mapper { shift() * 3 } | mapper { shift() . "x" } | $out;

  $out->write($in->read);
  $out->write($in->read);
  say for @result;

  # Output:
  # 30x
  # 36x

DESCRIPTION ^

Flux is the stream processing framework.

Flux::* module namespace includes:

Flux is a framework, but you can use lower-level parts of it without higher-level parts. For example, you can read and write files with Flux::File without declaring it in the Flux catalog.

INTERFACE STABILITY NOTICE ^

This distribution and other Flux-* distributions on CPAN are the result of the refactoring of our in-house framework.

It should be stable. We used it in production for years. But remember that:

1) I'm rewriting this in Moo/Moose, and there can be bugs.

2) I can refactor some API aspects in the process.

3) Not all of the code is uploaded yet.

SIMILAR MODULES ^

Message::Passing is similar to Flux.

Unlike Flux, it's asynchronous (Flux can be made asynchronous by using Coro, but its basic APIs are blocking).

IO::Pipeline syntax is similar to Flux mappers.

I'm sure there're many others. Stream processing is reinvented often.

AUTHOR ^

Vyacheslav Matyukhin <me@berekuk.ru>

COPYRIGHT AND LICENSE ^

This software is copyright (c) 2013 by Yandex LLC.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.

syntax highlighting: