A comprehensive set of utility libraries for Dart that simplifies common tasks and extends core functionality.
Quiver is a set of utility libraries for the Dart programming language created by Google. It provides a wide range of helper functions, data structures, and tools that make working with Dart's core libraries easier and more convenient, while also adding missing functionality commonly needed in real-world applications.
Dart developers building applications, packages, or Flutter apps who want reliable utilities for collections, async operations, string manipulation, testing, and time handling without reinventing the wheel.
Developers choose Quiver because it offers Google-maintained, production-ready utilities that follow Dart idioms, reduce boilerplate code, and provide consistent solutions for common programming patterns not covered by Dart's standard library.
A set of utility libraries for Dart
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Includes specialized tools like Metronome for self-correcting periodic timers and StreamBuffer for orderly stream reading, simplifying complex asynchronous workflows beyond Dart's core libraries.
Provides data structures such as BiMap for bidirectional mapping and LruMap for cache eviction, filling gaps in Dart's standard library for real-world applications.
Offers functions like zip, enumerate, and range that mimic Python's itertools, making iterable manipulation more intuitive and reducing boilerplate code.
Features Clock and FakeAsync for mocking time in tests, enabling reliable testing of time-dependent code and improving overall code quality.
Split into multiple libraries (e.g., quiver.async, quiver.collection), which can complicate imports and increase dependency management overhead when only a subset of utilities is needed.
Some utilities, like string checks (isBlank) or collection equality functions, may duplicate features in Dart's evolving standard library, leading to redundancy and potential maintenance issues.
Relies heavily on API docs without comprehensive tutorials or examples, making it less accessible for developers new to the library or Dart ecosystem.