Deprecated

In favour of

Cassava

A CSV parsing and encoding library

https://github.com/tfausak/cassava

Latest on Hackage:0.5.1.0@rev:3

This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow stackage.org to host generated Haddocks.

BSD-3-Clause licensed by Johan Tibell
Maintained by Taylor Fausak

This is a fork of cassava that changes the problematic bytestring--LT-0_10_4 flag name to bytestring-LT-0_10_4. This allows the package to be built by Stack (as of version 1.5.1). See https://github.com/hvr/cassava/pull/155 for more information.

cassava is a library for parsing and encoding RFC 4180 compliant comma-separated values (CSV) data, which is a textual line-oriented format commonly used for exchanging tabular data.

cassava's API includes support for

  • Index-based record-conversion

  • Name-based record-conversion

  • Typeclass directed conversion of fields and records

  • Built-in field-conversion instances for standard types

  • Customizable record-conversion instance derivation via GHC generics

  • Low-level bytestring builders (see Data.Csv.Builder)

  • Incremental decoding and encoding API (see Data.Csv.Incremental)

  • Streaming API for constant-space decoding (see Data.Csv.Streaming)

Moreover, this library is designed to be easy to use; for instance, here's a very simple example of encoding CSV data:

Data.Csv.encode [("John",27),("Jane",28)]
"John,27\r\nJane,28\r\n"

Please refer to the documentation in Data.Csv and the included README for more usage examples.