| CARVIEW |
Select Language
HTTP/1.1 200 OK
Connection: keep-alive
Server: nginx/1.24.0 (Ubuntu)
Content-Type: text/html; charset=utf-8
Cache-Control: public, max-age=300
Content-Encoding: gzip
Via: 1.1 varnish, 1.1 varnish
Accept-Ranges: bytes
Age: 0
Date: Sun, 18 Jan 2026 15:10:16 GMT
X-Served-By: cache-dfw-kdal2120050-DFW, cache-bom-vanm7210021-BOM
X-Cache: MISS, MISS
X-Cache-Hits: 0, 0
X-Timer: S1768749016.450032,VS0,VE346
Vary: Accept, Accept-Encoding
transfer-encoding: chunked
streamly-cassava: CSV streaming support via cassava for the streamly ecosystem
[Skip to Readme]
streamly-cassava: CSV streaming support via cassava for the streamly ecosystem
Please see the README on GitHub at https://github.com/litxio/streamly-cassava#readme
[Skip to Readme]
Downloads
- streamly-cassava-0.1.1.0.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
| Versions [RSS] | 0.1.0.0, 0.1.1.0 |
|---|---|
| Change log | ChangeLog.md |
| Dependencies | base (>=4.7 && <5), bytestring, cassava, exceptions, mtl, streamly [details] |
| License | BSD-3-Clause |
| Copyright | 2019 Richard Warfield |
| Author | Richard Warfield |
| Maintainer | richard@litx.io |
| Uploaded | by rwarfield at 2019-09-23T12:42:35Z |
| Category | Streaming |
| Home page | https://github.com/litxio/streamly-cassava#readme |
| Bug tracker | https://github.com/litxio/streamly-cassava/issues |
| Source repo | head: git clone https://github.com/litxio/streamly-cassava |
| Distributions | |
| Downloads | 934 total (12 in the last 30 days) |
| Rating | (no votes yet) [estimated by Bayesian average] |
| Your Rating |
|
| Status | Docs available [build log] Last success reported on 2019-09-23 [all 1 reports] |
Readme for streamly-cassava-0.1.1.0
[back to package description]streamly-cassava
Stream CSV data in/out using Cassava. Adapted from streaming-cassava.
For efficiency, operates on streams of strict ByteString chunks
(i.e. IsStream t => t m ByteString) rather than directly on streams of Word8.
The chunkStream function is useful for generating an input stream from a
handle.
Example usage:
import Streamly
import qualified Streamly.Prelude as S
import Streamly.Csv (decode, encode, chunkStream)
import System.IO
import qualified Data.Csv as Csv
import qualified Data.ByteString as BS
import Data.Vector (Vector)
main = do
h <- openFile "testfile.csv" ReadMode
let chunks = chunkStream h (64*1024)
recs = decode Csv.HasHeader chunks :: SerialT IO (Vector BS.ByteString)
withFile "dest.csv" WriteMode $ \ho ->
S.mapM_ (BS.hPut ho) $ encode Nothing recs