NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #105 most downloaded on pub.dev
A collection of utilities to transform and manipulate streams.
Last release 1 months ago
28 Aug 2026
Release timing varies
gaps range from 2 weeks to 2.1 years
Nearly every release is documented
notes for 30 of 30 stable releases
Nothing withdrawn
no release was ever pulled
9 years old
31 releases · first in 2017
Fix an exception when a subscription to a combineLatest stream is canceled while there is an ongoing asynchronous combine callback.
combineLatest stream is canceledForward errors from the trigger future through to the result stream in takeUntil. Previously an error would have not closed the stream, and instead ra
trigger future through to the result stream in
takeUntil. Previously an error would have not closed the stream, and instead
raised as an unhandled async error.dart-lang/tools monorepo.One column per quarter.
Switched to using the Apache httpd mime.conf table as the source of truth for mime types. Mime type additions:
application/vnd.geogebra.slidesfont/collectionimage/jxlimage/vnd.dvb.subtitlevideo/mp2tapplication/x-font-otf => font/otfapplication/x-font-ttf => font/ttfapplication/x-font-woff => font/woffmodel/vnd.mtsapplication/inkml+xml, inkml => inkapplication/octet-stream, so => binapplication/onenote, onetoc2 => onetocapplication/pgp-signature, sig => ascapplication/tei+xml, teicorpus => teiapplication/vnd.adobe.fxp, fxpl => fxpapplication/vnd.clonk.c4group, c4u => c4gapplication/vnd.dece.data, uvvf => uvfapplication/vnd.dece.ttml+xml, uvvt => uvtapplication/vnd.eszigno3+xml, et3 => es3application/vnd.framemaker, maker => fmapplication/vnd.geometry-explorer, gre => gexapplication/vnd.grafeq, gqs => gqfapplication/vnd.ibm.modcap, listafp => afpapplication/vnd.iccprofile, icm => iccapplication/vnd.intercon.formnet, xpx => xpwapplication/vnd.kde.kpresenter, kpt => kprapplication/vnd.kde.kword, kwt => kwdapplication/vnd.kinar, knp => kneapplication/vnd.koan, skt => skpapplication/vnd.ms-project, mpt => mppapplication/vnd.palm, pqa => pdbapplication/vnd.quark.quarkxpress, qxt => qxdapplication/vnd.simtech-mindmapper, twds => twdapplication/vnd.stardivision.writer, vor => sdwapplication/vnd.sus-calendar, susp => susapplication/vnd.symbian.install, sisx => sisapplication/vnd.ufdl, ufdl => ufdapplication/vnd.visio, vsw => vsdapplication/vnd.zul, zirz => zirapplication/x-authorware-bin, x32 => aabapplication/x-blorb, blorb => blbapplication/x-cbr, cbz => cbrapplication/x-director, w3d => dirapplication/x-font-type1, pfm => pfaapplication/x-msdownload, msi => exeapplication/x-pkcs12, pfx => p12application/x-pkcs7-certificates, spc => p7bapplication/x-zmachine, z8 => z1application/xv+xml, xvml => mxmlaudio/basic, snd => auaudio/mpeg, mpga => mp3audio/vnd.dece.audio, uvva => uvaimage/tiff, tif => tiffimage/vnd.dece.graphic, uvvi => uviimage/x-freehand, fhc => fhmessage/rfc822, mime => emlmodel/mesh, silo => mshmodel/x3d+binary, x3dbz => x3dbmodel/x3d+vrml, x3dvz => x3dvmodel/x3d+xml, x3dz => x3dtext/troff, tr => ttext/uri-list, urls => uritext/x-fortran, for => fvideo/mj2, mjp2 => mj2video/vnd.dece.hd, uvvh => uvhvideo/vnd.dece.mobile, uvvm => uvmvideo/vnd.dece.pd, uvvp => uvpvideo/vnd.dece.sd, uvvs => uvsvideo/vnd.dece.video, uvvv => uvvvideo/vnd.uvvu.mp4, uvvu => uvuvideo/x-ms-asf, asx => asfWait for the future returned from StreamSubscription.cancel() before listening to the subsequent stream in switchLatest and switchMap.
StreamSubscription.cancel() before
listening to the subsequent stream in switchLatest and switchMap.Improve tests of switchMap and improve documentation with links and clarification.
switchMap and improve documentation with links and
clarification.trailing argument to throttle.Nothing published for this version
Add support for emitting the "leading" event in debounce.
debounce.Added expectApiSummaryClean , ApiSummaryFormat , and ApiSummaryVerificationException to support one-liner golden file verification in dart test (e.g.
expectApiSummaryClean, ApiSummaryFormat, andApiSummaryVerificationException to support one-liner golden file verificationdart test (e.g. test('api_summary', expectApiSummaryClean);).--write (-w), --check (-c), and --output (-o) flags to theapi_summary CLI executable.deepCopyLinks argument to copyPath and copyPathSync.@visibleForTesting annotation from SharedStdIn.SharedStdIn.new.
AnsiCode and AnsiCodeType marked final. ThesefinalconcurrentAsyncExpand to interleave events emitted by multiple sub
streams created by a callback.Initial stable release.
These should be used in place of the current methods. All current implementations are deprecated and will be removed in the next major version bump.
Add extension methods for most transformers. These should be used in place of the current methods. All current implementations are deprecated and will be removed in the next major version bump.
stream.transform(debounce(Duration(seconds: 1))) use
stream.debounce(Duration(seconds: 1)).StreamTransformer instance is stored or
passed see "Getting a StreamTransformer instance" on the README.The map and chainTransformers utilities are no longer useful with the
new patterns so they are deprecated without a replacement. If you still have
a need for them they can be replicated with StreamTransformer.fromBind:
// Replace `map(convert)`
StreamTransformer.fromBind((s) => s.map(convert));
// Replace `chainTransformers(first, second)`
StreamTransformer.fromBind((s) => s.transform(first).transform(second));
- Add asyncMapSample transform.
asyncMapSample transform.Internal cleanup. Passed "trigger" streams or futures now allow generic type rather than an implicit dynamic>
<void>
generic type rather than an implicit dynamic>Add concrete types to the onError callback in tap.
onError callback in tap.Allow a combine callback to return a FutureOr in scan. There are no behavior changes for synchronous callbacks. Potential breaking change In the unlik…
combine callback to return a FutureOr<T> in scan. There are no
behavior changes for synchronous callbacks. Potential breaking change In
the unlikely situation where scan was used to produce a Stream<Future>
inference may now fail and require explicit generic type arguments.combineLatest.combineLatestAll.Remove usage of Set literal which is not available before Dart 2.2.0
- Add whereType.
whereType.asyncWhere will now forward exceptions thrown by the callback through the result Stream.
asyncWhere will now forward exceptions thrown by the callback through the
result Stream.concurrentAsyncMap.Allow using non-dev Dart 2 SDK.
mergeAll now accepts an Iterable instead of only List .
mergeAll now accepts an Iterable<Stream> instead of only List<Stream>.Add chainTransformers and map for use cases where StreamTransformer instances are stored as variables or passed to methods other than transform.
chainTransformers and map for use cases where StreamTransformer
instances are stored as variables or passed to methods other than transform.Renamed concat as followedBy to match the naming of Iterable.followedBy. concat is now deprecated.
concat as followedBy to match the naming of Iterable.followedBy.
concat is now deprecated.Updates to support Dart 2.0 core library changes (wave 2.2). See [issue 31847][sdk#31847] for details.
Updates to support Dart 2.0 core library changes (wave 2.2). See issue 31847 for details.
- Add asyncMapBuffer.
asyncMapBuffer.- Add takeUntil.
takeUntil.Bug Fix: Streams produced with scan and switchMap now correctly report isBroadcast.
scan and switchMap now correctly report
isBroadcast.startWith, startWithMany, and startWithStream.Bug Fix: Some transformers did not correctly add data to all listeners on broadcast streams. Fixed for throttle, debounce, asyncWhere and audit.
throttle, debounce, asyncWhere and audit.tap data callback once per event rather than once per
listener.merge transform.StreamControllers for forwarding where possible.Bug Fix: Allow compiling switchLatest with Dart2Js.
asyncWhere: Like where but allows an asynchronous predicate.Add scan: fold which returns intermediate values
scan: fold which returns intermediate valuesthrottle: block events for a duration after emitting a valueaudit: emits the last event received after a durationAdd tap: React to values as they pass without being a subscriber on a stream
tap: React to values as they pass without being a subscriber on a streamswitchMap and switchLatest: Flatten a Stream of Streams into a Stream
which forwards values from the most recent StreamAdd concat: Appends streams in series
concat: Appends streams in seriesmerge and mergeAll: Interleaves streamsInitial release with the following utilities:
buffer: Collects events in a List until a trigger stream fires.debounce, debounceBuffer: Collect or drop events which occur closer in
time than a given duration.Your coding agent can read these notes before it upgrades. Set up the MCP server →