more
More Dart — Literally. Collecting, iterating, caching, mathematics, matching, ordering, and formatting easily.
4.7.0
310K downloads/mo
#675 most downloaded on pub.dev
renggli/dart-more
What this package is like to depend on
Last release 8 months ago
12 Dec 2025
Ships fairly regularly
a new release about every 3 months
Some releases are documented
notes for 48 of 118 stable releases
1 version withdrawn
withdrawn after publishing
13 years old
127 releases · first in 2013
1 release in the last 12 months
see the full history below
Release timeline
127 releases · Apr 2013 to Dec 2025Releases
latest 60 of 127-
4.7.012 Dec 2025Release notes
Open source →- Upgrade to Unicode 17.0.0: https://blog.unicode.org/2025/09/unicode-170-release-announcement.html
- Add Unicode Script property matchers (thanks to https://github.com/amake).
- Add
Collection, an interface exposing the shared mutator operations of [List] and [Set]. - Add
DisjointSet, a union-find data structure for tracking disjoint sets. - Simplify graph constructors and fix directed edge equality.
- Add
Graph.vertexColoringalgorithm for graph coloring.
-
4.6.116 Aug 2025Release notes
Open source →- Dart and Flutter 3.9 compatibility.
- Add
Graph.hasCycleandGraph.isBipartitechecks. - Fix minor issues with
ComplexandQuaternionparsing.
-
4.6.008 Jun 2025Release notes
Open source →- Dart 3.8 requirement and WASM support.
- Unicode string normalization.
- Add
unicode: trueoption toString.toList(). - Add
String.chunkedandCharacters.chunked. - New graph search algorithms: Bellman-Ford and Floyd-Warshall.
-
4.5.025 Dec 2024Release notes
Open source →- Add
occurenceshelper toIterableandSortedList. - More customization for number grouping in all numeric formatters.
- Split date-time formatters into configurable constructors for date and times.
- Deprecate some obscure and introduce more readable naming in
MultisetandMultimap. - Add the possibility to convert a lambda returning a
Comparableto aComparatorwithdelegateComparator. - Various improvements to graph search, strongly connected components, and find cliques algorithms.
- Various optimization, such as the decoding of unicode data.
- Add
-
4.4.022 Oct 2024Release notes
Open source →- Add Bidirectional Character Types to
UnicodeCharMatcher(thanks to https://github.com/amake). - Remove no longer necessary JavaScript specific code.
- Optimize function types.
- Add Bidirectional Character Types to
-
4.3.014 Jul 2024Release notes
Open source →- Dart 3.4 requirement.
- Make
IntegerRangeandDoubleRangeconst constructable. - Numerous improvements to the Graph library:
- Add
Graph.where(edgePredicate)for filtering by edge. - Add Prim's minimum spanning tree.
- Add
- Simplify the
Intervalimplementation to only support closed intervals. - Add a
FenwickandIntervaltrees. - Minor bug-fixes.
-
4.2.029 Dec 2023Release notes
Open source →- Improved
Iterable.indexto more common argument names, and supportstep. - Add
alsoscope operator, which significantly improves the possibility to write one-liners. - Numerous improvements to the Graph library:
- Various performance critical fixes, better use of priority queues.
- Easy export to GraphViz with
Graph.toDot(). - Add support for filtered vertex views with
Graph.where({Predicate<V> vertexPrediate}). - Add support to copy graphs with
Graph.copy({bool empty}). - Improve
toStringofGraph,EdgeandPathclasses. - Add the Stoer-Wagner min-cut algorithm.
- Numerous smaller improvements:
- Add support for patterns in
String.removeSuffix; and addString.partitionandString.lastPartition. - Add support to compute
Iterable.minMaxin one pass, andIterable.gcdandIterable.lcm.
- Add support for patterns in
- Removed
Heap:PriorityQueuefrom the Dart standard library provides the same functionality. - Made the
SortedListimplementPriorityQueue.
- Improved
-
4.1.002 Dec 2023Release notes
Open source →- Add a port of Python's difflib.
CharMatchernow works on all unicode code-points, correctly and efficiently matching unicode characters beyond UTF-16 bytes:- Add support for all Unicode General Categories and Unicode Properties.
- Add support for Character Class Subtraction to
CharMatcher.pattern. - For consistency
CharMatcher.whitespace()is only matching ASCII whitespaces, to get the Unicode variant useUnicodeCharMatcher.whiteSpace(). - Add
CharMatcher.punctuation()for ASCII punctuation characters.
- Various improvements to graph library:
- Add support for unmodifiable graphs.
- Add support to compute the max-flow.
- Rename
GraphBuilderwithGraphFactory. - Replace
Graph.getEdgeswithGraph.getEdge, addGraph.putEdge.
- Make object printer syntax to look like tuples, no need to have these weird curly braces anymore.
- Add
double.nextUp,double.nextDown,double.nextTowards(double), anddouble.ulp. - Add growable flag to
SortedListconstructors. - Add Farey sequence to
Fraction. - Improve documentation across many parts of the library.
-
4.0.106 Aug 2023Nothing published for this version
-
4.0.024 Jun 2023Release notes
Open source →- Dart 3.0 requirement.
- Removed deprecated code.
- Reimplement
Tupleon top of records:- Replace types like
Tuple2<String, int>with(String, int). - Replace constructors like
Tuple2('hello', 42)with('hello', 42).
- Replace types like
- Add
Iterable.pairwiseover the successive overlapping pairs. - Add
Iterable.deepFlattenover arbitrarily nested iterables. - Add
productandzipextensions on tuples of iterables. - Add partial function evaluation, and currying extensions.
-
3.10.224 Feb 2023Nothing published for this version
-
3.10.119 Feb 2023Nothing published for this version
-
3.10.019 Feb 2023Release notes
Open source →- Add a growable
BitList, make it behave more likeList<bool>. - Optimize
BitListoperations:fill,count, andindices. - Change return type of generic
throwFunctiontoNever. - Add graph algorithms and data structures.
- Add
Map.withDefaultproviding a default value for non-existing keys. - Add support to generate permutations with a specified length, as well as extensions to generate the previous and next permutation.
- Add a growable
-
3.9.518 Dec 2022Nothing published for this version
-
3.9.417 Dec 2022Nothing published for this version
-
3.9.315 Dec 2022Nothing published for this version
-
3.9.212 Dec 2022Nothing published for this version
-
3.9.110 Dec 2022Nothing published for this version
-
3.9.027 Nov 2022Release notes
Open source →- Various extension to work with bits.
- Add iterator over
BitList.indicesthat are true or false. - Add experimental
RTreeimplementation. - Various optimizations and improvements to mathematical functions.
- Generalize the prime sieve implementation and add support for more efficient primality check and factorization.
- More efficient implementation of
repeatfor a single element. - Make
Iterable.groupByandIterable.indexedreturn instances ofMapEntryfor easier interoperability withMap. - Fix various edge cases with
Rangeiterables. - Fix
Iterable.combinationsfor empty iterables. - Add
ListextensionstakeTo,skipTo,takeLast,takeLastTo,skipLast, andskipLastTo. - Add
IterableextensioncountandpowerSet. - Deprecate
Iterable.cyclein favor ofIterable.repeat. - Deprecated
naturalComparatorin favor ofnaturalCompareandnaturalComparable<T>. - Deprecate the iterable package, and integrate the extensions into the collection package.
-
3.8.512 Sep 2022Nothing published for this version
-
3.8.411 Sep 2022Nothing published for this version
-
3.8.311 Sep 2022Nothing published for this version
-
3.8.204 Sep 2022Nothing published for this version
-
3.8.104 Sep 2022Nothing published for this version
-
3.8.023 Jun 2022 withdrawnRelease notes
Open source →- Add
Stringextensionstake,takeTo,skip,skipTo,takeLast,takeLastTo,skipLast, andskipLastTo. - Create a new
temporalpackage unifying allDateTimeandDurationrelated extensions:- Moved
DateTime.periodicalandDateTime.truncateto the new page, deprecated the old code. - Add various convenience accessors to
DateTime:isLeapYear,daysInYear,daysInMonth,weeksInYear,quarter,weekYear,weekNumber,dayOfYear, andhour12. - Add ability to convert
Durationobjects to one or more (fractional)TimeUnits.
- Moved
- Countless improvements and extensions to the
printerpackage:- Add
DateTimePrinterto print date and time objects. - Add
OrdinalNumberPrinterto print ordinal numbers: 1st, 2nd, 3rd, 4th, ... - Add
Printer.switcherto use different printers based on conditions. - Add
Printer.whereto condition the printing on the printed object. - Add
Printersupport fortake,skip,takeLastandskipLast. - Add
Printersupport fortruncateRight,truncateLeft, andtruncateCenterto also operate on word and sentence boundaries. Include the ellipsis in the width constraint. - Deprecated
Printer.map, and replace with more common and intention revealingPrinter.onResultOf.
- Add
- Implement the functionality of
Orderingas static extensions methods onComparatorfunctions:- Add
Comparator.binarySearchLowerandComparator.binarySearchUpperto return a lower/upper insertion index. - Add
Comparator.largestandComparator.smallestto return the top/bottom-k elements. - Deprecate the
Orderingclass and package.
- Add
- Create
Intervalto encapsulate bounded/unbounded and open/closed intervals across arbitraryComparableobjects.- Add the ability to measure the length of
Interval<int>.toIntLength()andInterval<num>.toDoubleLength(). - Add ability to convert
Interval<DateTime>to aDuration.
- Add the ability to measure the length of
- Added
SortedListcollection type. - Add
CompareOperatorsmixin to provide operators given acompareTomethod.
- Add
-
3.7.123 Jun 2022Nothing published for this version
-
3.7.019 Jun 2022Release notes
Open source →- Add
closeToextension to all numbers. - Make
Fractionsupport non-finite numbers.
- Add
-
3.6.018 Jun 2022Release notes
Open source →- Dart 2.17 requirement.
- Add a max-heap collection type.
- Add predicates for the ordering type.
- Add interval data structure with open, closed, and infinite endpoints.
-
3.5.027 Feb 2022Release notes
Open source →- Dart 2.16 requirement.
- Avoid dynamic calls.
- Better print strings across the library.
-
3.4.025 Dec 2021Release notes
Open source →- Remove deprecated
hashAllandhash1,hash2,hash3, ... methods. - Add
ObjectPrinter.addValuefor more dynamic object printing. - Add
ToStringPrintermixin for simpler use ofObjectPrinter. - Add
Stream.windowalong the existingIterable.windowextension (thanks to https://github.com/pihentagy). - Various cleanups and better test coverage.
- Remove deprecated
-
3.3.010 Sep 2021Release notes
Open source →- Dart 2.14 requirement.
- Added
indent/dedentandwrap/unwraptoString. - Deprecated
hashAllandhash1,hash2,hash3, ... methods, since this is now supported through the core library onObject.
-
3.2.108 Sep 2021Nothing published for this version
-
3.2.007 Sep 2021Release notes
Open source →- Make
Printersignificantly faster by reusing a singleStringBufferinstance where possible. - Make
Printerstrongly typed, which unfortunately comes with some required API changes:- Number printers do no longer support
BigInt. - Number printers are directly instantiated, instead of using a factory on Printer.
- Number printers do no longer support
- Improved the
Printerlibrary in various ways:- Renamed
undefinedto the more intention revealingifNull. - Added
ifEmptyto print something specific for emptyIterables. - Added
mapandcastprinters for more flexible printing. - Add initial version of the
ObjectPrinter.
- Renamed
- Make
-
3.1.027 Jun 2021Release notes
Open source →- Dart 2.13 requirement.
- Add
OptionalandEithertype. - Add
TypeMapthat maps Dart types to an instance. - Add various kinds of function types and function factories: callback function types, constant functions, empty functions, identity functions, mapping function types, predicate function types, and throwing functions.
- Add
String.convertFirstCharacters()andString.convertLastCharacters(). - Add
String.toUpperCaseFirstCharacter()andString.toLowerCaseFirstCharacter().
-
3.0.119 Feb 2021Nothing published for this version
-
3.0.017 Feb 2021Release notes
Open source →- Dart 2.12 requirement and null-safety.
- Use
package:clockandpackage:fake_asyncacross the board. - Add
BigIntRangeand optimize iteration ofIntegerRange. - Optimize the implementation of
ExpiryCache. - Fix
maxAgeof theStream.bufferoperator. - Add
Fraction.signandComplex.sign. - Add
IterablePrinterto print lists. - Relax the type constraints on
Ordering.natural. CharMatcheris now aPattern.- Introduce
package:more/feature.dartto provide information about the runtime environment. - Add
Trie(prefix tree) collection type. - Add
Ordering.percentile. - Add
Iterable.toMap,Iterable.atRandom,Iterable.min,Iterable.maxandIterable.percentile. - Optimize
Rangeobject creation and error reporting, and addIterable.indices. - Add converters
toBiMap,toListMultimap, andtoSetMultimap. - Add
String.removePrefixandString.removeSuffix. - Add
List.rotateandQueue.rotate.
-
3.0.0-nullsafety.625 Dec 2020 pre-releaseNothing published for this version
-
3.0.0-nullsafety.513 Dec 2020 pre-releaseNothing published for this version
-
3.0.0-nullsafety.406 Dec 2020 pre-releaseNothing published for this version
-
3.0.0-nullsafety.304 Dec 2020 pre-releaseNothing published for this version
-
3.0.0-nullsafety.221 Nov 2020 pre-releaseNothing published for this version
-
3.0.0-nullsafety.129 Oct 2020 pre-releaseNothing published for this version
-
3.0.0-nullsafety06 Oct 2020 pre-releaseNothing published for this version
-
2.8.028 Sep 2020Release notes
Open source →- Dart 2.9 compatibility and requirement (in preparation of null-safety).
- Remove
Iterable.concat()in favor ofIterable.flatten(). - Split
Iterable.zip()intoInterable.zip(),Iterable.zipPartial()andIterable.zipPartialWith(). - Fix a bug in
Ordering.nullsFirstandOrdering.nullsLast. - Fix a race condition in cache value resolution.
- Fix a rounding bug of numeric formats with precision 0.
- Add human number printer (1 kilo, 1 mega, ...).
- Add a map function to
Tupleclasses.
-
2.8.0-nullsafety06 Sep 2020 pre-releaseNothing published for this version
-
2.7.004 Aug 2020Release notes
Open source →- Add
separatedBy,flatMapandflattenfunction onIterable. - Cleanup
printerpackage and improve documentation.
- Add
-
2.6.018 Jul 2020 -
2.5.004 Jul 2020Release notes
Open source →- Printer package correctly trims, pads and separates unicode strings now.
- Updated class documentation regarding UTF-16 representation vs unicode strings.
-
2.4.001 Jun 2020Release notes
Open source →- Add in-place logical operators to
BitList. - Optimize
CharMatcherwith lookup tables. - Improved documentation.
- Add in-place logical operators to
-
2.3.121 May 2020Nothing published for this version
-
2.3.021 May 2020Release notes
Open source →- Add
ListMultimapandSetMultimap. - Mark
CharMatcher,CacheandOrderingas immutable. - Improve documentation, which still included pre Dart 2.0 examples.
- Add extension methods to convert
ComparatortoOrdering.
- Add
-
2.2.001 Jan 2020Release notes
Open source →- Made
truncateToPeriodandperiodicalextension methods ofDateTime. - Add extension methods to convert
- a
Map<K, V>to aBiMap<K, V>, - an
Iterable<bool>to aBitList, and - an
Iterable<T>to aMultiset<T>.
- a
- Made
-
2.1.001 Jan 2020 -
2.0.114 Dec 2019Nothing published for this version
-
2.0.014 Dec 2019Release notes
Open source →- Dart 2.7 compatibility and requirement.
- Cleaned up deprecated code.
- Iterables
- Converted most helpers to extension methods.
- Removed
foldandfib, as they are not generally useful. - Moved
digitstopackage:more/math.
- Collections
- Add extension method to
intanddoubleto create ranges, i.e.0.to(20). - Move the string lists to
String.toList()extension method.
- Add extension method to
- Math
- Move all numerical operators to
num,ìntand/orBigInt(new).
- Move all numerical operators to
-
1.18.225 Oct 2019Nothing published for this version
-
1.18.125 Oct 2019Nothing published for this version
-
1.18.008 Jul 2019 -
1.17.010 May 2019Release notes
Open source →- Dart 2.3 compatibility and requirement.
- Various code improvements and optimizations.
-
1.16.026 Feb 2019