cassava- A CSV parsing and encoding library

cassava- A CSV parsing and encoding library

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)]

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