jsonl-conduit-0.1.3: Conduit interface to JSONL-encoded data
Safe HaskellSafe-Inferred
LanguageHaskell2010

JSONL.Conduit

Description

Streaming interface for JSONL-encoded files, based on conduit

The JSONL (JSON Lines) format : https://jsonlines.org/

Synopsis

Encode

jsonToLBSC :: (ToJSON a, Monad m) => ConduitT a o m ByteString Source #

Render a stream of JSON-encodable objects into a ByteString

I/O

sinkFileC Source #

Arguments

:: (ToJSON a, MonadResource m) 
=> FilePath

path of JSONL file to be created

-> ConduitT a o m () 

Render a stream of JSON-encodable objects into a JSONL file

appendFileC :: (ToJSON a, MonadResource m) => FilePath -> ConduitT a o m () Source #

Like sinkFileC but in AppendMode, which means that the handle is positioned at the end of the file.

Since: 0.1.1

Decode

jsonFromLBSC :: (FromJSON a, Monad m) => ByteString -> ConduitT Void a m () Source #

Source a ByteString for JSONL records

NB in case of a decoding error the stream is stopped

jsonFromLBSCE :: (FromJSON a, Monad m) => ByteString -> ConduitT i (Either String a) m () Source #

Like jsonFromLBSC but all decoding errors are passed in Left values

I/O

sourceFileC Source #

Arguments

:: (MonadResource m, FromJSON a) 
=> FilePath

path of JSONL file to be read

-> ConduitT () a m () 

Read a JSONL file and stream the decoded records

NB : ignores any parsing errors and returns

sourceFileCE Source #

Arguments

:: (MonadResource m, FromJSON a) 
=> FilePath

path of JSONL file to be read

-> ConduitT () (Either String a) m () 

Read a JSONL file and stream the decoded records

NB : decoding error messages are in Left values

Tokenize only

sourceFileC_ Source #

Arguments

:: MonadResource m 
=> FilePath

path of JSONL file to be read

-> ConduitT () ByteString m () 

The outgoing stream elements are the lines of the file, i.e guaranteed not to contain newline characters

NB : In case it wasn't clear, no JSON parsing is done, only string copies