Encode and decode JSON streams using Aeson and Pipes.


Version on this page:
LTS Haskell 18.28:
Stackage Nightly 2021-06-14:
Latest on Hackage:

See all snapshots pipes-aeson appears in

BSD-3-Clause licensed by Renzo Carbonara
Maintained by renzocarbonaraλgmail.com
This version can be pinned in stack with:pipes-aeson-,1479

Module documentation for


Utilities to encode and decode streams of JSON values using Pipes and Aeson.

Check the source or rendered Haddocks for documentation.

This code is licensed under the terms of the so called 3-clause BSD license. Read the file named LICENSE found in this same directory for details.

See the PEOPLE file to learn about the people involved in this effort.


  • Raise upper bound dependency on attoparsec.

  • Raise upper bound dependency on aeson.

  • Raise upper bound dependency on pipes-bytestring.


  • Raise upper bound dependency on attoparsec.


  • Remove Pipes.Aeson.encode in favour of encodeObject and encodeArray.

  • decode and decodeL now return Nothing on end of input, instead of failing with a DecodingError. This follows the approach taken by pipes-attoparsec-0.5.

  • Solved quadratic time complexity issue when decoding (#10).

  • Depend on pipes-attoparsec-0.5.*.

  • Raise upper bound for transformers to 0.4.*.


  • API revamped to be compatible with pipes-parse-3.0.*.

  • Renamed Pipes.Aeson.Unsafe module to Pipes.Aeson.Unchecked.


  • Generalize encode from Producer to Producer'.

  • Depend on newer versions of aeson, attoparsec, pipes-attoparsec.


  • Version compatible with pipes-4.0.0 and pipes-parse-2.0.0.

  • API radically changed. Removed parseValue, fromValue and TopLevelValue. Other things renamed.

  • First version.