NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #74 most downloaded on pub.dev
Immutable collections based on the SDK collections. Each SDK collection class is split into a new immutable collection class and a corresponding mutable builder class.
Last release 10 days ago
28 Sep 2026
Ships unpredictably
gaps range from 4 weeks to 5.1 years
Nearly every release is documented
notes for 49 of 49 stable releases
Nothing withdrawn
no release was ever pulled
12 years old
50 releases · first in 2015
Bug fix: BuiltMap equality no longer returns true for maps with null values, different keys and colliding hash codes.
BuiltMap equality no longer returns true for maps with null^3.11.0.dart-lang/build.Test fix for new analyzer hint.
One column per quarter.
Allow collections with nullable types, for example BuiltList .
BuiltList<T?>.dynamic. This can be useful occasionally, and
with Dart 2 and null safety it's much harder to use dynamic by accident.- Stable null safe release.
Deps on package:collection and package:quiver have been removed.
package:collection and package:quiver have been removed.addAll methods that accept multimaps from
quiver. But, the constructors still work with quiver multimaps.Add an example folder with some example code.
example folder with some example code.Internal: cleanup for pedantic v1.9.0 lints.
Add extensions methods: List.build, Set.build, Map.build, Iterable.toBuiltList and Iterable.toBuiltSet. Requires SDK 2.6.0.
List.build, Set.build, Map.build,
Iterable.toBuiltList and Iterable.toBuiltSet. Requires SDK 2.6.0.new and const.Bug fix: ListMultimapBuilder.[] no longer ignores modifications under some circumstances.
ListMultimapBuilder.[] no longer ignores modifications under some
circumstances.Bug fix: ListBuilder first and last setters can no longer modify the underlying collection.
ListBuilder first and last setters can no longer modify the
underlying collection.Add benchmark for VM and dart2js.
ListBuilder and SetBuilder that take Iterable
elements so they only iterate over the iterable once. Improves performance
when the iterable are slow/lazy.Add return val to SetBuilder.add() to match Set.add().
SetBuilder.add() to match Set.add().ListMultimapBuilder: implement [] and add return values to
remove and removeAll.Many changes following Dart 2 improvements to collections:
Iterable methods: cast, followedBy and whereType.Iterable method: retype.orElse in singleWhere.BuiltList methods: +, indexWhere, lastIndexWhere.ListBuilder setters and getters: first, last.BuiltMap methods: entries, map.MapBuilder methods: addEntries, updateValue, updateAllValues.toList, toMap
and toSet.from and of constructors to BuiltList, BuiltMap and BuiltSet.
The from constructors, like the current constructors, take collections
of any type and check each element. The of constructors, like the SDK of
constructors, take a collection of the correct type. This means they can be
used for type inference, allowing you to omit the explicit type.remove, removeAt and removeLast methods on builders return values
like their SDK collection equivalents.- Allow SDK 2.0.0.
Allow quiver 2.0.0, use test version 1.
- Allow quiver 0.29.
Type fixes for DDC. Stop using a Map as a Map in MapBuilder.
Map as a Map<K, V> in MapBuilder.- Tweaks to tests.
- Allow quiver 0.28.
Stop using Function() syntax for Set and Map factories. It causes problems for the analyzer when using a pre-Dart-2 SDK.
Function() syntax for Set and Map factories. It causes
problems for the analyzer when using a pre-Dart-2 SDK.- Improve package description.
Prepare for Dart 2; add methods that will appear in Iterable.
Iterable.Revert changes for Dart 2; they will be re-released as v3.0.0 as they are break libraries that provide their own implementations of built collections.
- Fix changes for Dart 2.
Prepare for Dart 2; add methods that will appear in Iterable.
Iterable.BuiltSet and BuiltMap now allow you to specify the underlying collection type. For example, you can construct a BuiltSet using a SplayTreeSet. This re
BuiltSet and BuiltMap now allow you to specify the underlying collection
type. For example, you can construct a BuiltSet using a SplayTreeSet.
This results in a set that is always in sorted order instead of
preserving insertion order. Another useful possibility is to use a
HashSet, which leads to a random order but improves performance over
the default. See SetBuilder.withBase and MapBuilder.withBase.Split collection classes into abstract interfaces and concrete, private, implementations. This allows new implementations of the interfaces. Note that
runtimeType of the
collections.Fix a bug whereby ListBuilder and MapBuilder allowed nulls to be introduced via map and expand.
ListBuilder and MapBuilder allowed nulls to be
introduced via map and expand.- Allow quiver 0.26.
The addIterable method is now generic. This allows the types of the functions passed in to be inferred.
Add BuiltIterable interface for when you want to accept a BuiltList or BuiltSet.
Use real generic syntax, drop comment-based syntax.
Add operator[] to ListBuilder and MapBuilder for easier inline updates.
- Allow quiver 0.25.
Widen parameter of BuiltSet.difference and BuiltSet.intersection to BuiltSet to match Set.
BuiltSet<Object> to match Set.Update for Set.difference change in SDK 1.21.0.
asList, asMap, and asSet to the built collection classes.- Allow quiver 0.23.
- Strong mode clean.
Add reference identity check to equals operators.
Fix factories when iterable generic type is subtype of requested type.
Add generic type information to map, fold and expand methods.
Make map operator[] take Object instead of K, as SDK collections do.
Fix missing generics on some return types.
- Add BuiltSetMultimap.
- Fix "part of" statement.
Bug fix: fix Iterable "update in place" methods of BuiltList and BuiltSet so they discard original list or set.
- Add BuiltListMultimap.
- Fix comments.
Add build and rebuild methods to BuiltList, BuiltMap, BuiltSet.
- Initial version.
Your coding agent can read these notes before it upgrades. Set up the MCP server →