Contains utility classes in the style of dart:async
to work with asynchronous
computations.
-
The
AsyncCache
class allows expensive asynchronous computations values to be cached for a period of time. -
The
AsyncMemoizer
class makes it easy to only run an asynchronous operation once on demand. -
The
CancelableOperation
class defines an operation that can be canceled by its consumer. The producer can then listen for this cancellation and stop producing the future when it's received. It can be created using aCancelableCompleter
. -
The delegating wrapper classes allow users to easily add functionality on top of existing instances of core types from
dart:async
. These includeDelegatingFuture
,DelegatingStream
,DelegatingStreamSubscription
,DelegatingStreamConsumer
,DelegatingSink
,DelegatingEventSink
, andDelegatingStreamSink
. -
The
FutureGroup
class makes it easy to wait until a group of futures that may change over time completes. -
The
LazyStream
class allows a stream to be initialized lazily when.listen()
is first called. -
The
NullStreamSink
class is an implementation ofStreamSink
that discards all events. -
The
RestartableTimer
class extendsTimer
with areset()
method. -
The
Result
class that can hold either a value or an error. It provides various utilities for converting to and fromFuture
s andStream
s. -
The
StreamGroup
class merges a collection of streams into a single output stream. -
The
StreamQueue
class allows a stream to be consumed event-by-event rather than being pushed whichever events as soon as they arrive. -
The
StreamSplitter
class allows a stream to be duplicated into multiple identical streams. -
The
StreamZip
class combines multiple streams into a single stream of lists of events. -
This package contains a number of
StreamTransformer
s.SingleSubscriptionTransformer
converts a broadcast stream to a single-subscription stream, andtypedStreamTransformer
casts the type of aStream
. It also defines a transformer type forStreamSink
s,StreamSinkTransformer
. -
The
SubscriptionStream
class wraps aStreamSubscription
so it can be re-used as aStream
.
For information about our publishing automation and release process, see https://github.com/dart-lang/ecosystem/wiki/Publishing-automation.