StreamCompleter class for creating a stream now and providing its events later as another stream.
StreamQueue class which allows requesting events from a stream before they are avilable. It is like a
StreamIterator that can queue requests.
SubscriptionStream which creates a single-subscription stream from an existing stream subscription.
ResultFuture class for synchronously accessing the result of a wrapped future.
FutureGroup.isIdle, which provide visibility into whether a group is actively waiting on any futures.
AsyncMemoizer class for running an asynchronous block of code exactly once.
Added delegating wrapper classes for a number of core async types:
DelegatingStreamSubscription. These are all simple wrappers that forward all calls to the wrapped objects. They can be used to expose only the desired interface for subclasses, or extended to add extra functionality.
FutureGroup class for waiting for a group of futures, potentially of unknown size, to complete.
StreamGroup class for merging the events of a group of streams, potentially of unknown size.