PackageTrack
Sign in Get early access

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 2024
2014 2016 2018 2020 2022 2024 2026
Release Pre-release Withdrawn

Releases

latest 60 of 84
  1. 3.2.2 28 Aug 2024
    Release notes
    • Fix a number of doc comment issues.
    • Re-deprecate Optional but provide more nuance to the documentation.
    Open source →
  2. 3.2.1 20 Dec 2022
    Release notes
    • Un-deprecate Optional. Causing breaks with hints internally at Google. Need to remove all usages before we try to land again.
    Open source →
  3. 3.2.0 20 Dec 2022 withdrawn
    Release notes
    • 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 TreeIterator not implement deprecated BidirectionalIterator. The movePrevious method still exists on TreeIterator.
    • Require Dart 2.17
    Open source →
  4. 3.1.0 03 May 2022
    Release notes
    • 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.
    Open source →
  5. 3.0.1 06 Apr 2021
    Release notes
    • Fix: Eliminate null check error on removal of root node of AVLTree.
    • Fix: Eliminate null check in partition internal iterator current getter.
    • Minor documentation typo corrections.
    Open source →
  6. 3.0.1+1 15 Oct 2021
    Release notes
    • Add documentation to Optional suggesting 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.
    Open source →
  7. 3.0.0 17 Feb 2021
    Release notes
    • 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 to Future.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.first and TreeSet.last now throw StateError if no element exists, as specified by the Set API contract both with null safety enabled or disabled.
    • BREAKING CHANGE: TreeSet iterators now throw if Iterator.current is called before moveNext is called, or after moveNext has returned false when running with null safety enabled.
    • Deprecate checkNotNull. Users of this function should migrate to ArgumentError.checkNotNull. This will be removed in 4.0.0.
    • Deprecate firstNonNull. Users of this function should migrate to var v = o1 ?? o2 ?? o3 ?? o4; ArgumentError.checkNotNull(v);. This will be removed in 4.0.0
    • Eliminate dependency on package:meta.
    Open source →
  8. 3.0.0-nullsafety.3 15 Jan 2021 pre-release

    Nothing published for this version

  9. 3.0.0-nullsafety.2 06 Nov 2020 pre-release

    Nothing published for this version

  10. 3.0.0-nullsafety.1 06 Nov 2020 pre-release

    Nothing published for this version

  11. 3.0.0-nullsafety 06 Nov 2020 pre-release

    Nothing published for this version

  12. 2.1.5 06 Nov 2020
    Release notes
    • Deprecate forEachAsync, reduceAsync. Existing callers should migrate to Future.forEach. Migration examples have been added to the documentation for these methods. This will be removed in Quiver 3.0.0.
    Open source →
  13. 2.1.4 26 Oct 2020
    Release notes
    • Move stringFromByteStream from 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 from quiver/async.dart. If both quiver/io.dart and quiver.async.dart are 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 use File(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.
    Open source →
  14. 2.1.4+1 26 Oct 2020
    Release notes
    • 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.
    Open source →
  15. 2.1.3 28 Feb 2020
    Release notes
    • Fix: revert const constructor change to Optional.transform, Optional.transformNull which 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.
    Open source →
  16. 2.1.2 05 Nov 2019
    Release notes
    • 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.
    Open source →
  17. 2.1.2+1 06 Nov 2019
    Release notes
    • Minor linter fix: added curly brackets on flow-control structures to make Pana package scoring happier.
    Open source →
  18. 2.1.1 03 Nov 2019
    Release notes
    • Deprecate doWhileAsync. Existing callers should migrate to Future.doWhile() from dart:async. This will be removed in Quiver 3.0.0.
    • Fix: Eliminate a crash in LruMap.putIfAbsent when maximumSize is 1.
    • Add return types on any function that didn't include one.
    Open source →
  19. 2.1.0 28 Oct 2019
    Release notes
    • Upgraded matcher dependency lower-bound from 0.10.0 to 0.12.5 to migrate from isInstanceOf to isA in tests.
    • Style cleanups.
    Open source →
  20. 2.0.5 08 Aug 2019
    Release notes
    • Added isNotBlank to strings library.
    Open source →
  21. 2.0.4 01 Aug 2019
    Release notes
    • Added FakeAsync.pendingTimersDebugInfo.
    Open source →
  22. 2.0.3 12 Apr 2019
    Release notes
    • Do not cache failed ifAbsent calls in MapCache.
    Open source →
  23. 2.0.2 19 Mar 2019
    Release notes
    • partition is now a generic function.
    • New: Optional now includes an isNotPresent getter alongside the existing isPresent getter.
    Open source →
  24. 2.0.1 23 Oct 2018
    Release notes
    • New: Optional now includes transformNullable to pass maybe present values through a transformer with a nullable return value.
    Open source →
  25. 2.0.0 18 Jul 2018
    Release notes
    • BREAKING CHANGE: This version requires Dart SDK 2.0.0-dev.61 or later.
    Open source →
  26. 2.0.0+1 18 Jul 2018
    Release notes
    • Updated Dart SDK constraint to >=2.0.0-dev.61 < 3.0.0.
    Open source →
  27. 2.0.0-dev.1.0 18 Jul 2018 pre-release

    Nothing published for this version

  28. 1.0.0 18 Jul 2018
    Release notes
    • BREAKING CHANGE: StreamBuffer has been changed from implementing StreamConsumer<T> to StreamConsumer<List<T>>. Users of StreamBuffer<List<T>> can simply change declarations to StreamBuffer<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.
    Open source →
  29. 0.29.0 29 Mar 2018
    Release notes
    • BREAKING CHANGE: Deleted createTimer and createTimerPeriodic, 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.singleWhere now throws UnsupportedError.
    Open source →
  30. 0.29.0+1 29 Mar 2018
    Release notes
    • 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, and updateAll.
    • New: DelegatingIterable now includes a real implementation of followedBy, and accepts the orElse parameter on singleWhere.
    • New: DelegatingList now includes real implementations of operator +, indexWhere, and lastIndexWhere.
    • New: LruMap now includes a real implementation of addEntries, get entries, removeWhere, update, and updateAll.
    • New: The map returned by Multimap.asMap() now includes real implementations of get entries and removeWhere. This class also has "real" implementations of addEntries, map, update, and updateAll, which just throw an UnsupportedError, as inserts and updates are not allowed on map views.
    • New: The list keys of ListMultimap now include real implementations of operator +, indexWhere, and lastIndexWhere.
    • New: The iterable keys of ListMultimap and SetMultimap now include a real implementation of followedBy, and accept the orElse parameter on singleWhere.
    Open source →
  31. 0.29.0+2 19 Jul 2018

    Nothing published for this version

  32. 0.28.2 24 Mar 2018
    Release notes
    • Fix: Eliminate a bug where LruMap linkage is incorrectly preserved when items are removed.
    Open source →
  33. 0.28.1 22 Mar 2018
    Release notes
    • Remove use of Maps.mapToString in LruMap.
    • Add @visibleForTesting annotation in AvlTreeSet.
    Open source →
  34. 0.28.0 20 Jan 2018
    Release notes
    • BREAKING CHANGE: The signature of MultiMap's update stub has changed from V update(K key, C update(C value), {C ifAbsent()}) to C update(K key, C update(C value), {C ifAbsent()}).
    Open source →
  35. 0.27.0 03 Jan 2018
    Release notes
    • BREAKING CHANGE: all classes that implement Iterable, List, Map, Queue, Set, or Timer now 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, and AvlTreeSet.
    • Fix: Use FIFO ordering in FakeAsync. PR #265
    Open source →
  36. 0.26.2 16 Nov 2017
    Release notes
    • Fix: re-adding the most-recently-used entry to a LinkedLruHashMap previously 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.
    Open source →
  37. 0.26.1 16 Nov 2017
    Release notes
    • Fix: when removing the last item, LinkedLruHashMap was put into a state such that the next cache eviction could cause a null-pointer exception. Issue #385.
    • Fix: strong mode fix when calling merge on the empty set of iterables. PR #384.
    Open source →
  38. 0.26.0 01 Nov 2017
    Release notes
    • BREAKING CHANGE: eliminated deprecated flip. Replaced by reverse in 0.25.0.
    • BREAKING CHANGE: eliminated deprecated repeat. Deprecated in 0.25.0. Callers should use String's * operator.
    • BREAKING CHANGE: collect, concat, doWhileAsync, enumerate, extent, forEachAsync, max, merge, min, reduceAsync, and zip are 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 account T, the type of the value. This changes, e.g. Optional<int>.absent() to no longer be equal to Optional<String>.absent().
    • BREAKING CHANGE: stronger generics added in Cache and MapCache.
    • Deprecated: reverse in the strings library. No replacement is provided.
    • Deprecated: createTimer, createTimerPeriodic in the async library. These were originally written to support FakeTimer, which is superseded by FakeAsync.
    • New: Added isLeapYear, daysInMonth, clampDayOfMonth APIs in the time library.
    • Multimap is now backed by a LinkedHashMap rather than HashMap.
    • Multimap: added contains to know if an association key/value exists.
    Open source →
  39. 0.25.0 28 Mar 2017
    Release notes
    • 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 implements StreamConsumer<T> as opposed to StreamConsumer<T|List<T>>.
    • Deprecated: FutureGroup. Use the replacement in package:async which requires a close() call to trigger auto-completion when the count of pending tasks drops to 0.
    • Deprecated: repeat in the strings library. Use the * operator on the String class.
    • Deprecated: in the strings library, flip has been renamed reverse. flip is deprecated and will be removed in the next release.
    • Iterables: enumerate is now generic.
    • Collection: added indexOf.
    Open source →
  40. 0.24.0 31 Oct 2016
    Release notes
    • BREAKING CHANGE: eliminated deprecated nullToEmpty, emptyToNull.
    • Fix: Strong mode: As of Dart SDK 1.21.0, Set.difference takes a Set<Object> parameter.
    Open source →
  41. 0.23.0 21 Sep 2016
    Release notes
    • Strings: nullToEmpty, emptyToNull deprecated. Removal in 0.24.0.
    • BREAKING CHANGE: eliminated deprecated multimap toMap.
    • BREAKING CHANGE: eliminated deprecated pad*, trim* string functions.
    Open source →
  42. 0.22.0 22 Apr 2016
    Release notes
    • BREAKING CHANGE: streams and async libraries have been merged into one async library
    • BREAKING CHANGE: Pre-1.8.0 SDKs are no longer supported.
    • Quiver is now strong mode compliant
    • New: Optional now implements Iterable and its methods are generic (using temporary syntax)
    • New: isNotEmpty and isDigit in strings.dart
    • New: Multimap.fromIterable
    • Fix: Change TreeSearch from class to enum.
    • Fix: fake_async.dart timers are now active while executing the callback
    Open source →
  43. 0.21.4 27 May 2015
    Release notes
    • Add stats reporting for fake async tests. You can query the number of pending microtasks and timers via microtaskCount, periodicTimerCount, nonPeriodicTimerCount.
    Open source →
  44. 0.21.3 04 Mar 2015
    Release notes
    • Bugfix: fixed return type on some methods (e.g. where of Iterables returned by Multimap.
    Open source →
  45. 0.21.3+1 11 May 2015
    Release notes
    • Switch from unittest to test.
    Open source →
  46. 0.21.2 03 Mar 2015
    Release notes
    • Bugfix: fix drifting times in Metronome.
    • Add LruMap to 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.
    Open source →
  47. 0.21.1 05 Feb 2015
    Release notes
    • Add optional start param to Glob.allMatches() to match superclass method signature.
    • Add optional start param to Pattern returned by matchesAny() to match superclass method signature.
    • Deprecate Glob. Use package:glob. Will be removed in 0.22.0.
    Open source →
  48. 0.21.0 02 Feb 2015
    Release notes
    • Multimap: toMap() is deprecated and replaced with asMap(). toMap() will be removed in v0.22.0.
    • Cleanup method signatures that were inconsistent with the core library.
    • Added areEqualityGroups matcher for testing operator== and hashCode.
    • CONTRIBUTING.md added.
    Open source →
  49. 0.21.0+1 03 Feb 2015
    Release notes
    • Replace equalsTester dependency on unittest with finer-grained dependency on matcher.
    • path is now a dev dependency.
    Open source →
  50. 0.21.0+2 04 Feb 2015
    Release notes
    • Fix hanging FakeAsync unit test.
    Open source →
  51. 0.21.0+3 04 Feb 2015
    Release notes
    • Travis CI integration support added.
    • Document that the deprecated functions padLeft, padRight, trimLeft, trimRight will be removed in 0.22.0.
    Open source →
  52. 0.20.0 10 Dec 2014
    Release notes
    • 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
    Open source →
  53. 0.19.0 12 Nov 2014

    Nothing published for this version

  54. 0.19.0+1 12 Nov 2014
    Release notes
    • Corrected version constraint suggestion in README.md.
    Open source →
  55. 0.19.0-dev.3 15 Jul 2014 pre-release

    Nothing published for this version

  56. 0.19.0-dev.2 25 Jun 2014 pre-release

    Nothing published for this version

  57. 0.19.0-dev.1 21 May 2014 pre-release

    Nothing published for this version

  58. 0.18.2 15 Mar 2014

    Nothing published for this version

  59. 0.18.1 14 Mar 2014

    Nothing published for this version

  60. 0.18.0 10 Mar 2014

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive