conduit-0.3.0: Streaming data processing library.

Safe HaskellSafe-Infered

Data.Conduit.Binary

Description

Functions for interacting with bytes.

Synopsis

Documentation

sourceFile :: MonadResource m => FilePath -> Source m ByteStringSource

Stream the contents of a file as binary data.

Since 0.3.0

sourceHandle :: MonadResource m => Handle -> Source m ByteStringSource

Stream the contents of a Handle as binary data. Note that this function will not automatically close the Handle when processing completes, since it did not acquire the Handle in the first place.

Since 0.3.0

sourceIOHandle :: MonadResource m => IO Handle -> Source m ByteStringSource

An alternative to sourceHandle. Instead of taking a pre-opened Handle, it takes an action that opens a Handle (in read mode), so that it can open it only when needed and close it as soon as possible.

Since 0.3.0

sourceFileRangeSource

Arguments

:: MonadResource m 
=> FilePath 
-> Maybe Integer

Offset

-> Maybe Integer

Maximum count

-> Source m ByteString 

Stream the contents of a file as binary data, starting from a certain offset and only consuming up to a certain number of bytes.

Since 0.3.0

sinkFile :: MonadResource m => FilePath -> Sink ByteString m ()Source

Stream all incoming data to the given file.

Since 0.3.0

sinkHandle :: MonadResource m => Handle -> Sink ByteString m ()Source

Stream all incoming data to the given Handle. Note that this function will not automatically close the Handle when processing completes.

Since 0.3.0

sinkIOHandle :: MonadResource m => IO Handle -> Sink ByteString m ()Source

An alternative to sinkHandle. Instead of taking a pre-opened Handle, it takes an action that opens a Handle (in write mode), so that it can open it only when needed and close it as soon as possible.

Since 0.3.0

conduitFile :: MonadResource m => FilePath -> Conduit ByteString m ByteStringSource

Stream the contents of the input to a file, and also send it along the pipeline. Similar in concept to the Unix command tee.

Since 0.3.0

isolate :: Monad m => Int -> Conduit ByteString m ByteStringSource

Ensure that only up to the given number of bytes are consume by the inner sink. Note that this does not ensure that all of those bytes are in fact consumed.

Since 0.3.0

openFile :: MonadResource m => FilePath -> IOMode -> m HandleSource

Open a file Handle safely by automatically registering a release action.

While you are not required to call hClose on the resulting handle, you should do so as early as possible to free scarce resources.

Since 0.3.0

head :: Monad m => Sink ByteString m (Maybe Word8)Source

Return the next byte from the stream, if available.

Since 0.3.0

takeWhile :: Monad m => (Word8 -> Bool) -> Conduit ByteString m ByteStringSource

Return all bytes while the predicate returns True.

Since 0.3.0

dropWhile :: Monad m => (Word8 -> Bool) -> Sink ByteString m ()Source

Ignore all bytes while the predicate returns True.

Since 0.3.0

take :: Monad m => Int -> Sink ByteString m ByteStringSource

Take the given number of bytes, if available.

Since 0.3.0

lines :: Monad m => Conduit ByteString m ByteStringSource

Split the input bytes into lines. In other words, split on the LF byte (10), and strip it from the output.

Since 0.3.0