Why have a `compress_stream_rw` and a `compress_stream`? It seems like you'll always want the `compress_stream_rw` instead of the callback-drive one, so I'd rather just merge the two.