Add StreamQueue.fork and ForkableStream.

StramQueue.fork is a very useful operation for creating complex and composable
user-defined operations over stream queues. It allows arbitrary lookahead to be
performed without modifying the semantics of the original stream, providing for
higher-order operations like "check for this sequence of values or, if they
don't exist, this other distinct sequence".

Review URL: .
6 files changed
tree: 6055a7600b092c72cb6e6b990f24b0e0133b7d76
  1. .gitignore
  2. .status
  8. codereview.settings
  9. lib/
  10. pubspec.yaml
  11. test/

Async utilities package

Contains tools to work with asynchronous computations.

The package contains Stream and Future related functionality, as well as sub-libraries with different utilities.

Zipping streams

The “stream_zip.dart” sub-library contains functionality to combine several streams of events into a single stream of tuples of events.


The “result.dart” sub-library introduces a Result class that can hold either a value or an error. It allows capturing an asynchronous computation which can give either a value or an error, into an asynchronous computation that always gives a Result value, where errors can be treated as data. It also allows releasing the Result back into an asynchronous computation.


This package is unrelated to the discontinued async package with version 0.1.7.

Features and bugs

Please file feature requests and bugs at the issue tracker.