More Dart — Literally
A collection of extensively tested extensions that make Dart a better place:
Library | Description |
---|---|
async | Extensions to Stream . |
cache | Caching strategies and their expiry policy. |
char_matcher | Character classes, their composition, and operations on strings. |
collection | Extensions to Iterable and new collection types. |
comparator | Common comparators, and extensions to perform advanced operations. |
feature | Information about the runtime environment. |
functional | Types and features known from functional programming. |
graph | Graph-theory objects and algorithms. |
interval | Continuous interval data type over a comparable type. |
math | Common mathematical functions. |
number | Number types: fraction, complex, quaternion. |
printer | Fluent interface to configure sophisticated formatter. |
temporal | Extensions to DateTime and Duration types. |
tuple | Generic sequence of typed values. |
And there are more to come ...
This library is open source, stable and well tested. Development happens on GitHub. Feel free to report issues or create a pull-request there. General questions are best asked on StackOverflow.
The package is hosted on dart packages. Up-to-date class documentation is created with every release.
Misc
Installation
Follow the installation instructions on dart packages.
Import the all-including parent package:
import 'package:more/more.dart';
Or one or more of the specific packages into your Dart code:
import 'package:more/async.dart';
import 'package:more/cache.dart';
import 'package:more/char_matcher.dart';
import 'package:more/collection.dart';
import 'package:more/comparator.dart';
import 'package:more/feature.dart';
import 'package:more/functional.dart';
import 'package:more/graph.dart';
import 'package:more/interval.dart';
import 'package:more/math.dart';
import 'package:more/number.dart';
import 'package:more/ordering.dart';
import 'package:more/printer.dart';
import 'package:more/temporal.dart';
import 'package:more/tuple.dart';
Contributing
The goal of the library is to provide a loose collection of carefully curated utilities that are not provided by the Dart standard library. All features must be well tested. New features must have significant advantages over alternatives, such as code reduction, readability improvement, speed increase, memory reduction, or improved accuracy. In case of doubt, consider filing a feature request before filing a pull request.
History
This library started in April 2013 as I was working through the puzzles of Project Euler and encountered some missing features in Dart. Over time the library grew and became more useful in many other places, so I created this reusable library.
Some parts of this library are inspired by similar APIs in Google Guava (Google core libraries for Java) and Apache Commons (a repository of reusable Java components).
License
The MIT License, see LICENSE.
Libraries
- async
- Helpers to make async code better.
- cache
- Collection of different caching strategies and their expiry policy.
- char_matcher
- A first-class model of character classes, their composition and operations on strings.
- collection
- A collection of iterable extensions and new collection types: bi-map, bit-list, multi-set, set and list multi-map, range, and string.
- comparator
- Provides default Comparator constructors, and various static extension methods to modify and perform common operations on Comparator functions.
- feature
- functional
- A collection of functional programming structures.
- graph
- Graph-theory objects and algorithms.
- interval
- Provides a continuous interval over a Comparable.
- iterable
- Some fancy iterables and iterators.
- math
- A collection of common mathematical functions.
- more
- More Dart — Literally.
- number
- Support for fractional and complex arithmetic.
- ordering
- Provides a first-class model of comparators, their composition and operations on iterables.
- printer
- Provides a first-class model to convert object to strings using composition and highly configurable formatting primitives.
- temporal
- Various extensions to the built-in date, time and duration objects.
- tuple
- Tuple data type.