PackageTrack
Sign in Get early access

dartz

Functional Programming in Dart. Purify your Dart code using efficient immutable data structures, monads, lenses and other FP tools.

0.10.1 518K downloads/mo #506 most downloaded on pub.dev spebbe/dartz

What this package is like to depend on

Last release 5 years ago

no release in 18 months

Ships fairly regularly

a new release about every 3 months

Nearly every release is documented

notes for 66 of 66 stable releases

Nothing withdrawn

no release was ever pulled

11 years old

75 releases · first in 2016

0 releases in the last 12 months

see the full history below

Release timeline

75 releases · Feb 2016 to Dec 2021
2017 2018 2019 2020 2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 60 of 75
  1. 0.10.1 03 Dec 2021
    Release notes
    • ALL additions in 0.10.1 were written by @cranst0n! (PRs #88, #91 and #93)
    • Added bimap, cond and ensure to Either
    • Added when and unless to Option
    • Added head, tail, init, last and append to Tuple2 through Tuple20
    • Added traverseTask and sequenceTask to Option, Either and IList
    • Added a whole slew of useful combinators to Task (See #93 for details)
    Open source →
  2. 0.10.0 13 Aug 2021
    Release notes

    Updated changelog, readme and bumped version for 0.10.0 (Dart 2.12+, …

    Open source →
    Release notes
    • Stable release of null safety
    • Dart 2.12+ is now required
    Open source →
  3. 0.10.0-nullsafety.2 09 May 2021 pre-release
    Release notes
    • Updating dev_dependency plugin test to 0.17.1
    Open source →
  4. 0.10.0-nullsafety.1 10 Feb 2021 pre-release
    Release notes
    • Corrected signature of optionOf to A? => Option<A> (issue #74, thanks @rich-j)
    • Added toNullable() to Option (issue #74, thanks @apiep)
    Open source →
  5. 0.10.0-nullsafety.0 07 Jan 2021 pre-release
    Release notes
    • Basic null safety support
    • Requires Dart >= 2.12. Dart 1 is no longer supported at all.
    Open source →
  6. 0.9.2 04 Oct 2020
    Release notes
    • mapXX and liftXX arities up to 20 on Option, Either and Free, courtesy of @cranst0n!
    Open source →
  7. 0.9.1 06 May 2020
    Release notes

    Updated changelog and bumped version

    Open source →
    Release notes
    • Dart 2.8.1 compatibility
    Open source →
  8. 0.9.0 26 Apr 2020
    Release notes
    • Type class hierarchy reworked to be implemented rather than extended
    • Removed monad transformers and some other stuff that can't be made type safe on Dart 2
    • IList and Option has some const support
    • Improved Dart 2 support
    • Conveyor works on Dart 2!
    • TupleXX and FunctionXX arities up to 20, courtesy of @modulovalue!
    • IVector#indexOf
    Open source →
  9. 0.9.0-dev.6 12 Feb 2020 pre-release

    Nothing published for this version

  10. 0.9.0-dev.5 25 Nov 2019 pre-release

    Nothing published for this version

  11. 0.9.0-dev.4 19 Nov 2019 pre-release
    Release notes

    Lots of type fixes for Dart 2

    Open source →
  12. 0.9.0-dev.3 18 Nov 2019 pre-release

    Nothing published for this version

  13. 0.9.0-dev.2 18 Nov 2019 pre-release

    Nothing published for this version

  14. 0.9.0-dev.1 08 Nov 2019 pre-release

    Nothing published for this version

  15. 0.8.9 25 Nov 2019
    Release notes

    Updated changelog and bumped version

    Open source →
    Release notes
    • Polished pana score
    Open source →
  16. 0.8.8 05 Nov 2019
    Release notes
    • Dart 2.6.0 compatibility
    Open source →
  17. 0.8.7 02 Sep 2019
    Release notes
    • Refined types on Task, for better Dart 2 support (issue #24, thanks @rlavolee)
    Open source →
  18. 0.8.6 20 Aug 2019
    Release notes
    • Added asCons() and option to IList (issue #17, thanks @modulovalue)
    • Added isEmpty to AVLTree, IList, IMap, ISet and IVector (issue #23, thanks @rich-j)
    • Compatibility with Dart 2.4.0 (issue #18, thanks @xsobolx)
    Open source →
  19. 0.8.5 17 Jun 2019
    Release notes
    • Compatibility with Dart > 2.3.2 through workaround for https://github.com/dart-lang/sdk/issues/35097
      • Thanks @modulovalue and @CatherineThompson for reporting!
    • Direct value access on Some, Left and Right
      • Thanks @modulovalue for PR #15!
    Open source →
  20. 0.8.4 25 Apr 2019
    Release notes
    • Added transform, filter, where and partition to ISet
    Open source →
  21. 0.8.3 16 Dec 2018
    Release notes
    • Preliminary Dart 2.2.0 compatibility
    • 'cast' now generates "implicit" checks, causing dart2js to produce dramatically more efficient js code in some cases
    Open source →
  22. 0.8.2 10 Oct 2018
    Release notes
    • Added isLeft, isRight and swap to Either
    • Fixed some type issues on 2.1.0-dev.6.0
    Open source →
  23. 0.8.1 30 Sep 2018
    Release notes
    • Massive performance improvements for many operations on IMap on Dart 2
      • Inserts and lookups are now almost as fast on Dart 2 as on Dart 1
    • Fixed some tests that passed for the wrong reason...
    Open source →
  24. 0.8.0 19 Aug 2018
    Release notes
    • Bridge release with few breaking changes, full Dart 1 support and rudimentary Dart 2 support
    • (0.9.0 will probably be Dart 2 only and have lots of breaking changes)
    • Basic things work correctly on Dart 2 -- many other things don't...
    • Started work on removing type class hierarchy, with hard coded replacements such as IList#traverseFuture being added
    • Temporarily replaced propcheck with quick'n'dirty minimal replacement, while it is being updated for Dart 2
    • Disabled some broken monad transformer tests, since they probably won't survive the move to Dart 2
    Open source →
  25. 0.7.5 15 Apr 2018
    Release notes
    • IMap.fromPairs and IHashMap.fromPairs, for constructing maps from sequences of Tuple2
    • IList.flattenIList and IVector.flattenIVector for type safe flattening of IList/IVector
    • IList.flattenOption and IVector.flattenOption for type safe flattening/uniting IList/IVector of Option
    Open source →
  26. 0.7.4 08 Mar 2018
    Release notes
    • Corrected analyzer errors on recent Dart 2 dev releases
    Open source →
  27. 0.7.3 28 Feb 2018
    Release notes
    • More useful types for eitherM()
    • Declared argument type F of '>>' on MonadOps as covariant, enabling better specialization in implementations
    • Specialized types for replace on StateT
    • Fixed buggy foldLeftWithIndex/foldRightWithIndex on IVector
    Open source →
  28. 0.7.2 21 Jan 2018
    Release notes
    • Added curried versions of several Lens members (setC, modifyC and so on)
    • Improved typing for generic methods on Evaluation
    • More type information retained for filter operations on MonadPlus instances
    • Added custom filter operation on Either
    • Introduced 'where' as an alias to filter where applicable
    Open source →
  29. 0.7.1 19 Nov 2017
    Release notes
    • Added foldLeftWithIndexBetween and foldRightWithIndexBetween to IVector
    • Added cata and order to IMap
    • Exposed step operation on Free, enabling manual bind reassociation for now
    Open source →
  30. 0.7.0 21 Oct 2017
    Release notes
    • Preparations for Dart 2.0
    • Improved type safety for IMap and ISet
      • Reworked and/or removed functions/constructors that implicitly assumed that keys/members implemented Comparable
      • Added replacement helpers for constructors that couldn't be saved
      • All dependencies on Comparable are now explicit and enforced by the type system
    • IMap additions:
      • getKey
      • mapKV
      • traverseKV
      • traverseKV_
    Open source →
  31. 0.6.3 18 Sep 2017
    Release notes
    • Added:
      • foldLeftBetween and foldRightBetween operations to AVLTree
      • foldLeftBetween, foldRightBetween and subSetBetween operations to ISet
      • regexp pipe to Text utilities
      • IList.generate factory constructor
      • ifM combinator and some type refinements to Free
      • Eq instances for Iterators
    • More memory efficient and faster equality checks for IMap, IHashMap, AVLTree, ISet and IVector
    • New, slightly more advanced example for streaming IO
    Open source →
  32. 0.6.2 31 Aug 2017
    Release notes
    • I goofed up... the "efficient file reads" from 0.6.1 now actually work!
    Open source →
  33. 0.6.1 30 Aug 2017
    Release notes
    • Way more efficient file reads using Free IO and Conveyor
    • Improved typing for Applicative liftX and mapX, with specialized overrides on Option and Either
    • Added optionOf utility, for safely wrapping a possibly null value in Option
    • Added forEach operation to dartz_unsafe, for performing side effects on Foldables
    • Added forEach operations to Option, Either, IList, IVector, ISet, IMap, IHashMap and AVLTree
    • Various small tweaks, additions and bug fixes
    Open source →
  34. 0.6.0 02 Jul 2017
    Release notes
    • Updated sdk requirement to >= 1.24.0
      • Now uses real (non-commented) generic method syntax
      • Takes advantage of improvements in strong mode type inference
      • Various workarounds for remaining strong mode quirks
    Open source →
  35. 0.5.7 30 Apr 2017
    Release notes
    • Added efficient operations related to lower/upper bounds to IMap:
      • min
      • max
      • minKey
      • maxKey
      • minGreaterThan
      • maxLessThan
      • foldLeftKVBetween
      • foldRightKVBetween
    • hashCode consistent with '==' where overridden
    Open source →
  36. 0.5.6 19 Apr 2017
    Release notes
    • 'Gather' IO primitive for parallelizing IO operations
    • Refined types for map2 to map6 on Free and IO monads
    • Improvements to type safety/inference for Free and IO
    Open source →
  37. 0.5.5 19 Mar 2017
    Release notes
    • Slightly less efficient, but more correct/safe traverse for IList
    • Better type inference for Either and Future Monad instance helpers
    Open source →
  38. 0.5.4 05 Mar 2017
    Release notes
    • Added modifyE to EvaluationMonad, for state updates that can fail
    • Either, Option, Evaluation, State, StateT and Free:
      • Tightened types of various derived operations, such as flatMap, andThen and <<
    Open source →
  39. 0.5.3 19 Feb 2017
    Release notes
    • Reworked Free to be stack safe in more cases
      • Implementations more similar to the ones in scalaz and cats
      • Still a work in progress, but works for basic use cases
    • Added TraversableMonad instance for Function0
    Open source →
  40. 0.5.2 29 Jan 2017
    Release notes
    • Improved performance of set operation on IMap and IVector
    • Added setIfPresent to IMap
    • Added setIfPresent, removeFirst, dropFirst, removeLast and dropLast to IVector
    • Added window and windowAll to Pipe and Conveyor
    Open source →
  41. 0.5.1 15 Jan 2017
    Release notes
    • Added experimental Lens implementation and example!
    • Added IMap.fromIterables
    • Slightly faster get operations on IMap and AVLTree
    Open source →
  42. 0.5.0 07 Jan 2017
    Release notes
    • Swallowed a chunk of purist pride:
      • Added toIterable and iterator operations to Option, Either and all immutable collections
      • Added iterables/iterators for pairs, keys and values to IMap and IHashMap
    Open source →
  43. 0.4.5 03 Jan 2017
    Release notes
    • Added minSi and maxSi to Order
    • Added reverse to TraversableMonadPlus
    • Added zip to IList
    Open source →
  44. 0.4.4 11 Dec 2016
    Release notes
    • Tightened types of some overrides and helpers
    • Added free IO primitive Delay
    • Added scanWhile to Pipe
    • Added foldWhile to Conveyor
    • Added repeatEval and repeatEval_ to Source
    Open source →
  45. 0.4.3 13 Nov 2016
    Release notes
    • Added uniteOption to Pipe
    • Added chunk to Pipe and Conveyor
    • Square bracket syntax as alternative to get(K key) on IMap and IHashMap
    • Got rid of all implicit down casts by disabling them in the analysis options
    • Cleaner types on Pipe
    Open source →
  46. 0.4.2 30 Oct 2016
    Release notes
    • Aggressive internal optimizations in IList, for speed and memory efficiency
    • Much faster map and bind/flatMap IList operations, especially on V8
    • Slightly faster map operations on IMap and IVector
    Open source →
  47. 0.4.1 23 Oct 2016
    Release notes
    • Helpers for composing Free algebras and interpreters through coproduct nesting
    • Free composition example
    • Moved Free IO primitives into IOOps, for easy composition with other Free algebras
    • emptyMap and singletonMap convenience functions for IMap
    • Some more convenience functions for Conveyor
    Open source →
  48. 0.4.0 07 Oct 2016
    Release notes
    • New mini library, dartz_streaming!
    • Moved Conveyor and friends to dartz_streaming
    • Added lots of stream combinators for general use, IO and text processing
    • Added Execute IO primitive for running external commands
    • Beefed up mock IO interpreter
    Open source →
  49. 0.3.6 02 Oct 2016
    Release notes
    • foldLeftWithIndex and foldRightWithIndex on Foldable/FoldableOps
    • Specialized foldLeftWithIndex/foldRightWithIndex implementations on IVector
    • Source.fromStream (Conveyor) now takes a Stream thunk instead of a direct Stream
    • Minor cleanups in streaming IO example
    Open source →
  50. 0.3.5 25 Sep 2016
    Release notes
    • Improved resource safety of Conveyor primitives
    • repeatUntilExhausted, repeatNonEmpty, intsFrom, window2 and window2all operations for Conveyor
    • Corrections for stronger strong mode
    Open source →
  51. 0.3.4 10 Sep 2016
    Release notes
    • repeatNotEmpty operation for Conveyor
    • Opaque FileRefs in Free IO
    • Proper type parameterization for derived Tuple Semigroups and Monoids
    Open source →
  52. 0.3.3 04 Sep 2016
    Release notes
    • Tee construct for combining Conveyors
    • tee, zip, zipWith, interleave, intersperse and constant operations on Conveyor
    • through and to operations for effectful sinks and channels on Conveyor
    • Moved Free IO algebra back into library
    • Extracted side effecting IO interpreter into "unsafe" mini library
    Open source →
  53. 0.3.2 27 Aug 2016
    Release notes
    • Updated for the improvements to strong mode in Dart 1.19.0
    • Fully mockable IO type and other cleanups in examples
    Open source →
  54. 0.3.1 20 Aug 2016
    Release notes
    • Renamed Conveyor primitives (await -> consume, emit -> produce)
    • Added identity, drop and dropWhile operations to Pipe and Conveyor
    • Added Source#fromStream for driving Conveyors from Dart Streams
    • Helpers for creating anonymous Eq instances
    • ObjectEq Eq instance for comparing Objects for equality using '=='
    • Beefed up mock IO interpreter in Free IO example
    • Funner, faster and longer streaming IO example
    Open source →
  55. 0.3.0 13 Aug 2016
    Release notes
    • Conveyor, an experimental implementation of functional streams, based on work by Chiusano/Bjarnason (chapter 15 in FPIS)
    • Clarified Free IO example
    • Added Streaming IO example, based on Free IO and Conveyor
    Open source →
  56. 0.2.5 10 Aug 2016
    Release notes
    • MonadCatch type class
    • Simplistic Task implementation, with MonadCatch instance
    Open source →
  57. 0.2.4 03 Jul 2016
    Release notes
    • Fixed incompatibilities with dart2js
    Open source →
  58. 0.2.3 03 Jul 2016
    Release notes
    • New TraversableMonadPlus type class, with partition operation
    • TraversableMonadPlus instances for IList, List, IVector and Option
    • prependElement and appendElement operations for ApplicativePlus
    • better type inference for applicative mapX operations on Option and Either
    • uncons, unconsO and sort operations for IList
    Open source →
  59. 0.2.2 06 Jun 2016
    Release notes
    • Added Free IO example
    Open source →
  60. 0.2.1 05 Jun 2016
    Release notes
    • Added two examples
    • Foldable instance for ISet
    • liftOption operation for Evaluation
    • foldMapM operation for Foldable
    • More type annotations and convenience functions
    Open source →

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