A CSV parsing and encoding library

Version on this page:
LTS Haskell 8.23:
Stackage Nightly 2017-07-20:
Latest on Hackage:
BSD3 licensed by Johan Tibell
Maintained by

Module documentation for

There are no documented modules for this package.

A CSV parsing and encoding library optimized for ease of use and high performance.



Semantic changes

  • Don't unecessarily quote spaces with QuoteMinimal (#118,#122,#86)
  • Fix semantics of foldl' (#102)
  • Fix field error diagnostics being mapped to endOfInput in Parser monad. (#99)
  • Honor encIncludeHeader in incremental API (#136)

Other changes

  • Support GHC 8.2.1
  • Use factored-out Only package
  • Add FromField/ToField instance for ShortText
  • Add MonadFail and Semigroup instance for Parser
  • Add Semigroup instance for incremental CSV API Builder & NamedBuilder
  • Port to ByteString builder & drop dependency on blaze-builder


  • Restore GHC 7.4 support (#124)


  • Support for GHC 8.0 added; support for GHC 7.4 dropped

  • Fix defect in Foldable(foldr) implementation failing to skip unconvertable records (#102)

  • Documentation fixes

  • Maintainer changed


  • Added record instances for larger tuples.

  • Support attoparsec 0.13.

  • Add field instances for short bytestrings.


  • Documentation overhaul with more examples.

  • Add Data.Csv.Builder, a low-level bytestring builder API.

  • Add a high-level builder API to Data.Csv.Incremental.

  • Generalize the default FromNamedRecord/ToNamedRecord instances.

  • Improved support for deriving instances using GHC.Generics.

  • Added some control over quoting.


  • Support attoparsec 0.13.


  • Support GHC 7.10.


  • Support blaze-builder 0.4.

  • Make sure inlining doesn't prevent rules from firing.

  • Fix incorrect INLINE pragmas.


  • Support deepseq-1.4.


  • Minor performance improvements.

  • Add 8 and 9 tuple instances for From/ToRecord.

  • Support text-1.2.


  • Ignore whitespace when converting numeric fields.

  • Accept \r as a line terminator.

  • Support attoparsec-0.12.

comments powered byDisqus