As I said, you shouldn't require a IOStream, it basically means that
you can't support anything other than a raw file (which would have
been find if that's the only thing you want to support).
You should accept any objects that you can read from (or at least any
IO's). The LibArchive io interface is as close as possible to the
IOStream interface as I can make it so you should just use it directly
instead of trying to make it an IOStream, which is impossible.