Yes, the basic conduit package is almost all you need to get started.
The idea is that you organize the workflow in Conduits. Take some items - pull out some items. At a basic level, you can go pretty far using awaitand yield. Just use them in the monad, for example:
idConduit =
do mElt <- await
case mElt of
Nothing -> return ()
Just element ->
do yield element
idConduit
Sink Source mySink $= myConduit1 $= myConduit2 $$ mySource, .
, attoparsec-conduit.