Cassava support for the streaming ecosystem

Latest on Hackage:

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 to host generated Haddocks.

MIT licensed by Ivan Lazar Miljenovic


Hackage Build Status

cassava support for the streaming ecosystem

This library allows you to easily stream CSV data in and out. You can do so using both “plain” record-based (with optional header support) or name-based (header required to determine ordering) encoding/decoding.

All encoding/decoding options are supported, it’s possible to automatically add on default headers and you can even choose whether to fail on the first parse error or handle errors on a row-by-row basis.

Errors with readFile

A common use-case is to stream CSV-encoded data in from a file. You may be tempted to use readFile from streaming-bytestring to obtain the file contents, but if you do you’re likely to run into exceptions such as hGetBufSome: illegal operation (handle is closed).

The recommended solution is to use the streaming-with package for the IO aspects. You can then write something like:

withBinaryFileContents \"myFile.csv\" $
  . 'decodeByName'


Revision history for streaming-cassava – 2018-01-23

  • Bump dependency on streaming.

  • Document what to do with readFile errors. – 2017-06-30

  • First version.
comments powered byDisqus