conduit- Streaming data processing library.

Safe HaskellNone




Handle streams of text.

Parts of this code were taken from enumerator and adapted for conduits.


Text codecs

data Codec Source

A specific character encoding.

Since 0.3.0


encode :: MonadThrow m => Codec -> Conduit Text m ByteStringSource

Convert text into bytes, using the provided codec. If the codec is not capable of representing an input character, an exception will be thrown.

Since 0.3.0

decode :: MonadThrow m => Codec -> Conduit ByteString m TextSource

Convert bytes into text, using the provided codec. If the codec is not capable of decoding an input byte sequence, an exception will be thrown.

Since 0.3.0

utf8 :: CodecSource

Since 0.3.0

utf16_le :: CodecSource

Since 0.3.0

utf16_be :: CodecSource

Since 0.3.0

utf32_le :: CodecSource

Since 0.3.0

utf32_be :: CodecSource

Since 0.3.0

ascii :: CodecSource

Since 0.3.0

iso8859_1 :: CodecSource

Since 0.3.0

lines :: Monad m => Conduit Text m TextSource

Emit each line separately

Since 0.4.1

linesBounded :: MonadThrow m => Int -> Conduit Text m TextSource

Variant of the lines function with an integer parameter. The text length of any emitted line never exceeds the value of the paramater. Whenever this is about to happen a LengthExceeded exception is thrown. This function should be used instead of the lines function whenever we are dealing with user input (e.g. a file upload) because we can't be sure that user input won't have extraordinarily large lines which would require large amounts of memory if consumed.