quiver
Quiver is a set of utility libraries for Dart that makes using many Dart libraries easier and more convenient, or adds additional functionality.
3.2.2
2.9M downloads/mo
#217 most downloaded on pub.dev
google/quiver-dart
What this package is like to depend on
Last release 2 years ago
no release in 18 months
Release timing varies
gaps range from 8 days to 1.7 years
Most releases are documented
notes for 46 of 74 stable releases
1 version withdrawn
withdrawn after publishing
13 years old
84 releases · first in 2013
0 releases in the last 12 months
see the full history below
Release timeline
84 releases · Aug 2013 to Aug 2024Releases
latest 60 of 84-
3.2.228 Aug 2024Release notes
Open source →- Fix a number of doc comment issues.
- Re-deprecate
Optionalbut provide more nuance to the documentation.
-
3.2.120 Dec 2022Release notes
Open source →- Un-deprecate
Optional. Causing breaks with hints internally at Google. Need to remove all usages before we try to land again.
- Un-deprecate
-
3.2.020 Dec 2022 withdrawnRelease notes
Open source →- Deprecate
Optional. With the introduction of non-null by default in Dart SDK 2.12, existing users should migrate to non-nullable types. This type will be removed in Quiver 4.0.0. - Make
TreeIteratornot implement deprecatedBidirectionalIterator. ThemovePreviousmethod still exists onTreeIterator. - Require Dart 2.17
- Deprecate
-
3.1.003 May 2022Release notes
Open source →- Fix: Make Cache.get ifAbsent parameter nullable. The parameter was always optional; this just corrects the type.
- Fix: Remove documentation links to the (previously removed) mirrors library.
-
3.0.106 Apr 2021Release notes
Open source →- Fix: Eliminate null check error on removal of root node of
AVLTree. - Fix: Eliminate null check in partition internal iterator
currentgetter. - Minor documentation typo corrections.
- Fix: Eliminate null check error on removal of root node of
-
3.0.1+115 Oct 2021Release notes
Open source →- Add documentation to
Optionalsuggesting that adding new uses be avoided and existing uses should be migrated to nullable types in codebases where non-null by default has been enabled.
- Add documentation to
-
3.0.017 Feb 2021Release notes
Open source →- BREAKING CHANGE: This version requires Dart SDK 2.12.0 or later.
- BREAKING CHANGE: Remove
assertCheckedMode. This was deprecated in 2.1.2. Checked mode no longer exists in Dart 2.0 since the vast majority of what checked mode did is now done in the type system itself. - BREAKING CHANGE: Remove
doWhileAsync. This was deprecated in 2.1.1. Existing callers should migrate toFuture.doWhile(). - BREAKING CHANGE: Remove IO library. This was deprecated in 2.1.4.
- BREAKING CHANGE: Remove mirrors library. This was deprecated in 2.1.4.
- BREAKING CHANGE: forEachAsync now returns Future<void> instead of Future<Null>.
- BREAKING CHANGE: BiMap no longer throws ArgumentError on insertion of a null key or value, if the corresponding K or V type is nullable. As before, values in the map must be unique and ArgumentError is thrown on attempts to add a key-value pair whose value is already in the map.
- BREAKING CHANGE:
TreeSet.firstandTreeSet.lastnow throw StateError if no element exists, as specified by the Set API contract both with null safety enabled or disabled. - BREAKING CHANGE:
TreeSetiterators now throw ifIterator.currentis called beforemoveNextis called, or aftermoveNexthas returned false when running with null safety enabled. - Deprecate
checkNotNull. Users of this function should migrate toArgumentError.checkNotNull. This will be removed in 4.0.0. - Deprecate
firstNonNull. Users of this function should migrate tovar v = o1 ?? o2 ?? o3 ?? o4; ArgumentError.checkNotNull(v);. This will be removed in 4.0.0 - Eliminate dependency on package:meta.
-
3.0.0-nullsafety.315 Jan 2021 pre-releaseNothing published for this version
-
3.0.0-nullsafety.206 Nov 2020 pre-releaseNothing published for this version
-
3.0.0-nullsafety.106 Nov 2020 pre-releaseNothing published for this version
-
3.0.0-nullsafety06 Nov 2020 pre-releaseNothing published for this version
-
2.1.506 Nov 2020Release notes
Open source →- Deprecate
forEachAsync,reduceAsync. Existing callers should migrate toFuture.forEach. Migration examples have been added to the documentation for these methods. This will be removed in Quiver 3.0.0.
- Deprecate
-
2.1.426 Oct 2020Release notes
Open source →- Move
stringFromByteStreamfrom the IO library to the async library. The original in IO has been deprecated and will be removed in 3.0.0. Users should update their code to import this function fromquiver/async.dart. If bothquiver/io.dartandquiver.async.dartare imported in the same file, users should hide the symbol from IO as described here: https://dart.dev/guides/language/language-tour#importing-only-part-of-a-library - Deprecate
getFullPath. Users should useFile(path).resolveSymbolicLinksSync. This will be removed in 3.0.0. - Deprecate
visitDirectory. This will be removed in 3.0.0. The source can be copied under the terms of the Apache 2.0 license. - Deprecate mirrors library. This will be removed in 3.0.0. This library was written prior to Dart 1.0 and in the interim, mirrors have been found to be problematic for production code. The primary Dart runtimes today are Flutter and the web. Flutter disables dart:mirrors altogether. On the web, the use of mirrors disables tree-shaking since in theory almost any symbol could be used reflectively; this can't be solved through static analysis -- one could imagine the situation where a user of a web app inputs the name of a method to be reflectively invoked at runtime. Users of this code can rewrite this code, or copy it into their own projects under the terms of the Apache 2.0 license.
- Fix: Eliminate a set literal inadvertently introduced in https://github.com/google/quiver-dart/pull/359. Set literals are only supported starting in Dart 2.2, but Quiver supports back to Dart 2.0.
- Switched from using part/part of to re-exporting the underlying libraries. We weren't making use of private symbols across files within lib/src. This improves readability by keeping imports with the code that's using them. It also allows for cross-imports within lib/src if necessary.
- Move
-
2.1.4+126 Oct 2020Release notes
Open source →- Fix: Add dart:async import to async/string.dart. Stream wasn't exported from dart:core until Dart 2.1 but Quiver supports back to Dart 2.0.
-
2.1.328 Feb 2020Release notes
Open source →- Fix: revert const constructor change to
Optional.transform,Optional.transformNullwhich causes type errors when used in combination with certain operations that trigger an implicit type check. The error in question was introduced in 2.1.2.
- Fix: revert const constructor change to
-
2.1.205 Nov 2019Release notes
Open source →- Deprecate
assertCheckedMode. Checked mode no longer exists in Dart 2.0 since the vast majority of what checked mode did is now done in the type system itself. This will be removed in Quiver 3.0.0. - TreeSet.isEmpty/isNotEmpty are now constant-time checks.
- Large amounts of linter-related cleanups.
- Deprecate
-
2.1.2+106 Nov 2019Release notes
Open source →- Minor linter fix: added curly brackets on flow-control structures to make Pana package scoring happier.
-
2.1.103 Nov 2019Release notes
Open source →- Deprecate
doWhileAsync. Existing callers should migrate toFuture.doWhile()fromdart:async. This will be removed in Quiver 3.0.0. - Fix: Eliminate a crash in
LruMap.putIfAbsentwhenmaximumSizeis 1. - Add return types on any function that didn't include one.
- Deprecate
-
2.1.028 Oct 2019Release notes
Open source →- Upgraded matcher dependency lower-bound from 0.10.0 to 0.12.5 to migrate from
isInstanceOftoisAin tests. - Style cleanups.
- Upgraded matcher dependency lower-bound from 0.10.0 to 0.12.5 to migrate from
-
2.0.508 Aug 2019 -
2.0.401 Aug 2019 -
2.0.312 Apr 2019 -
2.0.219 Mar 2019Release notes
Open source →partitionis now a generic function.- New: Optional now includes an
isNotPresentgetter alongside the existingisPresentgetter.
-
2.0.123 Oct 2018Release notes
Open source →- New: Optional now includes
transformNullableto pass maybe present values through a transformer with a nullable return value.
- New: Optional now includes
-
2.0.018 Jul 2018 -
2.0.0+118 Jul 2018 -
2.0.0-dev.1.018 Jul 2018 pre-releaseNothing published for this version
-
1.0.018 Jul 2018Release notes
Open source →- BREAKING CHANGE: StreamBuffer has been changed from implementing
StreamConsumer<T>toStreamConsumer<List<T>>. Users ofStreamBuffer<List<T>>can simply change declarations toStreamBuffer<T>. In cases where the generic type is already not a list type, inputs to the list may need to be wrapped in a list.
- BREAKING CHANGE: StreamBuffer has been changed from implementing
-
0.29.029 Mar 2018Release notes
Open source →- BREAKING CHANGE: Deleted
createTimerandcreateTimerPeriodic, which were deprecated in 0.26.0. - BREAKING CHANGE: Deleted
reverse, which was deprecated in 0.25.0. - BREAKING CHANGE: Deleted
FutureGroup, which was deprecated in 0.25.0. - BREAKING CHANGE:
InfiniteIterable.singleWherenow throwsUnsupportedError.
- BREAKING CHANGE: Deleted
-
0.29.0+129 Mar 2018Release notes
Open source →- BREAKING CHANGE: This version requires Dart SDK 2.0.0-dev.30 or later. Bugfixes will be backported to the 0.28.x series for Dart 1 users.
- New: BiMap now includes a real implementation of
addEntries,get entries,map,removeWhere,update, andupdateAll. - New: DelegatingIterable now includes a real implementation of
followedBy, and accepts theorElseparameter onsingleWhere. - New: DelegatingList now includes real implementations of
operator +,indexWhere, andlastIndexWhere. - New: LruMap now includes a real implementation of
addEntries,get entries,removeWhere,update, andupdateAll. - New: The map returned by
Multimap.asMap()now includes real implementations ofget entriesandremoveWhere. This class also has "real" implementations ofaddEntries,map,update, andupdateAll, which just throw anUnsupportedError, as inserts and updates are not allowed on map views. - New: The list keys of
ListMultimapnow include real implementations ofoperator +,indexWhere, andlastIndexWhere. - New: The iterable keys of
ListMultimapandSetMultimapnow include a real implementation offollowedBy, and accept theorElseparameter onsingleWhere.
-
0.29.0+219 Jul 2018Nothing published for this version
-
0.28.224 Mar 2018Release notes
Open source →- Fix: Eliminate a bug where
LruMaplinkage is incorrectly preserved when items are removed.
- Fix: Eliminate a bug where
-
0.28.122 Mar 2018Release notes
Open source →- Remove use of
Maps.mapToStringinLruMap. - Add
@visibleForTestingannotation inAvlTreeSet.
- Remove use of
-
0.28.020 Jan 2018Release notes
Open source →- BREAKING CHANGE: The signature of
MultiMap'supdatestub has changed fromV update(K key, C update(C value), {C ifAbsent()})toC update(K key, C update(C value), {C ifAbsent()}).
- BREAKING CHANGE: The signature of
-
0.27.003 Jan 2018Release notes
Open source →- BREAKING CHANGE: all classes that implement
Iterable,List,Map,Queue,Set, orTimernow implement stubs of upcoming Dart 2.0 methods. Any class that reimplements these classes also needs new method implementations. The classes with these breaking changes include:HashBiMap,DelegatingIterable,DelegatingList,DelegatingMap,DelegatingQueue,DelegatingSet,LinkedLruHashMap,TreeSet, andAvlTreeSet. - Fix: Use FIFO ordering in
FakeAsync. PR #265
- BREAKING CHANGE: all classes that implement
-
0.26.216 Nov 2017Release notes
Open source →- Fix: re-adding the most-recently-used entry to a
LinkedLruHashMappreviously introduced a loop in the internal linked list. - Fix: when removing an entry in the middle of the
LinkedLruHashMap, the recency list was not correctly re-linked.
- Fix: re-adding the most-recently-used entry to a
-
0.26.116 Nov 2017 -
0.26.001 Nov 2017Release notes
Open source →- BREAKING CHANGE: eliminated deprecated
flip. Replaced byreversein 0.25.0. - BREAKING CHANGE: eliminated deprecated
repeat. Deprecated in 0.25.0. Callers should useString's*operator. - BREAKING CHANGE:
collect,concat,doWhileAsync,enumerate,extent,forEachAsync,max,merge,min,reduceAsync, andzipare now type parameterized. Depending on the inferred value of each type parameter, the return type of each function may change in existing code. - BREAKING CHANGE:
Optional's==operator now takes into accountT, the type of the value. This changes, e.g.Optional<int>.absent()to no longer be equal toOptional<String>.absent(). - BREAKING CHANGE: stronger generics added in
CacheandMapCache. - Deprecated:
reversein thestringslibrary. No replacement is provided. - Deprecated:
createTimer,createTimerPeriodicin theasynclibrary. These were originally written to support FakeTimer, which is superseded by FakeAsync. - New: Added
isLeapYear,daysInMonth,clampDayOfMonthAPIs in thetimelibrary. - Multimap is now backed by a LinkedHashMap rather than HashMap.
- Multimap: added
containsto know if an association key/value exists.
- BREAKING CHANGE: eliminated deprecated
-
0.25.028 Mar 2017Release notes
Open source →- BREAKING CHANGE: minimum SDK constraint increased to 1.21.0. This allows use of async-await and generic function in Quiver.
- BREAKING CHANGE: eliminated deprecated
FakeTimer. - BREAKING CHANGE:
StreamBuffer<T>now implementsStreamConsumer<T>as opposed toStreamConsumer<T|List<T>>. - Deprecated:
FutureGroup. Use the replacement inpackage:asyncwhich requires aclose()call to trigger auto-completion when the count of pending tasks drops to 0. - Deprecated:
repeatin thestringslibrary. Use the*operator on the String class. - Deprecated: in the strings library,
fliphas been renamedreverse.flipis deprecated and will be removed in the next release. - Iterables:
enumerateis now generic. - Collection: added
indexOf.
-
0.24.031 Oct 2016Release notes
Open source →- BREAKING CHANGE: eliminated deprecated
nullToEmpty,emptyToNull. - Fix: Strong mode: As of Dart SDK 1.21.0,
Set.differencetakes aSet<Object>parameter.
- BREAKING CHANGE: eliminated deprecated
-
0.23.021 Sep 2016Release notes
Open source →- Strings:
nullToEmpty,emptyToNulldeprecated. Removal in 0.24.0. - BREAKING CHANGE: eliminated deprecated multimap
toMap. - BREAKING CHANGE: eliminated deprecated
pad*,trim*string functions.
- Strings:
-
0.22.022 Apr 2016Release notes
Open source →- BREAKING CHANGE:
streamsandasynclibraries have been merged into oneasynclibrary - BREAKING CHANGE: Pre-1.8.0 SDKs are no longer supported.
- Quiver is now strong mode compliant
- New:
Optionalnow implementsIterableand its methods are generic (using temporary syntax) - New:
isNotEmptyandisDigitinstrings.dart - New:
Multimap.fromIterable - Fix: Change
TreeSearchfromclasstoenum. - Fix:
fake_async.darttimers are now active while executing the callback
- BREAKING CHANGE:
-
0.21.427 May 2015Release notes
Open source →- Add stats reporting for fake async tests. You can query the number of pending
microtasks and timers via
microtaskCount,periodicTimerCount,nonPeriodicTimerCount.
- Add stats reporting for fake async tests. You can query the number of pending
microtasks and timers via
-
0.21.304 Mar 2015Release notes
Open source →- Bugfix: fixed return type on some methods (e.g.
whereofIterables returned by Multimap.
- Bugfix: fixed return type on some methods (e.g.
-
0.21.3+111 May 2015 -
0.21.203 Mar 2015Release notes
Open source →- Bugfix: fix drifting times in
Metronome. - Add
LruMapto quiver/collection. - Un-deprecate Glob; feedback was that package:glob was not a suitable replacement in many cases. Key reasons: dependency on dart:io and significantly poorer performance.
- Bugfix: fix drifting times in
-
0.21.105 Feb 2015Release notes
Open source →- Add optional start param to
Glob.allMatches()to match superclass method signature. - Add optional start param to
Patternreturned bymatchesAny()to match superclass method signature. - Deprecate Glob. Use package:glob. Will be removed in 0.22.0.
- Add optional start param to
-
0.21.002 Feb 2015Release notes
Open source →- Multimap:
toMap()is deprecated and replaced withasMap().toMap()will be removed in v0.22.0. - Cleanup method signatures that were inconsistent with the core library.
- Added
areEqualityGroupsmatcher for testingoperator==andhashCode. - CONTRIBUTING.md added.
- Multimap:
-
0.21.0+103 Feb 2015Release notes
Open source →- Replace
equalsTesterdependency onunittestwith finer-grained dependency onmatcher. pathis now a dev dependency.
- Replace
-
0.21.0+204 Feb 2015 -
0.21.0+304 Feb 2015Release notes
Open source →- Travis CI integration support added.
- Document that the deprecated functions
padLeft,padRight,trimLeft,trimRightwill be removed in 0.22.0.
-
0.20.010 Dec 2014Release notes
Open source →- Multimap: better
toString()on returned collections. - Multimap: Bugfix: support edits on empty value collections.
- Multimap: Added missing return statement in
fold. - Added isEmpty() in
strings. - Added max SDK constraint <2.0.0
- Minor updates to README.md.
- CHANGELOG.md added
- Multimap: better
-
0.19.012 Nov 2014Nothing published for this version
-
0.19.0+112 Nov 2014 -
0.19.0-dev.315 Jul 2014 pre-releaseNothing published for this version
-
0.19.0-dev.225 Jun 2014 pre-releaseNothing published for this version
-
0.19.0-dev.121 May 2014 pre-releaseNothing published for this version
-
0.18.215 Mar 2014Nothing published for this version
-
0.18.114 Mar 2014Nothing published for this version
-
0.18.010 Mar 2014Nothing published for this version